summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/boost_install
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/boost/tools/boost_install
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/boost_install')
-rw-r--r--src/boost/tools/boost_install/BoostConfig.cmake296
-rw-r--r--src/boost/tools/boost_install/BoostDetectToolset.cmake166
-rw-r--r--src/boost/tools/boost_install/Jamfile10
-rw-r--r--src/boost/tools/boost_install/README.md8
-rw-r--r--src/boost/tools/boost_install/boost-install-dirs.jam104
-rw-r--r--src/boost/tools/boost_install/boost-install.jam1339
-rw-r--r--src/boost/tools/boost_install/test/BoostVersion.cmake1
-rw-r--r--src/boost/tools/boost_install/test/atomic/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/atomic/quick.cpp45
-rw-r--r--src/boost/tools/boost_install/test/chrono/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/chrono/quick.cpp16
-rw-r--r--src/boost/tools/boost_install/test/container/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/container/quick.cpp25
-rw-r--r--src/boost/tools/boost_install/test/filesystem/CMakeLists.txt45
-rw-r--r--src/boost/tools/boost_install/test/filesystem/quick.cpp24
-rw-r--r--src/boost/tools/boost_install/test/headers/CMakeLists.txt34
-rw-r--r--src/boost/tools/boost_install/test/headers/quick.cpp10
-rw-r--r--src/boost/tools/boost_install/test/iostreams/CMakeLists.txt41
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/CHANGES356
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/LICENSE42
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile217
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile-libbz2_so59
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README196
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.COMPILATION.PROBLEMS58
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.XML.STUFF45
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/blocksort.c1094
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-common.xsl39
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-fo.xsl276
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-html.xsl23
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff76
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff.147
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep85
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep.156
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip.css74
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1454
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1.preformatted399
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.c2036
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.txt391
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2recover.c516
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.c1572
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.h282
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib_private.h509
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore61
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore.1152
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/compress.c672
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/crctable.c104
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/decompress.c652
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.c175
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.dsp93
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/entities.xml10
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/format.pl68
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/huffman.c205
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.def27
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.dsp130
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/makefile.msc63
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.html2541
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.pdfbin0 -> 183803 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.ps216419
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.xml2964
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/mk251.c31
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/randtable.c84
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.bz2bin0 -> 32348 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.refbin0 -> 98696 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.bz2bin0 -> 73732 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.refbin0 -> 212340 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.bz2bin0 -> 235 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.ref30007
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/spewG.c54
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/unzcrash.c141
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words09
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words14
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words25
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words330
-rw-r--r--src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/xmlproc.sh114
-rw-r--r--src/boost/tools/boost_install/test/iostreams/test.txt.bz2bin0 -> 57 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/test.txt.gzbin0 -> 53 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/test_bzip2.cpp29
-rw-r--r--src/boost/tools/boost_install/test/iostreams/test_gzip.cpp29
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/CMakeLists.txt249
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/ChangeLog1515
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/FAQ368
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/INDEX68
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile5
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile.in410
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/README115
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/adler32.c186
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.pup69
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.sas68
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/compress.c86
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/configure921
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/README.contrib78
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/buffer_demo.adb106
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/mtest.adb156
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/read.adb156
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/readme.txt65
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/test.adb463
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.adb225
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.ads114
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.adb141
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.ads450
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.adb701
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.ads328
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.gpr20
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/amd64/amd64-match.S452
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/README.68651
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/match.S357
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/Makefile8
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/README4
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.c466
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.h83
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.pkbin0 -> 8 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.txt1
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLib.pas557
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLibConst.pas11
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/readme.txt76
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/zlibd32.mak99
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.build33
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.chmbin0 -> 72726 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.sln21
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/AssemblyInfo.cs58
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/ChecksumImpl.cs202
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CircularBuffer.cs83
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CodecBase.cs198
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Deflater.cs106
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.cs288
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.csproj141
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/GZipStream.cs301
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Inflater.cs105
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/UnitTests.cs274
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/LICENSE_1_0.txt23
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/readme.txt58
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/gcc_gvmat64/gvmat64.S574
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/README1
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.c615
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.h37
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inffix9.h107
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inflate9.h47
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.c324
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.h61
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffas86.c1157
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffast.S1368
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/test.cpp24
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.cpp329
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.h128
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream.h307
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream_test.cpp25
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/README35
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/TODO17
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/test.cc50
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.cc479
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.h466
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/bld_ml64.bat2
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/gvmat64.asm553
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffas8664.c186
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffasx64.asm396
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/readme.txt31
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/bld_ml32.bat2
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/inffas32.asm1080
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/match686.asm479
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/readme.txt27
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile25
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile.am45
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_Changes.txt6
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_info.txt74
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/configure.ac32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/crypt.h131
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.c247
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.h208
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.c462
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.h28
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/make_vms.com25
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunz.c660
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunzip.163
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.146
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.c520
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.pc.in12
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.c291
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.h37
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.c2125
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.h437
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.c2007
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.h362
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/example.pas599
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/readme.txt76
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibd32.mak99
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibpas.pas276
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/Makefile42
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/README63
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.c840
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.h35
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/pufftest.c165
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/zeros.rawbin0 -> 2517 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.c275
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.txt10
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile14
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile.msc17
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/untgz.c674
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/readme.txt78
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj310
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj.filters22
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj307
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj.filters22
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj420
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj.filters58
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj310
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj.filters22
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlib.rc32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj473
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj.filters77
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.def153
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.sln135
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj657
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj.filters118
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/miniunz.vcxproj314
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/minizip.vcxproj311
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlib.vcxproj426
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlibdll.vcxproj314
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlib.rc32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibstat.vcxproj464
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.def153
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.sln117
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.vcxproj688
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/miniunz.vcxproj316
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/minizip.vcxproj313
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlib.vcxproj430
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlibdll.vcxproj316
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlib.rc32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibstat.vcxproj467
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.def153
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.sln119
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.vcxproj692
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/miniunz.vcxproj316
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/minizip.vcxproj313
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlib.vcxproj430
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlibdll.vcxproj316
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlib.rc32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibstat.vcxproj467
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.def153
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.sln119
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.vcxproj692
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/miniunz.vcproj565
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/minizip.vcproj562
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlib.vcproj852
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlibdll.vcproj565
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlib.rc32
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibstat.vcproj835
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.def153
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.sln144
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.vcproj1156
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.c442
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.h441
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.c2163
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.h349
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/README.examples49
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/enough.c572
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/fitblk.c233
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gun.c702
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzappend.c504
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzjoin.c449
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.c1059
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.h91
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zlib_how.html545
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zpipe.c205
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zran.c409
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzclose.c25
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzguts.h218
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzlib.c637
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzread.c654
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzwrite.c665
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/infback.c640
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.c323
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.h11
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffixed.h94
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.c1561
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.h125
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.c304
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.h62
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/make_vms.com867
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.bor115
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.dj2104
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.emx69
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.msc112
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.tc100
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/Makefile126
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/README5
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.emx69
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.riscos151
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/README3
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/descrip.mms48
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/Makefile.os2136
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/zlib.def51
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/visual-basic.txt160
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/README40048
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/bndsrc119
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/make.sh366
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/zlib.inc527
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/qnx/package.qpg141
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/example.c602
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/infcover.c671
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/minigzip.c651
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/treebuild.xml116
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.c1203
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.h128
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/uncompr.c93
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_f.mak43
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_l.mak43
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/DLL_FAQ.txt397
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.bor110
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.gcc182
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.msc163
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/README-WIN32.txt103
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/VisualC.txt3
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib.def94
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib1.rc40
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h534
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.cmakein536
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.in534
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3149
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3.pdfbin0 -> 19318 bytes
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.h1912
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.map94
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.cmakein13
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.in13
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib2ansi152
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.c325
-rw-r--r--src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.h271
-rw-r--r--src/boost/tools/boost_install/test/log/CMakeLists.txt41
-rw-r--r--src/boost/tools/boost_install/test/log/quick.cpp15
-rw-r--r--src/boost/tools/boost_install/test/mpi/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/mpi/quick.cpp20
-rw-r--r--src/boost/tools/boost_install/test/program_options/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/program_options/quick.cpp49
-rw-r--r--src/boost/tools/boost_install/test/python/CMakeLists.txt53
-rw-r--r--src/boost/tools/boost_install/test/python/quick.cpp27
-rw-r--r--src/boost/tools/boost_install/test/random/CMakeLists.txt40
-rw-r--r--src/boost/tools/boost_install/test/random/lib.cpp18
-rw-r--r--src/boost/tools/boost_install/test/random/main.cpp17
-rw-r--r--src/boost/tools/boost_install/test/regex/CMakeLists.txt50
-rw-r--r--src/boost/tools/boost_install/test/regex/quick.cpp21
-rw-r--r--src/boost/tools/boost_install/test/serialization/CMakeLists.txt42
-rw-r--r--src/boost/tools/boost_install/test/serialization/quick.cpp36
-rw-r--r--src/boost/tools/boost_install/test/serialization/wquick.cpp36
-rw-r--r--src/boost/tools/boost_install/test/system/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/system/quick.cpp36
-rw-r--r--src/boost/tools/boost_install/test/test/CMakeLists.txt42
-rw-r--r--src/boost/tools/boost_install/test/test/test_mon.cpp14
-rw-r--r--src/boost/tools/boost_install/test/test/test_utf.cpp16
-rw-r--r--src/boost/tools/boost_install/test/thread/CMakeLists.txt27
-rw-r--r--src/boost/tools/boost_install/test/thread/quick.cpp27
-rw-r--r--src/boost/tools/boost_install/test/wave/CMakeLists.txt37
-rw-r--r--src/boost/tools/boost_install/test/wave/quick.cpp49
351 files changed, 340505 insertions, 0 deletions
diff --git a/src/boost/tools/boost_install/BoostConfig.cmake b/src/boost/tools/boost_install/BoostConfig.cmake
new file mode 100644
index 000000000..c762b3252
--- /dev/null
+++ b/src/boost/tools/boost_install/BoostConfig.cmake
@@ -0,0 +1,296 @@
+# Copyright 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+# This CMake configuration file, installed as part of the Boost build
+# and installation procedure done by `b2 install`, provides support
+# for find_package(Boost).
+#
+# It's roughly, but not perfectly, compatible with the behavior
+# of find_package(Boost) as provided by FindBoost.cmake.
+#
+# A typical use might be
+#
+# find_package(Boost 1.70 REQUIRED COMPONENTS filesystem regex PATHS C:/Boost)
+#
+# On success, the above invocation would define the targets Boost::headers,
+# Boost::filesystem and Boost::regex. Boost::headers represents all
+# header-only libraries. An alias, Boost::boost, for Boost::headers is
+# provided for compatibility.
+#
+# Requesting the special component "ALL" will make all installed components
+# available, as in the following example:
+#
+# find_package(Boost 1.73 REQUIRED COMPONENTS ALL)
+#
+# Since COMPONENTS is optional when REQUIRED is specified, the above can be
+# shortened to
+#
+# find_package(Boost 1.73 REQUIRED ALL)
+#
+# When ALL is used, a variable Boost_ALL_TARGETS will be set and will contain
+# the names of all created targets.
+#
+# The ALL component cannot be combined with named components.
+#
+# Since Boost libraries can coexist in many variants - 32/64 bit,
+# static/dynamic runtime, debug/release, the following variables can be used
+# to control which variant is chosen:
+#
+# Boost_USE_DEBUG_LIBS: When OFF, disables debug libraries.
+# Boost_USE_RELEASE_LIBS: When OFF, disables release libraries.
+# Boost_USE_MULTITHREADED: When OFF, uses single-threaded libraries.
+# The default is multithreaded.
+# Boost_USE_STATIC_LIBS: When ON, uses static Boost libraries; when OFF,
+# uses shared Boost libraries; when not set, uses
+# static on Windows, shared otherwise.
+# Boost_USE_STATIC_RUNTIME: When ON, uses Boost libraries linked against the
+# static runtime. The default is shared runtime.
+# Boost_USE_DEBUG_RUNTIME: When ON, uses Boost libraries linked against the
+# debug runtime. When OFF, against the release
+# runtime. The default is to use either.
+# Boost_COMPILER: The compiler that has been used to build Boost,
+# such as vc141, gcc7, clang37. The default is
+# determined from CMAKE_CXX_COMPILER_ID.
+# Boost_PYTHON_VERSION: The version of Python against which Boost.Python
+# has been built; only required when more than one
+# Boost.Python library is present.
+#
+# The following variables control the verbosity of the output:
+#
+# Boost_VERBOSE: Enable verbose output
+# Boost_DEBUG: Enable debug (even more verbose) output
+
+if(Boost_VERBOSE OR Boost_DEBUG)
+
+ message(STATUS "Found Boost ${Boost_VERSION} at ${Boost_DIR}")
+
+ # Output requested configuration (f.ex. "REQUIRED COMPONENTS filesystem")
+
+ if(Boost_FIND_QUIETLY)
+ set(_BOOST_CONFIG "${_BOOST_CONFIG} QUIET")
+ endif()
+
+ if(Boost_FIND_REQUIRED)
+ set(_BOOST_CONFIG "${_BOOST_CONFIG} REQUIRED")
+ endif()
+
+ foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS)
+ if(${Boost_FIND_REQUIRED_${__boost_comp}})
+ list(APPEND _BOOST_COMPONENTS ${__boost_comp})
+ else()
+ list(APPEND _BOOST_OPTIONAL_COMPONENTS ${__boost_comp})
+ endif()
+ endforeach()
+
+ if(_BOOST_COMPONENTS)
+ set(_BOOST_CONFIG "${_BOOST_CONFIG} COMPONENTS ${_BOOST_COMPONENTS}")
+ endif()
+
+ if(_BOOST_OPTIONAL_COMPONENTS)
+ set(_BOOST_CONFIG "${_BOOST_CONFIG} OPTIONAL_COMPONENTS ${_BOOST_OPTIONAL_COMPONENTS}")
+ endif()
+
+ if(_BOOST_CONFIG)
+ message(STATUS " Requested configuration:${_BOOST_CONFIG}")
+ endif()
+
+ unset(_BOOST_CONFIG)
+ unset(_BOOST_COMPONENTS)
+ unset(_BOOST_OPTIONAL_COMPONENTS)
+
+endif()
+
+macro(boost_find_component comp required quiet)
+
+ set(_BOOST_QUIET)
+ if(Boost_FIND_QUIETLY OR ${quiet})
+ set(_BOOST_QUIET QUIET)
+ endif()
+
+ set(_BOOST_REQUIRED)
+ if(${required} AND Boost_FIND_REQUIRED)
+ set(_BOOST_REQUIRED REQUIRED)
+ endif()
+
+ if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9][0-9]?)$")
+
+ # handle pythonXY and numpyXY versioned components for compatibility
+
+ set(Boost_PYTHON_VERSION "${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+ set(__boost_comp_nv "${CMAKE_MATCH_1}")
+
+ elseif("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])$")
+
+ # handle python2/python3 for compatibility
+
+ set(Boost_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ set(__boost_comp_nv "${CMAKE_MATCH_1}")
+
+ else()
+
+ set(__boost_comp_nv "${comp}")
+
+ endif()
+
+ get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE)
+
+ if(Boost_DEBUG)
+ message(STATUS "BoostConfig: find_package(boost_${__boost_comp_nv} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR})")
+ endif()
+ find_package(boost_${__boost_comp_nv} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR})
+
+ set(__boost_comp_found ${boost_${__boost_comp_nv}_FOUND})
+
+ # FindPackageHandleStandardArgs expects <package>_<component>_FOUND
+ set(Boost_${comp}_FOUND ${__boost_comp_found})
+
+ # FindBoost sets Boost_<COMPONENT>_FOUND
+ string(TOUPPER ${comp} _BOOST_COMP)
+ set(Boost_${_BOOST_COMP}_FOUND ${__boost_comp_found})
+
+ # FindBoost compatibility variables: Boost_LIBRARIES, Boost_<C>_LIBRARY
+ if(__boost_comp_found)
+
+ list(APPEND Boost_LIBRARIES Boost::${__boost_comp_nv})
+ set(Boost_${_BOOST_COMP}_LIBRARY Boost::${__boost_comp_nv})
+
+ if(NOT "${comp}" STREQUAL "${__boost_comp_nv}" AND NOT TARGET Boost::${comp})
+
+ # Versioned target alias (f.ex. Boost::python27) for compatibility
+ add_library(Boost::${comp} INTERFACE IMPORTED)
+ set_property(TARGET Boost::${comp} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${__boost_comp_nv})
+
+ endif()
+
+ endif()
+
+ unset(_BOOST_REQUIRED)
+ unset(_BOOST_QUIET)
+ unset(_BOOST_CMAKEDIR)
+ unset(__boost_comp_nv)
+ unset(__boost_comp_found)
+ unset(_BOOST_COMP)
+
+endmacro()
+
+macro(boost_find_all_components)
+
+ # Search for all available component-configuration directories...
+ file(GLOB __boost_all_components
+ LIST_DIRECTORIES true RELATIVE "${CMAKE_CURRENT_LIST_DIR}/.."
+ "${CMAKE_CURRENT_LIST_DIR}/../boost_*-${Boost_VERSION}")
+ # ...and extract component names from it.
+ string(REGEX REPLACE "boost_([_a-z0-9]+)-${Boost_VERSION}" "\\1"
+ __boost_all_components "${__boost_all_components}")
+
+ if(Boost_DEBUG)
+ message(STATUS "BoostConfig: discovered components: ${__boost_all_components}")
+ endif()
+
+ list(REMOVE_ITEM __boost_all_components "headers")
+
+ # Try to find each component.
+ foreach(__boost_comp IN LISTS __boost_all_components)
+
+ boost_find_component(${__boost_comp} 0 1)
+
+ # Append to list of all targets (if found).
+ if(Boost_${__boost_comp}_FOUND)
+ list(APPEND Boost_ALL_TARGETS Boost::${__boost_comp})
+ endif()
+
+ endforeach()
+
+ unset(__boost_all_components)
+
+ if(Boost_DEBUG)
+ message(STATUS "BoostConfig: Boost_ALL_TARGETS: ${Boost_ALL_TARGETS}")
+ endif()
+
+endmacro()
+
+# Find boost_headers
+
+boost_find_component(headers 1 0)
+
+if(NOT boost_headers_FOUND)
+
+ set(Boost_FOUND 0)
+ set(Boost_NOT_FOUND_MESSAGE "A required dependency, boost_headers, has not been found.")
+
+ return()
+
+endif()
+
+# Compatibility variables
+
+set(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
+set(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
+set(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
+
+set(Boost_VERSION_STRING ${Boost_VERSION})
+set(Boost_VERSION_MACRO ${Boost_VERSION_MAJOR}0${Boost_VERSION_MINOR}0${Boost_VERSION_PATCH})
+
+get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES)
+set(Boost_LIBRARIES "")
+
+# Save project's policies
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+# Find components
+
+if("ALL" IN_LIST Boost_FIND_COMPONENTS)
+
+ # Make sure "ALL" is the only requested component.
+ list(LENGTH Boost_FIND_COMPONENTS __boost_find_components_count)
+ if(NOT ${__boost_find_components_count} EQUAL 1)
+ message(AUTHOR_WARNING "ALL cannot be combined with named components; the named components will be ignored.")
+ endif()
+
+ unset(__boost_find_components_count)
+
+ set(Boost_ALL_TARGETS Boost::headers)
+
+ boost_find_all_components()
+
+else()
+
+ foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS)
+
+ boost_find_component(${__boost_comp} ${Boost_FIND_REQUIRED_${__boost_comp}} 0)
+
+ endforeach()
+
+endif()
+
+# Compatibility targets
+
+if(NOT TARGET Boost::boost)
+
+ add_library(Boost::boost INTERFACE IMPORTED)
+ set_property(TARGET Boost::boost APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::headers)
+
+ add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
+ add_library(Boost::disable_autolinking INTERFACE IMPORTED)
+ add_library(Boost::dynamic_linking INTERFACE IMPORTED)
+
+ if(WIN32)
+
+ set_property(TARGET Boost::diagnostic_definitions PROPERTY INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
+ set_property(TARGET Boost::disable_autolinking PROPERTY INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
+ set_property(TARGET Boost::dynamic_linking PROPERTY INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
+
+ endif()
+
+endif()
+
+# Compatibility variable when using meta-component "ALL"
+
+if("ALL" IN_LIST Boost_FIND_COMPONENTS)
+ set(Boost_ALL_FOUND ${boost_headers_FOUND})
+endif()
+
+# Restore project's policies
+cmake_policy(POP)
diff --git a/src/boost/tools/boost_install/BoostDetectToolset.cmake b/src/boost/tools/boost_install/BoostDetectToolset.cmake
new file mode 100644
index 000000000..7544159e5
--- /dev/null
+++ b/src/boost/tools/boost_install/BoostDetectToolset.cmake
@@ -0,0 +1,166 @@
+# Copyright 2017-2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+string(REGEX MATCHALL "[0-9]+" _BOOST_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
+
+list(GET _BOOST_COMPILER_VERSION 0 _BOOST_COMPILER_VERSION_MAJOR)
+list(GET _BOOST_COMPILER_VERSION 1 _BOOST_COMPILER_VERSION_MINOR)
+
+if(BORLAND)
+
+ # Borland is unversioned
+
+ set(BOOST_DETECTED_TOOLSET "bcb")
+
+ set(_BOOST_COMPILER_VERSION_MAJOR)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
+
+ set(BOOST_DETECTED_TOOLSET "clang-darwin")
+
+ # Match clang-darwin.jam
+
+ if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+ endif()
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+
+ if(MSVC_VERSION)
+ set(BOOST_DETECTED_TOOLSET "clangw")
+ else()
+ set(BOOST_DETECTED_TOOLSET "clang")
+ endif()
+
+ if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+ endif()
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+
+ if(WIN32)
+
+ # Intel-Win is unversioned
+
+ set(BOOST_DETECTED_TOOLSET "iw")
+
+ set(_BOOST_COMPILER_VERSION_MAJOR)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+
+ else()
+
+ set(BOOST_DETECTED_TOOLSET "il")
+
+ endif()
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MIPSpro")
+
+ set(BOOST_DETECTED_TOOLSET "mp")
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
+
+ set(BOOST_DETECTED_TOOLSET "sun")
+
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IBM XL")
+
+ set(BOOST_DETECTED_TOOLSET "xlc")
+
+elseif(MINGW)
+
+ set(BOOST_DETECTED_TOOLSET "mgw")
+
+ if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+ endif()
+
+elseif(CMAKE_COMPILER_IS_GNUCXX)
+
+ if(APPLE)
+ set(BOOST_DETECTED_TOOLSET "xgcc")
+ else()
+ set(BOOST_DETECTED_TOOLSET "gcc")
+ endif()
+
+ if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+ endif()
+
+elseif(MSVC)
+
+ if((MSVC_VERSION GREATER 1929) AND (MSVC_VERSION LESS 1940))
+
+ set(BOOST_DETECTED_TOOLSET "vc143")
+
+ elseif((MSVC_VERSION GREATER 1919) AND (MSVC_VERSION LESS 1930))
+
+ set(BOOST_DETECTED_TOOLSET "vc142")
+
+ elseif((MSVC_VERSION GREATER 1909) AND (MSVC_VERSION LESS 1920))
+
+ set(BOOST_DETECTED_TOOLSET "vc141")
+
+ elseif(MSVC_VERSION EQUAL 1900)
+
+ set(BOOST_DETECTED_TOOLSET "vc140")
+
+ elseif(MSVC_VERSION EQUAL 1800)
+
+ set(BOOST_DETECTED_TOOLSET "vc120")
+
+ elseif(MSVC_VERSION EQUAL 1700)
+
+ set(BOOST_DETECTED_TOOLSET "vc110")
+
+ elseif(MSVC_VERSION EQUAL 1600)
+
+ set(BOOST_DETECTED_TOOLSET "vc100")
+
+ elseif(MSVC_VERSION EQUAL 1500)
+
+ set(BOOST_DETECTED_TOOLSET "vc90")
+
+ elseif(MSVC_VERSION EQUAL 1400)
+
+ set(BOOST_DETECTED_TOOLSET "vc80")
+
+ elseif(MSVC_VERSION EQUAL 1310)
+
+ set(BOOST_DETECTED_TOOLSET "vc71")
+
+ elseif(MSVC_VERSION EQUAL 1300)
+
+ set(BOOST_DETECTED_TOOLSET "vc7")
+
+ elseif(MSVC_VERSION EQUAL 1200)
+
+ set(BOOST_DETECTED_TOOLSET "vc6")
+
+ endif()
+
+ set(_BOOST_COMPILER_VERSION_MAJOR)
+ set(_BOOST_COMPILER_VERSION_MINOR)
+
+endif()
+
+# Add version
+
+if(BOOST_DETECTED_TOOLSET)
+ set(BOOST_DETECTED_TOOLSET ${BOOST_DETECTED_TOOLSET}${_BOOST_COMPILER_VERSION_MAJOR}${_BOOST_COMPILER_VERSION_MINOR})
+endif()
+
+unset(_BOOST_COMPILER_VERSION)
+unset(_BOOST_COMPILER_VERSION_MAJOR)
+unset(_BOOST_COMPILER_VERSION_MINOR)
+
+if("${BOOST_DETECTED_TOOLSET}" STREQUAL "")
+
+ # Unknown toolset
+ message(STATUS "Boost toolset is unknown (compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
+
+elseif(Boost_DEBUG)
+
+ message(STATUS "Boost toolset is ${BOOST_DETECTED_TOOLSET} (${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
+
+endif()
diff --git a/src/boost/tools/boost_install/Jamfile b/src/boost/tools/boost_install/Jamfile
new file mode 100644
index 000000000..7d25aaebb
--- /dev/null
+++ b/src/boost/tools/boost_install/Jamfile
@@ -0,0 +1,10 @@
+# Copyright 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+project /boost/tools/boost_install ;
+
+# BoostConfigVersion.cmake
+
+generate BoostConfigVersion.cmake : : <generating-rule>@boost-install%generate-cmake-config-version <name>Boost <version>$(BOOST_VERSION) ;
+explicit BoostConfigVersion.cmake ;
diff --git a/src/boost/tools/boost_install/README.md b/src/boost/tools/boost_install/README.md
new file mode 100644
index 000000000..97e0e48c7
--- /dev/null
+++ b/src/boost/tools/boost_install/README.md
@@ -0,0 +1,8 @@
+# boost_install
+
+This repository contains the implementation of the
+`boost-install` rule. This rule, when called from
+a library `Jamfile`, creates an `install` target
+that installs the library and its CMake configuration
+file. It also invokes the `install` targets of its
+dependencies.
diff --git a/src/boost/tools/boost_install/boost-install-dirs.jam b/src/boost/tools/boost_install/boost-install-dirs.jam
new file mode 100644
index 000000000..5c9f3d469
--- /dev/null
+++ b/src/boost/tools/boost_install/boost-install-dirs.jam
@@ -0,0 +1,104 @@
+# Copyright 2018-2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+import modules ;
+import boostcpp ;
+import package ;
+import path ;
+
+# includedir
+
+rule includedir
+{
+ if ! $(.includedir)
+ {
+ local paths = [ package.paths Boost ] ;
+ .includedir = [ $(paths).includedir ] ;
+ }
+
+ return $(.includedir) ;
+}
+
+# bindir
+
+rule bindir
+{
+ if ! $(.bindir)
+ {
+ local paths = [ package.paths Boost ] ;
+ .bindir = [ $(paths).bindir ] ;
+ }
+
+ return $(.bindir) ;
+}
+
+# libdir
+
+rule libdir
+{
+ if ! $(.libdir)
+ {
+ local paths = [ package.paths Boost ] ;
+ .libdir = [ $(paths).libdir ] ;
+ }
+
+ return $(.libdir) ;
+}
+
+# cmakedir
+
+rule cmakedir
+{
+ if ! $(.cmakedir)
+ {
+ package.add-path-option cmakedir : cmake : libdir ;
+
+ local paths = [ package.paths Boost ] ;
+ .cmakedir = [ $(paths).get cmakedir ] ;
+ }
+
+ return $(.cmakedir) ;
+}
+
+# header-subdir
+
+rule header-subdir
+{
+ local r ;
+
+ local layout = [ modules.peek boostcpp : layout ] ;
+
+ if $(layout) = versioned
+ {
+ local BOOST_VERSION_TAG = [ modules.peek boostcpp : BOOST_VERSION_TAG ] ;
+ r = "boost-$(BOOST_VERSION_TAG)" ;
+ }
+
+ return $(r) ;
+}
+
+# stagedir
+
+rule stagedir
+{
+ return [ path.make [ modules.peek boostcpp : BOOST_STAGE_LOCATE ] ] ;
+}
+
+# stage-libdir
+
+rule stage-libdir
+{
+ local ld = [ MATCH --stage-libdir=(.*) : [ modules.peek : ARGV ] ] ;
+
+ if $(ld)
+ {
+ ld = [ path.root [ path.make $(ld) ] [ path.pwd ] ] ;
+ return $(ld) ;
+ }
+ else
+ {
+ local stagedir = [ stagedir ] ;
+ return $(stagedir)/lib ;
+ }
+}
diff --git a/src/boost/tools/boost_install/boost-install.jam b/src/boost/tools/boost_install/boost-install.jam
new file mode 100644
index 000000000..93d5965d3
--- /dev/null
+++ b/src/boost/tools/boost_install/boost-install.jam
@@ -0,0 +1,1339 @@
+# Copyright 2018-2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+import modules ;
+import boostcpp ;
+import property-set ;
+import "class" : new ;
+import project ;
+import common ;
+import print ;
+import os ;
+import feature ;
+import package ;
+import sequence ;
+import set ;
+import type ;
+import path ;
+import regex ;
+import ./boost-install-dirs ;
+
+feature.feature library-type : : free ;
+feature.feature boost-install.dependency : : free ;
+feature.feature boost-install.cmakedir : : free ;
+feature.feature boost-install.includedir : : free ;
+feature.feature boost-install.libdir : : free ;
+feature.feature boost-install.lib-target-type : : free ;
+feature.feature boost-install.dll-target : : free ;
+
+if "--verbose" in [ modules.peek : ARGV ]
+{
+ .info-enabled = 1 ;
+}
+
+if "--debug-boost-install" in [ modules.peek : ARGV ]
+{
+ .debug-enabled = 1 ;
+}
+
+local rule .info ( messages * )
+{
+ if $(.info-enabled)
+ {
+ ECHO "info:" $(messages) ;
+ }
+}
+
+local rule .debug ( messages * )
+{
+ if $(.debug-enabled)
+ {
+ ECHO "boost-install:" $(messages) ;
+ }
+}
+
+# generate-cmake-variant-
+
+local rule remap-library ( lib )
+{
+ switch $(lib)
+ {
+ case "python.lib" :
+
+ return ;
+
+ case "zlib" :
+
+ return "z" ;
+
+ case "bzip2" :
+
+ return "bz2" ;
+
+ case "icudt" :
+
+ return "icudata" ;
+
+ case "icuin" :
+
+ return "icui18n" ;
+
+ case * :
+
+ return $(lib) ;
+ }
+}
+
+rule generate-cmake-variant- ( target : sources * : properties * )
+{
+ .info generate-cmake-variant- $(target) ":" $(sources) ;
+
+ local ps = [ property-set.create $(properties) ] ;
+
+ print.output $(target) ;
+
+ local version = [ $(ps).get <version> ] ;
+ .info " version=" $(version) ;
+
+ local name = [ $(ps).get <name> ] ;
+ .info " name=" $(name) ;
+
+ local variant = [ $(ps).get <variant> ] ;
+ .info " variant=" $(variant) ;
+
+ local link = [ $(ps).get <link> ] ;
+ .info " link= " $(link) ;
+
+ local runtime-link = [ $(ps).get <runtime-link> ] ;
+ .info " runtime-link=" $(runtime-link) ;
+
+ local runtime-debugging = [ $(ps).get <runtime-debugging> ] ;
+ .info " runtime-debugging=" $(runtime-debugging) ;
+
+ local threading = [ $(ps).get <threading> ] ;
+ .info " threading=" $(threading) ;
+
+ local address-model = [ $(ps).get <address-model> ] ;
+ .info " address-model=" $(address-model) ;
+
+ local toolset = [ MATCH ^-(.*) : [ common.format-name <toolset> : "" : "" : $(ps) ] ] ;
+ .info " toolset=" $(toolset) ;
+
+ local fname = $(sources[1]:BS) ;
+ .info " fname=" $(fname) ;
+
+ local layout = [ modules.peek boostcpp : layout ] ;
+ .info " layout=" $(layout) ;
+
+ print.text
+
+ "# Generated by Boost $(version)"
+ ""
+ : true ;
+
+ print.text "# address-model=$(address-model)" "" : true ;
+
+ if $(address-model) = 32
+ {
+ print.text
+
+ "if(CMAKE_SIZEOF_VOID_P EQUAL 8)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"32 bit, need 64\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(CMAKE_SIZEOF_VOID_P EQUAL 4)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"64 bit, need 32\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ local python ;
+
+ local relevant = [ $(ps).get <relevant> ] ;
+ relevant = [ feature.expand-relevant $(relevant) ] ;
+
+ if python in $(relevant)
+ {
+ python = [ $(ps).get <python> ] ;
+ }
+
+ if $(python)
+ {
+ .info " python=" $(python) ;
+
+ print.text "# python=$(python)" "" : true ;
+
+ print.text
+
+ "if(Boost_PYTHON_VERSION)"
+ " string(REGEX REPLACE \"([0-9]+[.][0-9]+)([.].*)?\" \"\\\\1\" __boost_pyver ${Boost_PYTHON_VERSION})"
+ " if(NOT __boost_pyver VERSION_EQUAL \"$(python)\")"
+ " _BOOST_SKIPPED(\"$(fname)\" \"$(python), Boost_PYTHON_VERSION=${Boost_PYTHON_VERSION}\")"
+ " return()"
+ " endif()"
+ "endif()"
+ ""
+ "if(Boost_PYTHON_VERSION_MAJOR)"
+ " if(NOT \"$(python)\" MATCHES \"^${Boost_PYTHON_VERSION_MAJOR}[.]\")"
+ " _BOOST_SKIPPED(\"$(fname)\" \"$(python), Boost_PYTHON_VERSION_MAJOR=${Boost_PYTHON_VERSION_MAJOR}\")"
+ " return()"
+ " endif()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text "# layout=$(layout)" "" : true ;
+
+ print.text "# toolset=$(toolset)" "" : true ;
+
+ if $(layout) = versioned
+ {
+ print.text
+
+ "if(Boost_COMPILER)"
+ " if(NOT Boost_COMPILER STREQUAL \"$(toolset)\" AND NOT Boost_COMPILER STREQUAL \"-$(toolset)\")"
+ " _BOOST_SKIPPED(\"$(fname)\" \"$(toolset), Boost_COMPILER=${Boost_COMPILER}\")"
+ " return()"
+ " endif()"
+ "else()"
+ " if(BOOST_DETECTED_TOOLSET AND NOT BOOST_DETECTED_TOOLSET STREQUAL \"$(toolset)\")"
+ " _BOOST_SKIPPED(\"$(fname)\" \"$(toolset), detected ${BOOST_DETECTED_TOOLSET}, set Boost_COMPILER to override\")"
+ " return()"
+ " endif()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text "# link=$(link)" "" : true ;
+
+ if $(link) = static
+ {
+ print.text
+
+ "if(DEFINED Boost_USE_STATIC_LIBS)"
+ " if(NOT Boost_USE_STATIC_LIBS)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"static, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}\")"
+ " return()"
+ " endif()"
+ "else()"
+ " if(NOT WIN32 AND NOT _BOOST_SINGLE_VARIANT)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"static, default is shared, set Boost_USE_STATIC_LIBS=ON to override\")"
+ " return()"
+ " endif()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(DEFINED Boost_USE_STATIC_LIBS)"
+ " if(Boost_USE_STATIC_LIBS)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"shared, Boost_USE_STATIC_LIBS=${Boost_USE_STATIC_LIBS}\")"
+ " return()"
+ " endif()"
+ "else()"
+ " if(WIN32 AND NOT _BOOST_SINGLE_VARIANT)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"shared, default on Windows is static, set Boost_USE_STATIC_LIBS=OFF to override\")"
+ " return()"
+ " endif()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text "# runtime-link=$(runtime-link)" "" : true ;
+
+ if $(runtime-link) = static
+ {
+ print.text
+
+ "if(NOT Boost_USE_STATIC_RUNTIME)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"static runtime, Boost_USE_STATIC_RUNTIME not ON\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(Boost_USE_STATIC_RUNTIME)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"shared runtime, Boost_USE_STATIC_RUNTIME=${Boost_USE_STATIC_RUNTIME}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text "# runtime-debugging=$(runtime-debugging)" "" : true ;
+
+ if $(runtime-debugging) = "on"
+ {
+ print.text
+
+ "if(NOT \"${Boost_USE_DEBUG_RUNTIME}\" STREQUAL \"\" AND NOT Boost_USE_DEBUG_RUNTIME)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"debug runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(Boost_USE_DEBUG_RUNTIME)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"release runtime, Boost_USE_DEBUG_RUNTIME=${Boost_USE_DEBUG_RUNTIME}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text "# threading=$(threading)" "" : true ;
+
+ if $(layout) != system
+ {
+ if $(threading) = "multi"
+ {
+ print.text
+
+ "if(DEFINED Boost_USE_MULTITHREADED AND NOT Boost_USE_MULTITHREADED)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"multithreaded, Boost_USE_MULTITHREADED=${Boost_USE_MULTITHREADED}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(NOT DEFINED Boost_USE_MULTITHREADED)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"single-threaded, Boost_USE_MULTITHREADED is not set and defaults to ON, set to OFF to override\")"
+ " return()"
+ "endif()"
+ ""
+ "if(Boost_USE_MULTITHREADED)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"single-threaded, Boost_USE_MULTITHREADED=${Boost_USE_MULTITHREADED}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ }
+
+ print.text "# variant=$(variant)" "" : true ;
+
+ if $(variant) = debug
+ {
+ print.text
+
+ "if(NOT \"${Boost_USE_DEBUG_LIBS}\" STREQUAL \"\" AND NOT Boost_USE_DEBUG_LIBS)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"debug, Boost_USE_DEBUG_LIBS=${Boost_USE_DEBUG_LIBS}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "if(NOT \"${Boost_USE_RELEASE_LIBS}\" STREQUAL \"\" AND NOT Boost_USE_RELEASE_LIBS)"
+ " _BOOST_SKIPPED(\"$(fname)\" \"release, Boost_USE_RELEASE_LIBS=${Boost_USE_RELEASE_LIBS}\")"
+ " return()"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ print.text
+
+ "if(Boost_VERBOSE OR Boost_DEBUG)"
+ " message(STATUS \" [x] $(fname)\")"
+ "endif()"
+ ""
+ : true ;
+
+ if $(python)
+ {
+ print.text
+
+ "if(NOT Boost_PYTHON_VERSION)"
+ " if(Boost_DEBUG)"
+ " message(STATUS \" Setting Boost_PYTHON_VERSION to $(python)\")"
+ " endif()"
+ " set(Boost_PYTHON_VERSION \"$(python)\")"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ local lname = [ MATCH boost_(.*) : $(name) ] ;
+ .info " lname=" $(lname) ;
+
+ local target = "Boost::$(lname)" ;
+ .info " target=" $(target) ;
+
+ print.text
+
+ "# Create imported target $(target)"
+ ""
+ "if(NOT TARGET $(target))"
+ " add_library($(target) $(link:U) IMPORTED)"
+ ""
+ " set_target_properties($(target) PROPERTIES"
+ " INTERFACE_INCLUDE_DIRECTORIES \"\${_BOOST_INCLUDEDIR}\""
+ " INTERFACE_COMPILE_DEFINITIONS \"BOOST_$(lname:U)_NO_LIB\""
+ " )"
+ "endif()"
+ ""
+ : true ;
+
+ print.text "# Target file name: $(fname)" "" : true ;
+
+ local lib-target-type = [ $(ps).get <boost-install.lib-target-type> ] ;
+ .info " lib-target-type=" $(lib-target-type) ;
+
+ local loc-prop = LOCATION ;
+
+ if $(lib-target-type) = IMPORT_LIB
+ {
+ loc-prop = IMPLIB ;
+ }
+
+ .info " loc-prop=" $(loc-prop) ;
+
+ local dll-target = [ $(ps).get <boost-install.dll-target> ] ;
+
+ local dll-name ;
+
+ if $(dll-target)
+ {
+ dll-name = [ $(dll-target).name ] ;
+ }
+
+ .info " dll-name=" $(dll-name) ;
+
+ print.text
+
+ "get_target_property(__boost_imploc $(target) IMPORTED_$(loc-prop)_$(variant:U))"
+ "if(__boost_imploc)"
+ " message(SEND_ERROR \"Target $(target) already has an imported location '${__boost_imploc}', which is being overwritten with '${_BOOST_LIBDIR}/$(fname)'\")"
+ "endif()"
+ "unset(__boost_imploc)"
+ ""
+ "set_property(TARGET $(target) APPEND PROPERTY IMPORTED_CONFIGURATIONS $(variant:U))"
+ ""
+ "set_target_properties($(target) PROPERTIES"
+ " IMPORTED_LINK_INTERFACE_LANGUAGES_$(variant:U) CXX"
+ " IMPORTED_$(loc-prop)_$(variant:U) \"${_BOOST_LIBDIR}/$(fname)\""
+ " )"
+ ""
+ : true ;
+
+ if $(lib-target-type) = IMPORT_LIB
+ {
+ print.text
+
+ "set_target_properties($(target) PROPERTIES"
+ " IMPORTED_LOCATION_$(variant:U) \"${_BOOST_LIBDIR}/$(dll-name)\""
+ " )"
+ ""
+ : true ;
+ }
+
+ if $(variant) = release
+ {
+ print.text
+
+ "set_target_properties($(target) PROPERTIES"
+ " MAP_IMPORTED_CONFIG_MINSIZEREL Release"
+ " MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release"
+ " )"
+ ""
+ : true ;
+ }
+
+ if $(link) = shared
+ {
+ print.text
+
+ "set_property(TARGET $(target) APPEND"
+ " PROPERTY INTERFACE_COMPILE_DEFINITIONS \"BOOST_$(lname:U)_DYN_LINK\""
+ " )"
+ ""
+ : true ;
+ }
+
+ local deps = [ MATCH "boost_(.*)" : [ $(ps).get <boost-install.dependency> ] ] headers ;
+ .info " deps=" $(deps) ;
+
+ if $(deps)
+ {
+ print.text
+
+ "list(APPEND _BOOST_$(lname:U)_DEPS $(deps:S=:J= ))"
+ ""
+ : true ;
+ }
+
+ local deps2 = [ set.difference [ $(ps).get <boost-install.dependency> ] : boost_$(deps) ] ;
+ .info " deps2=" $(deps2) ;
+
+ local deps3 ;
+
+ for local dep in $(deps2)
+ {
+ deps3 += [ remap-library $(dep) ] ;
+ }
+
+ .info " deps3=" $(deps3) ;
+
+ if $(deps3) && $(link) = static
+ {
+ print.text
+
+ "if(CMAKE_CONFIGURATION_TYPES)"
+ " set_property(TARGET $(target) APPEND PROPERTY INTERFACE_LINK_LIBRARIES"
+ " \"$<$<CONFIG:$(variant)>:$(deps3:J=;)>\")"
+ "else()"
+ " set_property(TARGET $(target) APPEND PROPERTY INTERFACE_LINK_LIBRARIES"
+ " $(deps3:J= ))"
+ "endif()"
+ ""
+ : true ;
+ }
+}
+
+actions generate-cmake-variant-
+{
+}
+
+# tag
+
+local rule tag ( name : type ? : property-set )
+{
+ .debug tag $(name) ;
+
+ local link = [ $(property-set).get <link> ] ;
+ .debug " link=" $(link) ;
+
+ local python = ;
+
+ local relevant = [ $(property-set).get <relevant> ] ;
+ relevant = [ feature.expand-relevant $(relevant) ] ;
+
+ if python in $(relevant)
+ {
+ python = [ $(property-set).get <python> ] ;
+ .debug " python=" $(python) ;
+ }
+
+ local r = [ boostcpp.tag $(name) : STATIC_LIB : $(property-set) ] ;
+
+ r = $(r:S=$(name:S)) ;
+ r = $(r:B=$(r:B)-$(link)) ;
+
+ if $(python)
+ {
+ r = $(r:B=$(r:B)-py$(python)) ;
+ }
+
+ .debug " result=" $(r) ;
+
+ return $(r) ;
+}
+
+# choose-lib-target: get the import library, if present, the
+# shared/static library otherwise, ignore .pdb et al
+
+local rule choose-lib-target ( sources * )
+{
+ local result ;
+
+ for local t in $(sources)
+ {
+ if [ type.is-derived [ $(t).type ] IMPORT_LIB ]
+ {
+ return $(t) ;
+ }
+ else if [ type.is-derived [ $(t).type ] LIB ]
+ {
+ result = $(t) ;
+ }
+ }
+
+ return $(result) ;
+}
+
+local rule get-dll-target ( sources * )
+{
+ for local t in $(sources)
+ {
+ if [ type.is-derived [ $(t).type ] SHARED_LIB ]
+ {
+ return $(t) ;
+ }
+ }
+}
+
+# get-dependency-names: Returns the base names of all
+# dependency libraries.
+#
+local rule get-dependency-names ( sources * )
+{
+ local all-targets = [ collect-targets $(sources) ] ;
+ local lib-names ;
+ for local t in [ set.difference $(all-targets) : $(sources) ]
+ {
+ if [ $(t).type ] && [ type.is-derived [ $(t).type ] LIB ]
+ {
+ # Get back the original unmangled name of the library
+ local subvariant = [ $(t).creating-subvariant ] ;
+ local main-target = [ $(subvariant).main-target ] ;
+ lib-names += [ $(main-target).name ] ;
+ }
+ }
+ return [ sequence.unique $(lib-names) ] ;
+}
+
+# generate-cmake-variant
+
+rule generate-cmake-variant ( project name : property-set : sources * )
+{
+ .debug generate-cmake-variant $(name) ;
+
+ for local s in $(sources)
+ {
+ .debug " name=" [ $(s).name ] ;
+ }
+
+ local lib-target = [ choose-lib-target $(sources) ] ;
+
+ local dll-target = [ get-dll-target $(sources) ] ;
+
+ local other-names = [ get-dependency-names $(sources) ] ;
+ property-set = [ $(property-set).add-raw <boost-install.dependency>$(other-names) ] ;
+
+ local result ;
+
+ if $(lib-target)
+ {
+ .debug " lib-target=" [ $(lib-target).name ] ;
+
+ local lib-target-type = [ $(lib-target).type ] ;
+
+ .debug " lib-target-type=" $(lib-target-type) ;
+
+ if $(dll-target)
+ {
+ .debug " dll-target=" [ $(dll-target).name ] ;
+ }
+
+ local tag = [ tag $(name) : : $(property-set) ] ;
+
+ property-set = [ $(property-set).add-raw <boost-install.lib-target-type>$(lib-target-type) ] ;
+ property-set = [ $(property-set).add-raw <boost-install.dll-target>$(dll-target) ] ;
+
+ local a = [ new non-scanning-action $(lib-target) : boost-install.generate-cmake-variant- : $(property-set) ] ;
+
+ result += [ new file-target $(tag) : : $(project) : $(a) ] ;
+ }
+
+ # The result is an optional property set, the usage requirements,
+ # followed by a list of targets. When the list is empty, we need
+ # to include the property set, to avoid a warning.
+
+ return [ property-set.empty ] $(result) ;
+}
+
+# generate-cmake-config-
+
+local rule path-native-fwd ( path )
+{
+ path = [ path.native $(path) ] ;
+
+ if [ os.name ] = NT
+ {
+ path = $(path:T) ;
+ }
+
+ return $(path) ;
+}
+
+local rule get-dir ( name : dir )
+{
+ if [ path.is-rooted $(dir) ]
+ {
+ dir = [ path-native-fwd $(dir) ] ;
+
+ print.text
+
+ "set($(name) \"$(dir)\")"
+
+ : true ;
+ }
+ else
+ {
+ print.text
+
+ "get_filename_component($(name) \"${_BOOST_CMAKEDIR}/$(dir)/\" ABSOLUTE)"
+
+ : true ;
+ }
+}
+
+rule generate-cmake-config- ( target : sources * : properties * )
+{
+ .info generate-cmake-config- $(target) ":" $(sources) ;
+
+ local ps = [ property-set.create $(properties) ] ;
+
+ print.output $(target) ;
+
+ local version = [ $(ps).get <version> ] ;
+ .info " version=" $(version) ;
+
+ local name = [ $(ps).get <name> ] ;
+ .info " name=" $(name) ;
+
+ local library-type = [ $(ps).get <library-type> ] ;
+ .info " library-type=" $(library-type) ;
+
+ local cmakedir = [ $(ps).get <boost-install.cmakedir> ] ;
+ .info " cmakedir=" $(cmakedir) ;
+
+ local includedir = [ $(ps).get <boost-install.includedir> ] ;
+ .info " includedir=" $(includedir) ;
+
+ local libdir = [ $(ps).get <boost-install.libdir> ] ;
+ .info " libdir=" $(libdir) ;
+
+ local lname = [ MATCH boost_(.*) : $(name) ] ;
+ .info " lname=" $(lname) ;
+
+ local ltarget = "Boost::$(lname)" ;
+ .info " ltarget=" $(ltarget) ;
+
+ print.output $(target) ;
+
+ print.text
+
+ "# Generated by Boost $(version)"
+ ""
+ "if(TARGET $(ltarget))"
+ " return()"
+ "endif()"
+ ""
+ "if(Boost_VERBOSE OR Boost_DEBUG)"
+ " message(STATUS \"Found $(name) ${$(name)_VERSION} at ${$(name)_DIR}\")"
+ "endif()"
+ ""
+ "mark_as_advanced($(name)_DIR)"
+ ""
+ "# Compute the include and library directories relative to this file."
+ ""
+ "get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)"
+ : true ;
+
+ if [ path.is-rooted $(cmakedir) ]
+ {
+ local cmakedir-native = [ path-native-fwd $(cmakedir) ] ;
+
+ print.text
+
+ ""
+ "# If the computed and the original directories are symlink-equivalent, use original"
+ "if(EXISTS \"$(cmakedir-native)\")"
+ " get_filename_component(_BOOST_CMAKEDIR_ORIGINAL \"$(cmakedir-native)\" REALPATH)"
+ " if(_BOOST_CMAKEDIR STREQUAL _BOOST_CMAKEDIR_ORIGINAL)"
+ " set(_BOOST_CMAKEDIR \"$(cmakedir-native)\")"
+ " endif()"
+ " unset(_BOOST_CMAKEDIR_ORIGINAL)"
+ "endif()"
+ ""
+ : true ;
+ }
+
+ get-dir "_BOOST_INCLUDEDIR" : $(includedir) ;
+
+ if $(library-type) = INTERFACE
+ {
+ print.text
+
+ ""
+ "add_library($(ltarget) INTERFACE IMPORTED)"
+ ""
+ "set_target_properties($(ltarget) PROPERTIES"
+ " INTERFACE_INCLUDE_DIRECTORIES \"\${_BOOST_INCLUDEDIR}\""
+ ")"
+ ""
+ "unset(_BOOST_INCLUDEDIR)"
+ "unset(_BOOST_CMAKEDIR)"
+ ""
+ : true ;
+ }
+ else
+ {
+ get-dir "_BOOST_LIBDIR" : $(libdir) ;
+
+ print.text
+
+ ""
+ "include(${CMAKE_CURRENT_LIST_DIR}/../BoostDetectToolset-$(version).cmake)"
+ ""
+ "if(Boost_DEBUG)"
+ " message(STATUS \"Scanning ${CMAKE_CURRENT_LIST_DIR}/lib$(name)-variant*.cmake\")"
+ "endif()"
+ ""
+ "file(GLOB __boost_variants \"${CMAKE_CURRENT_LIST_DIR}/lib$(name)-variant*.cmake\")"
+ ""
+ "macro(_BOOST_SKIPPED fname reason)"
+ " if(Boost_VERBOSE OR Boost_DEBUG)"
+ " message(STATUS \" [ ] ${fname}\")"
+ " endif()"
+ " list(APPEND __boost_skipped \"${fname} (${reason})\")"
+ "endmacro()"
+ ""
+ "list(LENGTH __boost_variants _BOOST_SINGLE_VARIANT)"
+ "if(NOT _BOOST_SINGLE_VARIANT EQUAL 1)"
+ " set(_BOOST_SINGLE_VARIANT 0)"
+ "endif()"
+ ""
+ "foreach(f IN LISTS __boost_variants)"
+ " if(Boost_DEBUG)"
+ " message(STATUS \" Including ${f}\")"
+ " endif()"
+ " include(${f})"
+ "endforeach()"
+ ""
+ "unset(_BOOST_SINGLE_VARIANT)"
+ "unset(_BOOST_LIBDIR)"
+ "unset(_BOOST_INCLUDEDIR)"
+ "unset(_BOOST_CMAKEDIR)"
+ ""
+ "if(NOT __boost_variants AND (Boost_VERBOSE OR Boost_DEBUG))"
+ " message(STATUS \" Library has no variants and is considered not found\")"
+ "endif()"
+ ""
+ "if(NOT TARGET $(ltarget))"
+ " set(__boost_message \"No suitable build variant has been found.\")"
+ " if(__boost_skipped)"
+ " set(__boost_message \"${__boost_message}\\nThe following variants have been tried and rejected:\")"
+ " foreach(s IN LISTS __boost_skipped)"
+ " set(__boost_message \"${__boost_message}\\n* ${s}\")"
+ " endforeach()"
+ " endif()"
+ " set($(name)_FOUND 0)"
+ " set($(name)_NOT_FOUND_MESSAGE ${__boost_message})"
+ " unset(__boost_message)"
+ " unset(__boost_skipped)"
+ " unset(__boost_variants)"
+ " unset(_BOOST_$(lname:U)_DEPS)"
+ " return()"
+ "endif()"
+ ""
+ "unset(__boost_skipped)"
+ "unset(__boost_variants)"
+ ""
+ "if(_BOOST_$(lname:U)_DEPS)"
+ " list(REMOVE_DUPLICATES _BOOST_$(lname:U)_DEPS)"
+ " if(Boost_VERBOSE OR Boost_DEBUG)"
+ " message(STATUS \"Adding $(name) dependencies: ${_BOOST_$(lname:U)_DEPS}\")"
+ " endif()"
+ "endif()"
+ ""
+ "foreach(dep_$(name) IN LISTS _BOOST_$(lname:U)_DEPS")
+ " set(_BOOST_QUIET)"
+ " if($(name)_FIND_QUIETLY)"
+ " set(_BOOST_QUIET QUIET)"
+ " endif()"
+ " set(_BOOST_REQUIRED)"
+ " if($(name)_FIND_REQUIRED)"
+ " set(_BOOST_REQUIRED REQUIRED)"
+ " endif()"
+ " get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" ABSOLUTE)"
+ " find_package(boost_${dep_$(name)} $(version) EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR})"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${dep_$(name)})"
+ " unset(_BOOST_QUIET)"
+ " unset(_BOOST_REQUIRED)"
+ " unset(_BOOST_CMAKEDIR)"
+ " if(NOT boost_${dep_$(name)}_FOUND)"
+ " set($(name)_FOUND 0)"
+ " set($(name)_NOT_FOUND_MESSAGE \"A required dependency, boost_${dep_$(name)}, has not been found.\")"
+ " unset(_BOOST_$(lname:U)_DEPS)"
+ " return()"
+ " endif()"
+ "endforeach()"
+ ""
+ "unset(_BOOST_$(lname:U)_DEPS)"
+ ""
+ : true ;
+
+ if $(name) = boost_thread
+ {
+ print.text
+
+ "include(CMakeFindDependencyMacro)"
+ "find_dependency(Threads)"
+ "set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads)"
+ ""
+ : true ;
+ }
+
+ if $(name) = boost_mpi
+ {
+ print.text
+
+ "include(CMakeFindDependencyMacro)"
+ "find_dependency(MPI)"
+ ""
+ "if(MPI_CXX_FOUND AND NOT TARGET MPI::MPI_CXX)"
+ " if(MPI_CXX_COMPILE_FLAGS)"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_COMPILE_OPTIONS \"${MPI_CXX_COMPILE_FLAGS}\")"
+ " endif()"
+ " if(MPI_CXX_INCLUDE_PATH)"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES \"${MPI_CXX_INCLUDE_PATH}\")"
+ " endif()"
+ " if(MPI_CXX_LINK_FLAGS)"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_LINK_OPTIONS \"SHELL:${MPI_CXX_LINK_FLAGS}\")"
+ " endif()"
+ " if(MPI_CXX_LIBRARIES)"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_LINK_LIBRARIES \"${MPI_CXX_LIBRARIES}\")"
+ " endif()"
+ "else()"
+ " set_property(TARGET $(ltarget) APPEND PROPERTY INTERFACE_LINK_LIBRARIES MPI::MPI_CXX)"
+ "endif()"
+ ""
+ : true ;
+ }
+ }
+}
+
+actions generate-cmake-config-
+{
+}
+
+# generate-cmake-config
+
+rule generate-cmake-config ( project name : property-set : sources * )
+{
+ .debug generate-cmake-config $(name) ;
+
+ local pname = [ $(property-set).get <name> ] ;
+ local version = [ $(property-set).get <version> ] ;
+ local location = [ $(property-set).get <location> ] ;
+ local library-type = [ $(property-set).get <library-type> ] ;
+ local cmakedir = [ $(property-set).get <boost-install.cmakedir> ] ;
+ local includedir = [ $(property-set).get <boost-install.includedir> ] ;
+ local libdir = [ $(property-set).get <boost-install.libdir> ] ;
+
+ local ps = [ property-set.create
+ <name>$(pname) <version>$(version) <location>$(location)
+ <library-type>$(library-type)
+ <boost-install.cmakedir>$(cmakedir)
+ <boost-install.includedir>$(includedir)
+ <boost-install.libdir>$(libdir) ] ;
+
+ local result ;
+
+ local a = [ new non-scanning-action : boost-install.generate-cmake-config- : $(ps) ] ;
+
+ result += [ new file-target $(name) : : $(project) : $(a) ] ;
+
+ return $(result) ;
+}
+
+# generate-cmake-config-version-
+
+rule generate-cmake-config-version- ( target : sources * : properties * )
+{
+ .info generate-cmake-config-version- $(target) ":" $(sources) ;
+
+ local ps = [ property-set.create $(properties) ] ;
+
+ print.output $(target) ;
+
+ local version = [ $(ps).get <version> ] ;
+ .info " version=" $(version) ;
+
+ print.output $(target) ;
+
+ print.text
+
+ "# Generated by Boost $(version)"
+ ""
+ "set(PACKAGE_VERSION $(version))"
+ ""
+ "if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)"
+ " set(PACKAGE_VERSION_COMPATIBLE FALSE)"
+ "else()"
+ " set(PACKAGE_VERSION_COMPATIBLE TRUE)"
+ " if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)"
+ " set(PACKAGE_VERSION_EXACT TRUE)"
+ " endif()"
+ "endif()"
+ ""
+ : true ;
+}
+
+actions generate-cmake-config-version-
+{
+}
+
+# generate-cmake-config-version
+
+rule generate-cmake-config-version ( project name : property-set : sources * )
+{
+ .debug generate-cmake-config-version $(name) ;
+
+ local pname = [ $(property-set).get <name> ] ;
+ local version = [ $(property-set).get <version> ] ;
+ local location = [ $(property-set).get <location> ] ;
+
+ local ps = [ property-set.create <name>$(pname) <version>$(version) <location>$(location) ] ;
+
+ local result ;
+
+ local a = [ new non-scanning-action : boost-install.generate-cmake-config-version- : $(ps) ] ;
+
+ result += [ new file-target $(name) : : $(project) : $(a) ] ;
+
+ return $(result) ;
+}
+
+# install-cmake-config-
+
+local rule install-cmake-config- ( install-or-stage : location : includedir : libdir : version : name )
+{
+ #.debug install-cmake-config- $(name) ;
+
+ local r ;
+
+ if [ MATCH boost_(.*) : $(name) ]
+ {
+ local loc = $(location)/$(name)-$(version) ;
+
+ local library-type = UNKNOWN ;
+
+ if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception
+ {
+ library-type = INTERFACE ;
+ }
+
+ local reqs = <name>$(name) <version>$(version) <library-type>$(library-type) <boost-install.cmakedir>$(location) <boost-install.includedir>$(includedir) <boost-install.libdir>$(libdir) ;
+
+ r += [ generate $(install-or-stage)/$(name)-config.cmake : $(name) : <generating-rule>@boost-install%generate-cmake-config $(reqs) ] ;
+ r += [ install $(install-or-stage)-$(name)-config.cmake : $(install-or-stage)/$(name)-config.cmake : <location>$(loc) ] ;
+
+ r += [ generate $(install-or-stage)/$(name)-config-version.cmake : $(name) : <generating-rule>@boost-install%generate-cmake-config-version $(reqs) ] ;
+ r += [ install $(install-or-stage)-$(name)-config-version.cmake : $(install-or-stage)/$(name)-config-version.cmake : <location>$(loc) ] ;
+
+ if $(library-type) != INTERFACE
+ {
+ local v = [ generate $(install-or-stage)/$(name)-variant.cmake : $(name) : <generating-rule>@boost-install%generate-cmake-variant $(reqs) ] ;
+ r += $(v) ;
+ r += [ install $(install-or-stage)-$(name)-config-variant.cmake : $(v) : <location>$(loc) ] ;
+ }
+ }
+ else
+ {
+ .info "target '$(name)' not prefixed by 'boost_', omitting CMake config" ;
+ }
+
+ return $(r) ;
+}
+
+# install-or-stage-cmake-config
+#
+# includedir, libdir, cmakedir should be in canonical path.make format
+
+rule install-or-stage-cmake-config ( name * : install-or-stage : includedir : libdir : cmakedir )
+{
+ local p = [ project.current ] ;
+
+ if "--no-cmake-config" in [ modules.peek : ARGV ]
+ {
+ alias $(install-or-stage)-cmake-config ;
+ $(p).mark-target-as-explicit $(install-or-stage)-cmake-config ;
+ }
+ else
+ {
+ includedir = [ path.relative-to $(cmakedir) $(includedir) ] ;
+ libdir = [ path.relative-to $(cmakedir) $(libdir) ] ;
+
+ local BOOST_VERSION = [ modules.peek boostcpp : BOOST_VERSION ] ;
+
+ local configs ;
+
+ for local nm in $(name)
+ {
+ configs += [ install-cmake-config- $(install-or-stage) : $(cmakedir) : $(includedir) : $(libdir) : $(BOOST_VERSION) : $(nm) ] ;
+ }
+
+ # Target install/stage-detect-toolset
+
+ local boost-install-dir = [ modules.binding $(__name__) ] ;
+ boost-install-dir = $(boost-install-dir:D) ;
+
+ install $(install-or-stage)-detect-toolset : $(boost-install-dir)/BoostDetectToolset.cmake : <location>$(cmakedir) <name>BoostDetectToolset-$(BOOST_VERSION).cmake ;
+ $(p).mark-target-as-explicit $(install-or-stage)-detect-toolset ;
+
+ # Target install/stage-boost-config
+
+ install $(install-or-stage)-boost-config : $(boost-install-dir)/BoostConfig.cmake : <location>$(cmakedir)/Boost-$(BOOST_VERSION) ;
+ $(p).mark-target-as-explicit $(install-or-stage)-boost-config ;
+
+ # Target install/stage-boost-config-version
+
+ project.load [ path.make $(boost-install-dir) ] ;
+
+ install $(install-or-stage)-boost-config-version : /boost/tools/boost_install//BoostConfigVersion.cmake : <location>$(cmakedir)/Boost-$(BOOST_VERSION) ;
+ $(p).mark-target-as-explicit $(install-or-stage)-boost-config-version ;
+
+ # Target install/stage-cmake-config
+
+ alias $(install-or-stage)-cmake-config : $(configs) $(install-or-stage)-detect-toolset $(install-or-stage)-boost-config $(install-or-stage)-boost-config-version ;
+ $(p).mark-target-as-explicit $(install-or-stage)-cmake-config ;
+ }
+}
+
+# install-cmake-config
+
+rule install-cmake-config ( name * )
+{
+ #.debug install-cmake-config $(name) ;
+
+ local includedir = [ boost-install-dirs.includedir ] ;
+ local libdir = [ boost-install-dirs.libdir ] ;
+ local cmakedir = [ boost-install-dirs.cmakedir ] ;
+ local header-subdir = [ boost-install-dirs.header-subdir ] ;
+
+ if $(header-subdir)
+ {
+ includedir = $(includedir)/$(header-subdir) ;
+ }
+
+ install-or-stage-cmake-config $(name) : install : $(includedir) : $(libdir) : $(cmakedir) ;
+}
+
+rule stage-cmake-config ( name * )
+{
+ local includedir = [ path.make [ modules.peek boostcpp : BOOST_ROOT ] ] ;
+ local libdir = [ boost-install-dirs.stage-libdir ] ;
+ local cmakedir = $(libdir)/cmake ;
+
+ install-or-stage-cmake-config $(name) : stage : $(includedir) : $(libdir) : $(cmakedir) ;
+}
+
+# stage-cmake-config
+
+# collect-targets: Returns the targets and all their dependencies.
+# Copied from stage.jam
+# TODO: Factor this out as a utility in virtal-target.jam
+
+rule collect-targets ( targets * )
+{
+ # Find subvariants
+ local s ;
+ for local t in $(targets)
+ {
+ s += [ $(t).creating-subvariant ] ;
+ }
+ s = [ sequence.unique $(s) ] ;
+
+ local result = [ new set ] ;
+ $(result).add $(targets) ;
+
+ for local i in $(s)
+ {
+ $(i).all-referenced-targets $(result) ;
+ }
+ local result2 ;
+ for local r in [ $(result).list ]
+ {
+ if $(r:G) != <use>
+ {
+ result2 += $(r:G=) ;
+ }
+ }
+ DELETE_MODULE $(result) ;
+ return [ sequence.unique $(result2) ] ;
+}
+
+# get-dependency-projects: Returns all the projects of any dependency of the sources.
+
+rule get-dependency-projects ( sources * )
+{
+ local result ;
+ for local t in [ collect-targets $(sources) ]
+ {
+ result += [ $(t).project ] ;
+ }
+ return [ sequence.unique $(result) ] ;
+}
+
+# generate-dependencies: find and generate the stage and install targets
+# corresponding to the source libraries.
+
+rule generate-dependencies ( project name ? : property-set : sources * )
+{
+ local stage-targets ;
+ local stage-or-install = [ $(property-set).get <name> ] ;
+ local excluded-projects = $(project) [ $(project).find /boost ] ;
+ for local p in [ get-dependency-projects $(sources) ] [ $(project).find /boost/headers ]
+ {
+ if ! ( $(p) in $(excluded-projects) )
+ {
+ stage-targets += [ $(p).find $(stage-or-install) : no-error ] ;
+ }
+ }
+ local props = [ $(property-set).propagated ] ;
+ local result ;
+ local usage-requirements = [ property-set.empty ] ;
+ for local t in $(stage-targets)
+ {
+ local g = [ $(t).generate $(props) ] ;
+ usage-requirements = [ $(usage-requirements).add $(g[1]) ] ;
+ result += $(g[2-]) ;
+ }
+ return $(usage-requirements) $(result) ;
+}
+
+# boost-install
+
+local rule install-stage-subdir ( properties * )
+{
+ local ps = [ property-set.create $(properties) ] ;
+
+ local r = [ boostcpp.tag boost : STATIC_LIB : $(ps) ] ;
+
+ r = $(r:S=) ;
+
+ local r2 = [ MATCH "lib(.*)" : $(r) ] ;
+ if $(r2) { r = $(r2) ; }
+
+ local python = [ $(ps).get <python> ] ;
+
+ if $(python)
+ {
+ r = $(r:B=$(r:B)-python$(python)) ;
+ }
+
+ return $(r) ;
+}
+
+rule stage-subdir ( properties * )
+{
+ local r = [ install-stage-subdir $(properties) ] ;
+
+ local libdir = [ boost-install-dirs.stage-libdir ] ;
+
+ return <location>$(libdir)/$(r) ;
+}
+
+rule install-subdir ( properties * )
+{
+ local r = [ install-stage-subdir $(properties) ] ;
+
+ local libdir = [ boost-install-dirs.libdir ] ;
+
+ return <location>$(libdir)/$(r) ;
+}
+
+rule boost-install ( libraries * )
+{
+ .debug boost-install $(libraries) ;
+
+ local l2 = ;
+ local unprefixed = ;
+
+ for local lib in $(libraries)
+ {
+ if [ MATCH boost_(.*) : $(lib) ]
+ {
+ l2 += $(lib) ;
+ }
+ else
+ {
+ unprefixed += $(lib) ;
+ }
+ }
+
+ libraries = $(l2) ;
+
+ # Target install
+
+ local p = [ project.current ] ;
+
+ local libdir = [ boost-install-dirs.libdir ] ;
+ local bindir = [ boost-install-dirs.bindir ] ;
+
+ install install-libraries-static : $(libraries) : <location>$(libdir) <install-dependencies>on <install-type>STATIC_LIB ;
+ $(p).mark-target-as-explicit install-libraries-static ;
+
+ alias install-libraries-shared : install-libraries-shared- ;
+ alias install-libraries-shared : install-libraries-shared-cygwin : <target-os>cygwin ;
+ $(p).mark-target-as-explicit install-libraries-shared ;
+
+ install install-libraries-shared- : $(libraries) : <location>$(libdir) <install-type>SHARED_LIB <install-type>PDB <install-dependencies>on <install-no-version-symlinks>on ;
+ $(p).mark-target-as-explicit install-libraries-shared- ;
+
+ install install-libraries-shared-cygwin : $(libraries) : <location>$(bindir) <install-type>SHARED_LIB <install-type>PDB <install-dependencies>on <install-no-version-symlinks>on ;
+ $(p).mark-target-as-explicit install-libraries-shared-cygwin ;
+
+ install install-unprefixed-static : $(unprefixed) : <install-type>STATIC_LIB <conditional>@boost-install%install-subdir ;
+ $(p).mark-target-as-explicit install-unprefixed-static ;
+
+ install install-unprefixed-shared : $(unprefixed) : <install-type>SHARED_LIB <install-no-version-symlinks>on <conditional>@boost-install%install-subdir ;
+ $(p).mark-target-as-explicit install-unprefixed-shared ;
+
+ install-cmake-config $(libraries) ;
+
+ generate install-dependencies : $(libraries) : <generating-rule>@boost-install%generate-dependencies <name>install ;
+ $(p).mark-target-as-explicit install-dependencies ;
+
+ alias install : install-libraries-static install-libraries-shared install-unprefixed-static install-unprefixed-shared install-cmake-config install-dependencies ;
+ $(p).mark-target-as-explicit install ;
+
+ # Target stage
+
+ local stage-libdir = [ boost-install-dirs.stage-libdir ] ;
+
+ stage-cmake-config $(libraries) ;
+
+ install stage-libraries-static : $(libraries) : <location>$(stage-libdir) <install-dependencies>on <install-type>STATIC_LIB ;
+ $(p).mark-target-as-explicit stage-libraries-static ;
+
+ install stage-libraries-shared : $(libraries) : <location>$(stage-libdir) <install-dependencies>on <install-type>SHARED_LIB <install-type>PDB <install-no-version-symlinks>on ;
+ $(p).mark-target-as-explicit stage-libraries-shared ;
+
+ install stage-unprefixed-static : $(unprefixed) : <install-type>STATIC_LIB <conditional>@boost-install%stage-subdir ;
+ $(p).mark-target-as-explicit stage-unprefixed-static ;
+
+ install stage-unprefixed-shared : $(unprefixed) : <install-type>SHARED_LIB <install-type>PDB <install-no-version-symlinks>on <conditional>@boost-install%stage-subdir ;
+ $(p).mark-target-as-explicit stage-unprefixed-shared ;
+
+ generate stage-dependencies : $(libraries) : <generating-rule>@boost-install%generate-dependencies <name>stage ;
+ $(p).mark-target-as-explicit stage-dependencies ;
+
+ alias stage : stage-libraries-static stage-libraries-shared stage-unprefixed-static stage-unprefixed-shared stage-cmake-config stage-dependencies ;
+ $(p).mark-target-as-explicit stage ;
+}
diff --git a/src/boost/tools/boost_install/test/BoostVersion.cmake b/src/boost/tools/boost_install/test/BoostVersion.cmake
new file mode 100644
index 000000000..da05e0329
--- /dev/null
+++ b/src/boost/tools/boost_install/test/BoostVersion.cmake
@@ -0,0 +1 @@
+set(BOOST_VERSION 1.79.0)
diff --git a/src/boost/tools/boost_install/test/atomic/CMakeLists.txt b/src/boost/tools/boost_install/test/atomic/CMakeLists.txt
new file mode 100644
index 000000000..842a81cc3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/atomic/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigAtomicTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS atomic ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_atomic ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::atomic)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/atomic/quick.cpp b/src/boost/tools/boost_install/test/atomic/quick.cpp
new file mode 100644
index 000000000..f9a3d1a4a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/atomic/quick.cpp
@@ -0,0 +1,45 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/atomic.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+struct X
+{
+ int u_;
+ int v_;
+ int w_;
+
+ X(): u_( 0 ), v_( 0 ), w_( 0 )
+ {
+ }
+
+ X( int u, int v, int w ): u_( u ), v_( v ), w_( w )
+ {
+ }
+};
+
+int main()
+{
+ boost::atomic<X> a;
+
+ a.store( X( 1, 2, 3 ) );
+ X x1 = a.exchange( X( 4, 5, 6 ) );
+
+ BOOST_TEST_EQ( x1.u_, 1 );
+ BOOST_TEST_EQ( x1.v_, 2 );
+ BOOST_TEST_EQ( x1.w_, 3 );
+
+ X x2 = a.load();
+
+ BOOST_TEST_EQ( x2.u_, 4 );
+ BOOST_TEST_EQ( x2.v_, 5 );
+ BOOST_TEST_EQ( x2.w_, 6 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/chrono/CMakeLists.txt b/src/boost/tools/boost_install/test/chrono/CMakeLists.txt
new file mode 100644
index 000000000..ba067f37f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/chrono/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigChronoTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS chrono ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_chrono ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::chrono)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/chrono/quick.cpp b/src/boost/tools/boost_install/test/chrono/quick.cpp
new file mode 100644
index 000000000..c5c0c0dda
--- /dev/null
+++ b/src/boost/tools/boost_install/test/chrono/quick.cpp
@@ -0,0 +1,16 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/chrono.hpp>
+#include <iostream>
+
+int main()
+{
+ std::cout << boost::chrono::system_clock::now() << std::endl;
+ std::cout << boost::chrono::steady_clock::now() << std::endl;
+}
diff --git a/src/boost/tools/boost_install/test/container/CMakeLists.txt b/src/boost/tools/boost_install/test/container/CMakeLists.txt
new file mode 100644
index 000000000..c7cc7520c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/container/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigContainerTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS container ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_container ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::container)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/container/quick.cpp b/src/boost/tools/boost_install/test/container/quick.cpp
new file mode 100644
index 000000000..08f2f62fe
--- /dev/null
+++ b/src/boost/tools/boost_install/test/container/quick.cpp
@@ -0,0 +1,25 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/container/pmr/vector.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+int main()
+{
+ boost::container::pmr::vector_of<int>::type v;
+
+ v.push_back( 1 );
+ v.push_back( 2 );
+
+ BOOST_TEST_EQ( v.size(), 2 );
+
+ BOOST_TEST_EQ( v[0], 1 );
+ BOOST_TEST_EQ( v[1], 2 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/filesystem/CMakeLists.txt b/src/boost/tools/boost_install/test/filesystem/CMakeLists.txt
new file mode 100644
index 000000000..a24bd50a1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/filesystem/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Copyright 2018-2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigFilesystemTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_ALL_COMPONENTS)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED ALL ${BOOST_HINTS})
+
+elseif(USE_ALL_COMPONENTS_CONFIG)
+
+ find_package(Boost ${BOOST_VERSION} EXACT CONFIG REQUIRED ALL ${BOOST_HINTS})
+
+elseif(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS filesystem ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_filesystem ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::filesystem)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/filesystem/quick.cpp b/src/boost/tools/boost_install/test/filesystem/quick.cpp
new file mode 100644
index 000000000..76f2d7ab3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/filesystem/quick.cpp
@@ -0,0 +1,24 @@
+
+// Copyright 2017 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+// See library home page at http://www.boost.org/libs/filesystem
+
+#include <boost/filesystem.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+namespace fs = boost::filesystem;
+
+int main()
+{
+ fs::path p1( "a" );
+ fs::path p2 = p1 / "b";
+
+ BOOST_TEST_EQ( p2, "a/b" );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/headers/CMakeLists.txt b/src/boost/tools/boost_install/test/headers/CMakeLists.txt
new file mode 100644
index 000000000..25f9a1db2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/headers/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.2)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigHeadersTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+find_package(Boost ${BOOST_VERSION} EXACT REQUIRED ${BOOST_HINTS})
+
+# Using `include_directories` is bad practice, done here for
+# testing purposes. The right, "modern CMake", thing to do is
+# `target_link_libraries(main Boost::headers)`.
+
+include_directories(${Boost_INCLUDE_DIRS})
+
+add_executable(main quick.cpp)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/headers/quick.cpp b/src/boost/tools/boost_install/test/headers/quick.cpp
new file mode 100644
index 000000000..28b35f179
--- /dev/null
+++ b/src/boost/tools/boost_install/test/headers/quick.cpp
@@ -0,0 +1,10 @@
+// Copyright 2019 Peter Dimov
+// Distributed under the Boost Software License, Version 1.0
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/core/lightweight_test.hpp>
+
+int main()
+{
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/CMakeLists.txt b/src/boost/tools/boost_install/test/iostreams/CMakeLists.txt
new file mode 100644
index 000000000..1009a8459
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigIostreamsTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS iostreams ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_iostreams ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(test_gzip test_gzip.cpp)
+target_link_libraries(test_gzip Boost::iostreams)
+
+add_executable(test_bzip2 test_bzip2.cpp)
+target_link_libraries(test_bzip2 Boost::iostreams)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(NAME test_gzip COMMAND test_gzip WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+add_test(NAME test_bzip2 COMMAND test_bzip2 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/CHANGES b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/CHANGES
new file mode 100644
index 000000000..30afead25
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/CHANGES
@@ -0,0 +1,356 @@
+ ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------
+
+
+0.9.0
+~~~~~
+First version.
+
+
+0.9.0a
+~~~~~~
+Removed 'ranlib' from Makefile, since most modern Unix-es
+don't need it, or even know about it.
+
+
+0.9.0b
+~~~~~~
+Fixed a problem with error reporting in bzip2.c. This does not effect
+the library in any way. Problem is: versions 0.9.0 and 0.9.0a (of the
+program proper) compress and decompress correctly, but give misleading
+error messages (internal panics) when an I/O error occurs, instead of
+reporting the problem correctly. This shouldn't give any data loss
+(as far as I can see), but is confusing.
+
+Made the inline declarations disappear for non-GCC compilers.
+
+
+0.9.0c
+~~~~~~
+Fixed some problems in the library pertaining to some boundary cases.
+This makes the library behave more correctly in those situations. The
+fixes apply only to features (calls and parameters) not used by
+bzip2.c, so the non-fixedness of them in previous versions has no
+effect on reliability of bzip2.c.
+
+In bzlib.c:
+ * made zero-length BZ_FLUSH work correctly in bzCompress().
+ * fixed bzWrite/bzRead to ignore zero-length requests.
+ * fixed bzread to correctly handle read requests after EOF.
+ * wrong parameter order in call to bzDecompressInit in
+ bzBuffToBuffDecompress. Fixed.
+
+In compress.c:
+ * changed setting of nGroups in sendMTFValues() so as to
+ do a bit better on small files. This _does_ effect
+ bzip2.c.
+
+
+0.9.5a
+~~~~~~
+Major change: add a fallback sorting algorithm (blocksort.c)
+to give reasonable behaviour even for very repetitive inputs.
+Nuked --repetitive-best and --repetitive-fast since they are
+no longer useful.
+
+Minor changes: mostly a whole bunch of small changes/
+bugfixes in the driver (bzip2.c). Changes pertaining to the
+user interface are:
+
+ allow decompression of symlink'd files to stdout
+ decompress/test files even without .bz2 extension
+ give more accurate error messages for I/O errors
+ when compressing/decompressing to stdout, don't catch control-C
+ read flags from BZIP2 and BZIP environment variables
+ decline to break hard links to a file unless forced with -f
+ allow -c flag even with no filenames
+ preserve file ownerships as far as possible
+ make -s -1 give the expected block size (100k)
+ add a flag -q --quiet to suppress nonessential warnings
+ stop decoding flags after --, so files beginning in - can be handled
+ resolved inconsistent naming: bzcat or bz2cat ?
+ bzip2 --help now returns 0
+
+Programming-level changes are:
+
+ fixed syntax error in GET_LL4 for Borland C++ 5.02
+ let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC}
+ fix overshoot of mode-string end in bzopen_or_bzdopen
+ wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... }
+ close file handles under all error conditions
+ added minor mods so it compiles with DJGPP out of the box
+ fixed Makefile so it doesn't give problems with BSD make
+ fix uninitialised memory reads in dlltest.c
+
+0.9.5b
+~~~~~~
+Open stdin/stdout in binary mode for DJGPP.
+
+0.9.5c
+~~~~~~
+Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1. The + 1
+version could cause the sorted order to be wrong in some extremely
+obscure cases. Also changed setting of quadrant in blocksort.c.
+
+0.9.5d
+~~~~~~
+The only functional change is to make bzlibVersion() in the library
+return the correct string. This has no effect whatsoever on the
+functioning of the bzip2 program or library. Added a couple of casts
+so the library compiles without warnings at level 3 in MS Visual
+Studio 6.0. Included a Y2K statement in the file Y2K_INFO. All other
+changes are minor documentation changes.
+
+1.0
+~~~
+Several minor bugfixes and enhancements:
+
+* Large file support. The library uses 64-bit counters to
+ count the volume of data passing through it. bzip2.c
+ is now compiled with -D_FILE_OFFSET_BITS=64 to get large
+ file support from the C library. -v correctly prints out
+ file sizes greater than 4 gigabytes. All these changes have
+ been made without assuming a 64-bit platform or a C compiler
+ which supports 64-bit ints, so, except for the C library
+ aspect, they are fully portable.
+
+* Decompression robustness. The library/program should be
+ robust to any corruption of compressed data, detecting and
+ handling _all_ corruption, instead of merely relying on
+ the CRCs. What this means is that the program should
+ never crash, given corrupted data, and the library should
+ always return BZ_DATA_ERROR.
+
+* Fixed an obscure race-condition bug only ever observed on
+ Solaris, in which, if you were very unlucky and issued
+ control-C at exactly the wrong time, both input and output
+ files would be deleted.
+
+* Don't run out of file handles on test/decompression when
+ large numbers of files have invalid magic numbers.
+
+* Avoid library namespace pollution. Prefix all exported
+ symbols with BZ2_.
+
+* Minor sorting enhancements from my DCC2000 paper.
+
+* Advance the version number to 1.0, so as to counteract the
+ (false-in-this-case) impression some people have that programs
+ with version numbers less than 1.0 are in some way, experimental,
+ pre-release versions.
+
+* Create an initial Makefile-libbz2_so to build a shared library.
+ Yes, I know I should really use libtool et al ...
+
+* Make the program exit with 2 instead of 0 when decompression
+ fails due to a bad magic number (ie, an invalid bzip2 header).
+ Also exit with 1 (as the manual claims :-) whenever a diagnostic
+ message would have been printed AND the corresponding operation
+ is aborted, for example
+ bzip2: Output file xx already exists.
+ When a diagnostic message is printed but the operation is not
+ aborted, for example
+ bzip2: Can't guess original name for wurble -- using wurble.out
+ then the exit value 0 is returned, unless some other problem is
+ also detected.
+
+ I think it corresponds more closely to what the manual claims now.
+
+
+1.0.1
+~~~~~
+* Modified dlltest.c so it uses the new BZ2_ naming scheme.
+* Modified makefile-msc to fix minor build probs on Win2k.
+* Updated README.COMPILATION.PROBLEMS.
+
+There are no functionality changes or bug fixes relative to version
+1.0.0. This is just a documentation update + a fix for minor Win32
+build problems. For almost everyone, upgrading from 1.0.0 to 1.0.1 is
+utterly pointless. Don't bother.
+
+
+1.0.2
+~~~~~
+A bug fix release, addressing various minor issues which have appeared
+in the 18 or so months since 1.0.1 was released. Most of the fixes
+are to do with file-handling or documentation bugs. To the best of my
+knowledge, there have been no data-loss-causing bugs reported in the
+compression/decompression engine of 1.0.0 or 1.0.1.
+
+Note that this release does not improve the rather crude build system
+for Unix platforms. The general plan here is to autoconfiscate/
+libtoolise 1.0.2 soon after release, and release the result as 1.1.0
+or perhaps 1.2.0. That, however, is still just a plan at this point.
+
+Here are the changes in 1.0.2. Bug-reporters and/or patch-senders in
+parentheses.
+
+* Fix an infinite segfault loop in 1.0.1 when a directory is
+ encountered in -f (force) mode.
+ (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt)
+
+* Avoid double fclose() of output file on certain I/O error paths.
+ (Solar Designer)
+
+* Don't fail with internal error 1007 when fed a long stream (> 48MB)
+ of byte 251. Also print useful message suggesting that 1007s may be
+ caused by bad memory.
+ (noticed by Juan Pedro Vallejo, fixed by me)
+
+* Fix uninitialised variable silly bug in demo prog dlltest.c.
+ (Jorj Bauer)
+
+* Remove 512-MB limitation on recovered file size for bzip2recover
+ on selected platforms which support 64-bit ints. At the moment
+ all GCC supported platforms, and Win32.
+ (me, Alson van der Meulen)
+
+* Hard-code header byte values, to give correct operation on platforms
+ using EBCDIC as their native character set (IBM's OS/390).
+ (Leland Lucius)
+
+* Copy file access times correctly.
+ (Marty Leisner)
+
+* Add distclean and check targets to Makefile.
+ (Michael Carmack)
+
+* Parameterise use of ar and ranlib in Makefile. Also add $(LDFLAGS).
+ (Rich Ireland, Bo Thorsen)
+
+* Pass -p (create parent dirs as needed) to mkdir during make install.
+ (Jeremy Fusco)
+
+* Dereference symlinks when copying file permissions in -f mode.
+ (Volker Schmidt)
+
+* Majorly simplify implementation of uInt64_qrm10.
+ (Bo Lindbergh)
+
+* Check the input file still exists before deleting the output one,
+ when aborting in cleanUpAndFail().
+ (Joerg Prante, Robert Linden, Matthias Krings)
+
+Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer
+of bzip2:
+
+* Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore.
+
+* Spelling changes and minor enhancements in bzip2.1.
+
+* Avoid race condition between creating the output file and setting its
+ interim permissions safely, by using fopen_output_safely().
+ No changes to bzip2recover since there is no issue with file
+ permissions there.
+
+* do not print senseless report with -v when compressing an empty
+ file.
+
+* bzcat -f works on non-bzip2 files.
+
+* do not try to escape shell meta-characters on unix (the shell takes
+ care of these).
+
+* added --fast and --best aliases for -1 -9 for gzip compatibility.
+
+
+1.0.3 (15 Feb 05)
+~~~~~~~~~~~~~~~~~
+Fixes some minor bugs since the last version, 1.0.2.
+
+* Further robustification against corrupted compressed data.
+ There are currently no known bitstreams which can cause the
+ decompressor to crash, loop or access memory which does not
+ belong to it. If you are using bzip2 or the library to
+ decompress bitstreams from untrusted sources, an upgrade
+ to 1.0.3 is recommended. This fixes CAN-2005-1260.
+
+* The documentation has been converted to XML, from which html
+ and pdf can be derived.
+
+* Various minor bugs in the documentation have been fixed.
+
+* Fixes for various compilation warnings with newer versions of
+ gcc, and on 64-bit platforms.
+
+* The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2.
+ This has been fixed.
+
+
+1.0.4 (20 Dec 06)
+~~~~~~~~~~~~~~~~~
+Fixes some minor bugs since the last version, 1.0.3.
+
+* Fix file permissions race problem (CAN-2005-0953).
+
+* Avoid possible segfault in BZ2_bzclose. From Coverity's NetBSD
+ scan.
+
+* 'const'/prototype cleanups in the C code.
+
+* Change default install location to /usr/local, and handle multiple
+ 'make install's without error.
+
+* Sanitise file names more carefully in bzgrep. Fixes CAN-2005-0758
+ to the extent that applies to bzgrep.
+
+* Use 'mktemp' rather than 'tempfile' in bzdiff.
+
+* Tighten up a couple of assertions in blocksort.c following automated
+ analysis.
+
+* Fix minor doc/comment bugs.
+
+
+1.0.5 (10 Dec 07)
+~~~~~~~~~~~~~~~~~
+Security fix only. Fixes CERT-FI 20469 as it applies to bzip2.
+
+
+1.0.6 (6 Sept 10)
+~~~~~~~~~~~~~~~~~
+
+* Security fix for CVE-2010-0405. This was reported by Mikolaj
+ Izdebski.
+
+* Make the documentation build on Ubuntu 10.04
+
+1.0.7 (27 Jun 19)
+~~~~~~~~~~~~~~~~~
+
+* Fix undefined behavior in the macros SET_BH, CLEAR_BH, & ISSET_BH
+
+* bzip2: Fix return value when combining --test,-t and -q.
+
+* bzip2recover: Fix buffer overflow for large argv[0]
+
+* bzip2recover: Fix use after free issue with outFile (CVE-2016-3189)
+
+* Make sure nSelectors is not out of range (CVE-2019-12900)
+
+1.0.8 (13 Jul 19)
+~~~~~~~~~~~~~~~~~
+
+* Accept as many selectors as the file format allows.
+ This relaxes the fix for CVE-2019-12900 from 1.0.7
+ so that bzip2 allows decompression of bz2 files that
+ use (too) many selectors again.
+
+* Fix handling of large (> 4GB) files on Windows.
+
+* Cleanup of bzdiff and bzgrep scripts so they don't use
+ any bash extensions and handle multiple archives correctly.
+
+* There is now a bz2-files testsuite at
+ https://sourceware.org/git/bzip2-tests.git
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/LICENSE b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/LICENSE
new file mode 100644
index 000000000..81a37eab7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/LICENSE
@@ -0,0 +1,42 @@
+
+--------------------------------------------------------------------------
+
+This program, "bzip2", the associated library "libbzip2", and all
+documentation, are copyright (C) 1996-2019 Julian R Seward. All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+3. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Julian Seward, jseward@acm.org
+bzip2/libbzip2 version 1.0.8 of 13 July 2019
+
+--------------------------------------------------------------------------
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile
new file mode 100644
index 000000000..f8a17722e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile
@@ -0,0 +1,217 @@
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.8 of 13 July 2019
+# Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+SHELL=/bin/sh
+
+# To assist in cross-compiling
+CC=gcc
+AR=ar
+RANLIB=ranlib
+LDFLAGS=
+
+BIGFILES=-D_FILE_OFFSET_BITS=64
+CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
+
+# Where you want it installed when you do 'make install'
+PREFIX=/usr/local
+
+
+OBJS= blocksort.o \
+ huffman.o \
+ crctable.o \
+ randtable.o \
+ compress.o \
+ decompress.o \
+ bzlib.o
+
+all: libbz2.a bzip2 bzip2recover test
+
+bzip2: libbz2.a bzip2.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2
+
+bzip2recover: bzip2recover.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o
+
+libbz2.a: $(OBJS)
+ rm -f libbz2.a
+ $(AR) cq libbz2.a $(OBJS)
+ @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
+ -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \
+ echo $(RANLIB) libbz2.a ; \
+ $(RANLIB) libbz2.a ; \
+ fi
+
+check: test
+test: bzip2
+ @cat words1
+ ./bzip2 -1 < sample1.ref > sample1.rb2
+ ./bzip2 -2 < sample2.ref > sample2.rb2
+ ./bzip2 -3 < sample3.ref > sample3.rb2
+ ./bzip2 -d < sample1.bz2 > sample1.tst
+ ./bzip2 -d < sample2.bz2 > sample2.tst
+ ./bzip2 -ds < sample3.bz2 > sample3.tst
+ cmp sample1.bz2 sample1.rb2
+ cmp sample2.bz2 sample2.rb2
+ cmp sample3.bz2 sample3.rb2
+ cmp sample1.tst sample1.ref
+ cmp sample2.tst sample2.ref
+ cmp sample3.tst sample3.ref
+ @cat words3
+
+install: bzip2 bzip2recover
+ if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
+ if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi
+ if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
+ if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
+ if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi
+ cp -f bzip2 $(PREFIX)/bin/bzip2
+ cp -f bzip2 $(PREFIX)/bin/bunzip2
+ cp -f bzip2 $(PREFIX)/bin/bzcat
+ cp -f bzip2recover $(PREFIX)/bin/bzip2recover
+ chmod a+x $(PREFIX)/bin/bzip2
+ chmod a+x $(PREFIX)/bin/bunzip2
+ chmod a+x $(PREFIX)/bin/bzcat
+ chmod a+x $(PREFIX)/bin/bzip2recover
+ cp -f bzip2.1 $(PREFIX)/man/man1
+ chmod a+r $(PREFIX)/man/man1/bzip2.1
+ cp -f bzlib.h $(PREFIX)/include
+ chmod a+r $(PREFIX)/include/bzlib.h
+ cp -f libbz2.a $(PREFIX)/lib
+ chmod a+r $(PREFIX)/lib/libbz2.a
+ cp -f bzgrep $(PREFIX)/bin/bzgrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
+ chmod a+x $(PREFIX)/bin/bzgrep
+ cp -f bzmore $(PREFIX)/bin/bzmore
+ ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
+ chmod a+x $(PREFIX)/bin/bzmore
+ cp -f bzdiff $(PREFIX)/bin/bzdiff
+ ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
+ chmod a+x $(PREFIX)/bin/bzdiff
+ cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
+ chmod a+r $(PREFIX)/man/man1/bzgrep.1
+ chmod a+r $(PREFIX)/man/man1/bzmore.1
+ chmod a+r $(PREFIX)/man/man1/bzdiff.1
+ echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1
+ echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1
+ echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1
+ echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1
+
+clean:
+ rm -f *.o libbz2.a bzip2 bzip2recover \
+ sample1.rb2 sample2.rb2 sample3.rb2 \
+ sample1.tst sample2.tst sample3.tst
+
+blocksort.o: blocksort.c
+ @cat words0
+ $(CC) $(CFLAGS) -c blocksort.c
+huffman.o: huffman.c
+ $(CC) $(CFLAGS) -c huffman.c
+crctable.o: crctable.c
+ $(CC) $(CFLAGS) -c crctable.c
+randtable.o: randtable.c
+ $(CC) $(CFLAGS) -c randtable.c
+compress.o: compress.c
+ $(CC) $(CFLAGS) -c compress.c
+decompress.o: decompress.c
+ $(CC) $(CFLAGS) -c decompress.c
+bzlib.o: bzlib.c
+ $(CC) $(CFLAGS) -c bzlib.c
+bzip2.o: bzip2.c
+ $(CC) $(CFLAGS) -c bzip2.c
+bzip2recover.o: bzip2recover.c
+ $(CC) $(CFLAGS) -c bzip2recover.c
+
+
+distclean: clean
+ rm -f manual.ps manual.html manual.pdf
+
+DISTNAME=bzip2-1.0.8
+dist: check manual
+ rm -f $(DISTNAME)
+ ln -s -f . $(DISTNAME)
+ tar cvf $(DISTNAME).tar \
+ $(DISTNAME)/blocksort.c \
+ $(DISTNAME)/huffman.c \
+ $(DISTNAME)/crctable.c \
+ $(DISTNAME)/randtable.c \
+ $(DISTNAME)/compress.c \
+ $(DISTNAME)/decompress.c \
+ $(DISTNAME)/bzlib.c \
+ $(DISTNAME)/bzip2.c \
+ $(DISTNAME)/bzip2recover.c \
+ $(DISTNAME)/bzlib.h \
+ $(DISTNAME)/bzlib_private.h \
+ $(DISTNAME)/Makefile \
+ $(DISTNAME)/LICENSE \
+ $(DISTNAME)/bzip2.1 \
+ $(DISTNAME)/bzip2.1.preformatted \
+ $(DISTNAME)/bzip2.txt \
+ $(DISTNAME)/words0 \
+ $(DISTNAME)/words1 \
+ $(DISTNAME)/words2 \
+ $(DISTNAME)/words3 \
+ $(DISTNAME)/sample1.ref \
+ $(DISTNAME)/sample2.ref \
+ $(DISTNAME)/sample3.ref \
+ $(DISTNAME)/sample1.bz2 \
+ $(DISTNAME)/sample2.bz2 \
+ $(DISTNAME)/sample3.bz2 \
+ $(DISTNAME)/dlltest.c \
+ $(DISTNAME)/manual.html \
+ $(DISTNAME)/manual.pdf \
+ $(DISTNAME)/manual.ps \
+ $(DISTNAME)/README \
+ $(DISTNAME)/README.COMPILATION.PROBLEMS \
+ $(DISTNAME)/README.XML.STUFF \
+ $(DISTNAME)/CHANGES \
+ $(DISTNAME)/libbz2.def \
+ $(DISTNAME)/libbz2.dsp \
+ $(DISTNAME)/dlltest.dsp \
+ $(DISTNAME)/makefile.msc \
+ $(DISTNAME)/unzcrash.c \
+ $(DISTNAME)/spewG.c \
+ $(DISTNAME)/mk251.c \
+ $(DISTNAME)/bzdiff \
+ $(DISTNAME)/bzdiff.1 \
+ $(DISTNAME)/bzmore \
+ $(DISTNAME)/bzmore.1 \
+ $(DISTNAME)/bzgrep \
+ $(DISTNAME)/bzgrep.1 \
+ $(DISTNAME)/Makefile-libbz2_so \
+ $(DISTNAME)/bz-common.xsl \
+ $(DISTNAME)/bz-fo.xsl \
+ $(DISTNAME)/bz-html.xsl \
+ $(DISTNAME)/bzip.css \
+ $(DISTNAME)/entities.xml \
+ $(DISTNAME)/manual.xml \
+ $(DISTNAME)/format.pl \
+ $(DISTNAME)/xmlproc.sh
+ gzip -v $(DISTNAME).tar
+
+# For rebuilding the manual from sources on my SuSE 9.1 box
+
+MANUAL_SRCS= bz-common.xsl bz-fo.xsl bz-html.xsl bzip.css \
+ entities.xml manual.xml
+
+manual: manual.html manual.ps manual.pdf
+
+manual.ps: $(MANUAL_SRCS)
+ ./xmlproc.sh -ps manual.xml
+
+manual.pdf: $(MANUAL_SRCS)
+ ./xmlproc.sh -pdf manual.xml
+
+manual.html: $(MANUAL_SRCS)
+ ./xmlproc.sh -html manual.xml
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile-libbz2_so b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile-libbz2_so
new file mode 100644
index 000000000..fb0f2306f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/Makefile-libbz2_so
@@ -0,0 +1,59 @@
+
+# This Makefile builds a shared version of the library,
+# libbz2.so.1.0.8, with soname libbz2.so.1.0,
+# at least on x86-Linux (RedHat 7.2),
+# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98).
+# Please see the README file for some important info
+# about building the library like this.
+
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.8 of 13 July 2019
+# Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+
+SHELL=/bin/sh
+CC=gcc
+BIGFILES=-D_FILE_OFFSET_BITS=64
+CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
+
+OBJS= blocksort.o \
+ huffman.o \
+ crctable.o \
+ randtable.o \
+ compress.o \
+ decompress.o \
+ bzlib.o
+
+all: $(OBJS)
+ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
+ $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+ rm -f libbz2.so.1.0
+ ln -s libbz2.so.1.0.8 libbz2.so.1.0
+
+clean:
+ rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
+
+blocksort.o: blocksort.c
+ $(CC) $(CFLAGS) -c blocksort.c
+huffman.o: huffman.c
+ $(CC) $(CFLAGS) -c huffman.c
+crctable.o: crctable.c
+ $(CC) $(CFLAGS) -c crctable.c
+randtable.o: randtable.c
+ $(CC) $(CFLAGS) -c randtable.c
+compress.o: compress.c
+ $(CC) $(CFLAGS) -c compress.c
+decompress.o: decompress.c
+ $(CC) $(CFLAGS) -c decompress.c
+bzlib.o: bzlib.c
+ $(CC) $(CFLAGS) -c bzlib.c
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README
new file mode 100644
index 000000000..b9c6099fd
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README
@@ -0,0 +1,196 @@
+
+This is the README for bzip2/libzip2.
+This version is fully compatible with the previous public releases.
+
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
+
+bzip2/libbzip2 version 1.0.8 of 13 July 2019
+Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
+Complete documentation is available in Postscript form (manual.ps),
+PDF (manual.pdf) or html (manual.html). A plain-text version of the
+manual page is available as bzip2.txt.
+
+
+HOW TO BUILD -- UNIX
+
+Type 'make'. This builds the library libbz2.a and then the programs
+bzip2 and bzip2recover. Six self-tests are run. If the self-tests
+complete ok, carry on to installation:
+
+To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
+/usr/local/include, type
+
+ make install
+
+To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
+
+ make install PREFIX=/xxx/yyy
+
+If you are (justifiably) paranoid and want to see what 'make install'
+is going to do, you can first do
+
+ make -n install or
+ make -n install PREFIX=/xxx/yyy respectively.
+
+The -n instructs make to show the commands it would execute, but not
+actually execute them.
+
+
+HOW TO BUILD -- UNIX, shared library libbz2.so.
+
+Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for
+Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims
+that it works for any other platform, though I suspect it probably
+will work for most platforms employing both ELF and gcc.
+
+bzip2-shared, a client of the shared library, is also built, but not
+self-tested. So I suggest you also build using the normal Makefile,
+since that conducts a self-test. A second reason to prefer the
+version statically linked to the library is that, on x86 platforms,
+building shared objects makes a valuable register (%ebx) unavailable
+to gcc, resulting in a slowdown of 10%-20%, at least for bzip2.
+
+Important note for people upgrading .so's from 0.9.0/0.9.5 to version
+1.0.X. All the functions in the library have been renamed, from (eg)
+bzCompress to BZ2_bzCompress, to avoid namespace pollution.
+Unfortunately this means that the libbz2.so created by
+Makefile-libbz2_so will not work with any program which used an older
+version of the library. I do encourage library clients to make the
+effort to upgrade to use version 1.0, since it is both faster and more
+robust than previous versions.
+
+
+HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
+
+It's difficult for me to support compilation on all these platforms.
+My approach is to collect binaries for these platforms, and put them
+on the master web site (https://sourceware.org/bzip2/). Look there. However
+(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
+unmodified with MS Visual C. If you have difficulties building, you
+might want to read README.COMPILATION.PROBLEMS.
+
+At least using MS Visual C++ 6, you can build from the unmodified
+sources by issuing, in a command shell:
+
+ nmake -f makefile.msc
+
+(you may need to first run the MSVC-provided script VCVARS32.BAT
+ so as to set up paths to the MSVC tools correctly).
+
+
+VALIDATION
+
+Correct operation, in the sense that a compressed file can always be
+decompressed to reproduce the original, is obviously of paramount
+importance. To validate bzip2, I used a modified version of Mark
+Nelson's churn program. Churn is an automated test driver which
+recursively traverses a directory structure, using bzip2 to compress
+and then decompress each file it encounters, and checking that the
+decompressed data is the same as the original.
+
+
+
+Please read and be aware of the following:
+
+WARNING:
+
+ This program and library (attempts to) compress data by
+ performing several non-trivial transformations on it.
+ Unless you are 100% familiar with *all* the algorithms
+ contained herein, and with the consequences of modifying them,
+ you should NOT meddle with the compression or decompression
+ machinery. Incorrect changes can and very likely *will*
+ lead to disastrous loss of data.
+
+
+DISCLAIMER:
+
+ I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
+ USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
+
+ Every compression of a file implies an assumption that the
+ compressed file can be decompressed to reproduce the original.
+ Great efforts in design, coding and testing have been made to
+ ensure that this program works correctly. However, the complexity
+ of the algorithms, and, in particular, the presence of various
+ special cases in the code which occur with very low but non-zero
+ probability make it impossible to rule out the possibility of bugs
+ remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS
+ PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
+ SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
+
+ That is not to say this program is inherently unreliable.
+ Indeed, I very much hope the opposite is true. bzip2/libbzip2
+ has been carefully constructed and extensively tested.
+
+
+PATENTS:
+
+ To the best of my knowledge, bzip2/libbzip2 does not use any
+ patented algorithms. However, I do not have the resources
+ to carry out a patent search. Therefore I cannot give any
+ guarantee of the above statement.
+
+
+
+WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
+
+ * Approx 10% faster compression, 30% faster decompression
+ * -t (test mode) is a lot quicker
+ * Can decompress concatenated compressed files
+ * Programming interface, so programs can directly read/write .bz2 files
+ * Less restrictive (BSD-style) licensing
+ * Flag handling more compatible with GNU gzip
+ * Much more documentation, i.e., a proper user manual
+ * Hopefully, improved portability (at least of the library)
+
+WHAT'S NEW IN 0.9.5 ?
+
+ * Compression speed is much less sensitive to the input
+ data than in previous versions. Specifically, the very
+ slow performance caused by repetitive data is fixed.
+ * Many small improvements in file and flag handling.
+ * A Y2K statement.
+
+WHAT'S NEW IN 1.0.x ?
+
+ See the CHANGES file.
+
+I hope you find bzip2 useful. Feel free to contact the developers at
+ bzip2-devel@sourceware.org
+if you have any suggestions or queries. Many people mailed me with
+comments, suggestions and patches after the releases of bzip-0.15,
+bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
+feedback. I thank you for your comments.
+
+bzip2's "home" is https://sourceware.org/bzip2/
+
+Julian Seward
+jseward@acm.org
+Cambridge, UK.
+
+18 July 1996 (version 0.15)
+25 August 1996 (version 0.21)
+ 7 August 1997 (bzip2, version 0.1)
+29 August 1997 (bzip2, version 0.1pl2)
+23 August 1998 (bzip2, version 0.9.0)
+ 8 June 1999 (bzip2, version 0.9.5)
+ 4 Sept 1999 (bzip2, version 0.9.5d)
+ 5 May 2000 (bzip2, version 1.0pre8)
+30 December 2001 (bzip2, version 1.0.2pre1)
+15 February 2005 (bzip2, version 1.0.3)
+20 December 2006 (bzip2, version 1.0.4)
+10 December 2007 (bzip2, version 1.0.5)
+ 6 Sept 2010 (bzip2, version 1.0.6)
+27 June 2019 (bzip2, version 1.0.7)
+13 July 2019 (bzip2, version 1.0.8)
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.COMPILATION.PROBLEMS b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.COMPILATION.PROBLEMS
new file mode 100644
index 000000000..fa317a50c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.COMPILATION.PROBLEMS
@@ -0,0 +1,58 @@
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
+
+bzip2/libbzip2 version 1.0.8 of 13 July 2019
+Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in the
+README file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
+bzip2 should compile without problems on the vast majority of
+platforms. Using the supplied Makefile, I've built and tested it
+myself for x86-linux and amd64-linux. With makefile.msc, Visual C++
+6.0 and nmake, you can build a native Win32 version too. Large file
+support seems to work correctly on at least on amd64-linux.
+
+When I say "large file" I mean a file of size 2,147,483,648 (2^31)
+bytes or above. Many older OSs can't handle files above this size,
+but many newer ones can. Large files are pretty huge -- most files
+you'll encounter are not Large Files.
+
+Early versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
+of platforms without difficulty, and I hope this version will continue
+in that tradition. However, in order to support large files, I've had
+to include the define -D_FILE_OFFSET_BITS=64 in the Makefile. This
+can cause problems.
+
+The technique of adding -D_FILE_OFFSET_BITS=64 to get large file
+support is, as far as I know, the Recommended Way to get correct large
+file support. For more details, see the Large File Support
+Specification, published by the Large File Summit, at
+
+ http://ftp.sas.com/standards/large.file
+
+As a general comment, if you get compilation errors which you think
+are related to large file support, try removing the above define from
+the Makefile, ie, delete the line
+
+ BIGFILES=-D_FILE_OFFSET_BITS=64
+
+from the Makefile, and do 'make clean ; make'. This will give you a
+version of bzip2 without large file support, which, for most
+applications, is probably not a problem.
+
+Alternatively, try some of the platform-specific hints listed below.
+
+You can use the spewG.c program to generate huge files to test bzip2's
+large file support, if you are feeling paranoid. Be aware though that
+any compilation problems which affect bzip2 will also affect spewG.c,
+alas.
+
+AIX: I have reports that for large file support, you need to specify
+-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64. I have not tested
+this myself.
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.XML.STUFF b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.XML.STUFF
new file mode 100644
index 000000000..1503476eb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/README.XML.STUFF
@@ -0,0 +1,45 @@
+ ----------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ----------------------------------------------------------------
+
+The script xmlproc.sh takes an xml file as input,
+and processes it to create .pdf, .html or .ps output.
+It uses format.pl, a perl script to format <pre> blocks nicely,
+ and add CDATA tags so writers do not have to use eg. &lt;
+
+The file "entities.xml" must be edited to reflect current
+version, year, etc.
+
+
+Usage:
+
+ ./xmlproc.sh -v manual.xml
+ Validates an xml file to ensure no dtd-compliance errors
+
+ ./xmlproc.sh -html manual.xml
+ Output: manual.html
+
+ ./xmlproc.sh -pdf manual.xml
+ Output: manual.pdf
+
+ ./xmlproc.sh -ps manual.xml
+ Output: manual.ps
+
+
+Notum bene:
+- pdfxmltex barfs if given a filename with an underscore in it
+
+- xmltex won't work yet - there's a bug in passivetex
+ which we are all waiting for Sebastian to fix.
+ So we are going the xml -> pdf -> ps route for the time being,
+ using pdfxmltex.
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/blocksort.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/blocksort.c
new file mode 100644
index 000000000..92d81fe28
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/blocksort.c
@@ -0,0 +1,1094 @@
+
+/*-------------------------------------------------------------*/
+/*--- Block sorting machinery ---*/
+/*--- blocksort.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*---------------------------------------------*/
+/*--- Fallback O(N log(N)^2) sorting ---*/
+/*--- algorithm, for repetitive blocks ---*/
+/*---------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+__inline__
+void fallbackSimpleSort ( UInt32* fmap,
+ UInt32* eclass,
+ Int32 lo,
+ Int32 hi )
+{
+ Int32 i, j, tmp;
+ UInt32 ec_tmp;
+
+ if (lo == hi) return;
+
+ if (hi - lo > 3) {
+ for ( i = hi-4; i >= lo; i-- ) {
+ tmp = fmap[i];
+ ec_tmp = eclass[tmp];
+ for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
+ fmap[j-4] = fmap[j];
+ fmap[j-4] = tmp;
+ }
+ }
+
+ for ( i = hi-1; i >= lo; i-- ) {
+ tmp = fmap[i];
+ ec_tmp = eclass[tmp];
+ for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
+ fmap[j-1] = fmap[j];
+ fmap[j-1] = tmp;
+ }
+}
+
+
+/*---------------------------------------------*/
+#define fswap(zz1, zz2) \
+ { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
+
+#define fvswap(zzp1, zzp2, zzn) \
+{ \
+ Int32 yyp1 = (zzp1); \
+ Int32 yyp2 = (zzp2); \
+ Int32 yyn = (zzn); \
+ while (yyn > 0) { \
+ fswap(fmap[yyp1], fmap[yyp2]); \
+ yyp1++; yyp2++; yyn--; \
+ } \
+}
+
+
+#define fmin(a,b) ((a) < (b)) ? (a) : (b)
+
+#define fpush(lz,hz) { stackLo[sp] = lz; \
+ stackHi[sp] = hz; \
+ sp++; }
+
+#define fpop(lz,hz) { sp--; \
+ lz = stackLo[sp]; \
+ hz = stackHi[sp]; }
+
+#define FALLBACK_QSORT_SMALL_THRESH 10
+#define FALLBACK_QSORT_STACK_SIZE 100
+
+
+static
+void fallbackQSort3 ( UInt32* fmap,
+ UInt32* eclass,
+ Int32 loSt,
+ Int32 hiSt )
+{
+ Int32 unLo, unHi, ltLo, gtHi, n, m;
+ Int32 sp, lo, hi;
+ UInt32 med, r, r3;
+ Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
+ Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
+
+ r = 0;
+
+ sp = 0;
+ fpush ( loSt, hiSt );
+
+ while (sp > 0) {
+
+ AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
+
+ fpop ( lo, hi );
+ if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
+ fallbackSimpleSort ( fmap, eclass, lo, hi );
+ continue;
+ }
+
+ /* Random partitioning. Median of 3 sometimes fails to
+ avoid bad cases. Median of 9 seems to help but
+ looks rather expensive. This too seems to work but
+ is cheaper. Guidance for the magic constants
+ 7621 and 32768 is taken from Sedgewick's algorithms
+ book, chapter 35.
+ */
+ r = ((r * 7621) + 1) % 32768;
+ r3 = r % 3;
+ if (r3 == 0) med = eclass[fmap[lo]]; else
+ if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
+ med = eclass[fmap[hi]];
+
+ unLo = ltLo = lo;
+ unHi = gtHi = hi;
+
+ while (1) {
+ while (1) {
+ if (unLo > unHi) break;
+ n = (Int32)eclass[fmap[unLo]] - (Int32)med;
+ if (n == 0) {
+ fswap(fmap[unLo], fmap[ltLo]);
+ ltLo++; unLo++;
+ continue;
+ };
+ if (n > 0) break;
+ unLo++;
+ }
+ while (1) {
+ if (unLo > unHi) break;
+ n = (Int32)eclass[fmap[unHi]] - (Int32)med;
+ if (n == 0) {
+ fswap(fmap[unHi], fmap[gtHi]);
+ gtHi--; unHi--;
+ continue;
+ };
+ if (n < 0) break;
+ unHi--;
+ }
+ if (unLo > unHi) break;
+ fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
+ }
+
+ AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
+
+ if (gtHi < ltLo) continue;
+
+ n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
+ m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
+
+ n = lo + unLo - ltLo - 1;
+ m = hi - (gtHi - unHi) + 1;
+
+ if (n - lo > hi - m) {
+ fpush ( lo, n );
+ fpush ( m, hi );
+ } else {
+ fpush ( m, hi );
+ fpush ( lo, n );
+ }
+ }
+}
+
+#undef fmin
+#undef fpush
+#undef fpop
+#undef fswap
+#undef fvswap
+#undef FALLBACK_QSORT_SMALL_THRESH
+#undef FALLBACK_QSORT_STACK_SIZE
+
+
+/*---------------------------------------------*/
+/* Pre:
+ nblock > 0
+ eclass exists for [0 .. nblock-1]
+ ((UChar*)eclass) [0 .. nblock-1] holds block
+ ptr exists for [0 .. nblock-1]
+
+ Post:
+ ((UChar*)eclass) [0 .. nblock-1] holds block
+ All other areas of eclass destroyed
+ fmap [0 .. nblock-1] holds sorted order
+ bhtab [ 0 .. 2+(nblock/32) ] destroyed
+*/
+
+#define SET_BH(zz) bhtab[(zz) >> 5] |= ((UInt32)1 << ((zz) & 31))
+#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~((UInt32)1 << ((zz) & 31))
+#define ISSET_BH(zz) (bhtab[(zz) >> 5] & ((UInt32)1 << ((zz) & 31)))
+#define WORD_BH(zz) bhtab[(zz) >> 5]
+#define UNALIGNED_BH(zz) ((zz) & 0x01f)
+
+static
+void fallbackSort ( UInt32* fmap,
+ UInt32* eclass,
+ UInt32* bhtab,
+ Int32 nblock,
+ Int32 verb )
+{
+ Int32 ftab[257];
+ Int32 ftabCopy[256];
+ Int32 H, i, j, k, l, r, cc, cc1;
+ Int32 nNotDone;
+ Int32 nBhtab;
+ UChar* eclass8 = (UChar*)eclass;
+
+ /*--
+ Initial 1-char radix sort to generate
+ initial fmap and initial BH bits.
+ --*/
+ if (verb >= 4)
+ VPrintf0 ( " bucket sorting ...\n" );
+ for (i = 0; i < 257; i++) ftab[i] = 0;
+ for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
+ for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
+ for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
+
+ for (i = 0; i < nblock; i++) {
+ j = eclass8[i];
+ k = ftab[j] - 1;
+ ftab[j] = k;
+ fmap[k] = i;
+ }
+
+ nBhtab = 2 + (nblock / 32);
+ for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
+ for (i = 0; i < 256; i++) SET_BH(ftab[i]);
+
+ /*--
+ Inductively refine the buckets. Kind-of an
+ "exponential radix sort" (!), inspired by the
+ Manber-Myers suffix array construction algorithm.
+ --*/
+
+ /*-- set sentinel bits for block-end detection --*/
+ for (i = 0; i < 32; i++) {
+ SET_BH(nblock + 2*i);
+ CLEAR_BH(nblock + 2*i + 1);
+ }
+
+ /*-- the log(N) loop --*/
+ H = 1;
+ while (1) {
+
+ if (verb >= 4)
+ VPrintf1 ( " depth %6d has ", H );
+
+ j = 0;
+ for (i = 0; i < nblock; i++) {
+ if (ISSET_BH(i)) j = i;
+ k = fmap[i] - H; if (k < 0) k += nblock;
+ eclass[k] = j;
+ }
+
+ nNotDone = 0;
+ r = -1;
+ while (1) {
+
+ /*-- find the next non-singleton bucket --*/
+ k = r + 1;
+ while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
+ if (ISSET_BH(k)) {
+ while (WORD_BH(k) == 0xffffffff) k += 32;
+ while (ISSET_BH(k)) k++;
+ }
+ l = k - 1;
+ if (l >= nblock) break;
+ while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
+ if (!ISSET_BH(k)) {
+ while (WORD_BH(k) == 0x00000000) k += 32;
+ while (!ISSET_BH(k)) k++;
+ }
+ r = k - 1;
+ if (r >= nblock) break;
+
+ /*-- now [l, r] bracket current bucket --*/
+ if (r > l) {
+ nNotDone += (r - l + 1);
+ fallbackQSort3 ( fmap, eclass, l, r );
+
+ /*-- scan bucket and generate header bits-- */
+ cc = -1;
+ for (i = l; i <= r; i++) {
+ cc1 = eclass[fmap[i]];
+ if (cc != cc1) { SET_BH(i); cc = cc1; };
+ }
+ }
+ }
+
+ if (verb >= 4)
+ VPrintf1 ( "%6d unresolved strings\n", nNotDone );
+
+ H *= 2;
+ if (H > nblock || nNotDone == 0) break;
+ }
+
+ /*--
+ Reconstruct the original block in
+ eclass8 [0 .. nblock-1], since the
+ previous phase destroyed it.
+ --*/
+ if (verb >= 4)
+ VPrintf0 ( " reconstructing block ...\n" );
+ j = 0;
+ for (i = 0; i < nblock; i++) {
+ while (ftabCopy[j] == 0) j++;
+ ftabCopy[j]--;
+ eclass8[fmap[i]] = (UChar)j;
+ }
+ AssertH ( j < 256, 1005 );
+}
+
+#undef SET_BH
+#undef CLEAR_BH
+#undef ISSET_BH
+#undef WORD_BH
+#undef UNALIGNED_BH
+
+
+/*---------------------------------------------*/
+/*--- The main, O(N^2 log(N)) sorting ---*/
+/*--- algorithm. Faster for "normal" ---*/
+/*--- non-repetitive blocks. ---*/
+/*---------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+__inline__
+Bool mainGtU ( UInt32 i1,
+ UInt32 i2,
+ UChar* block,
+ UInt16* quadrant,
+ UInt32 nblock,
+ Int32* budget )
+{
+ Int32 k;
+ UChar c1, c2;
+ UInt16 s1, s2;
+
+ AssertD ( i1 != i2, "mainGtU" );
+ /* 1 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 2 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 3 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 4 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 5 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 6 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 7 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 8 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 9 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 10 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 11 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+ /* 12 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ i1++; i2++;
+
+ k = nblock + 8;
+
+ do {
+ /* 1 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 2 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 3 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 4 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 5 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 6 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 7 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+ /* 8 */
+ c1 = block[i1]; c2 = block[i2];
+ if (c1 != c2) return (c1 > c2);
+ s1 = quadrant[i1]; s2 = quadrant[i2];
+ if (s1 != s2) return (s1 > s2);
+ i1++; i2++;
+
+ if (i1 >= nblock) i1 -= nblock;
+ if (i2 >= nblock) i2 -= nblock;
+
+ k -= 8;
+ (*budget)--;
+ }
+ while (k >= 0);
+
+ return False;
+}
+
+
+/*---------------------------------------------*/
+/*--
+ Knuth's increments seem to work better
+ than Incerpi-Sedgewick here. Possibly
+ because the number of elems to sort is
+ usually small, typically <= 20.
+--*/
+static
+Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
+ 9841, 29524, 88573, 265720,
+ 797161, 2391484 };
+
+static
+void mainSimpleSort ( UInt32* ptr,
+ UChar* block,
+ UInt16* quadrant,
+ Int32 nblock,
+ Int32 lo,
+ Int32 hi,
+ Int32 d,
+ Int32* budget )
+{
+ Int32 i, j, h, bigN, hp;
+ UInt32 v;
+
+ bigN = hi - lo + 1;
+ if (bigN < 2) return;
+
+ hp = 0;
+ while (incs[hp] < bigN) hp++;
+ hp--;
+
+ for (; hp >= 0; hp--) {
+ h = incs[hp];
+
+ i = lo + h;
+ while (True) {
+
+ /*-- copy 1 --*/
+ if (i > hi) break;
+ v = ptr[i];
+ j = i;
+ while ( mainGtU (
+ ptr[j-h]+d, v+d, block, quadrant, nblock, budget
+ ) ) {
+ ptr[j] = ptr[j-h];
+ j = j - h;
+ if (j <= (lo + h - 1)) break;
+ }
+ ptr[j] = v;
+ i++;
+
+ /*-- copy 2 --*/
+ if (i > hi) break;
+ v = ptr[i];
+ j = i;
+ while ( mainGtU (
+ ptr[j-h]+d, v+d, block, quadrant, nblock, budget
+ ) ) {
+ ptr[j] = ptr[j-h];
+ j = j - h;
+ if (j <= (lo + h - 1)) break;
+ }
+ ptr[j] = v;
+ i++;
+
+ /*-- copy 3 --*/
+ if (i > hi) break;
+ v = ptr[i];
+ j = i;
+ while ( mainGtU (
+ ptr[j-h]+d, v+d, block, quadrant, nblock, budget
+ ) ) {
+ ptr[j] = ptr[j-h];
+ j = j - h;
+ if (j <= (lo + h - 1)) break;
+ }
+ ptr[j] = v;
+ i++;
+
+ if (*budget < 0) return;
+ }
+ }
+}
+
+
+/*---------------------------------------------*/
+/*--
+ The following is an implementation of
+ an elegant 3-way quicksort for strings,
+ described in a paper "Fast Algorithms for
+ Sorting and Searching Strings", by Robert
+ Sedgewick and Jon L. Bentley.
+--*/
+
+#define mswap(zz1, zz2) \
+ { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
+
+#define mvswap(zzp1, zzp2, zzn) \
+{ \
+ Int32 yyp1 = (zzp1); \
+ Int32 yyp2 = (zzp2); \
+ Int32 yyn = (zzn); \
+ while (yyn > 0) { \
+ mswap(ptr[yyp1], ptr[yyp2]); \
+ yyp1++; yyp2++; yyn--; \
+ } \
+}
+
+static
+__inline__
+UChar mmed3 ( UChar a, UChar b, UChar c )
+{
+ UChar t;
+ if (a > b) { t = a; a = b; b = t; };
+ if (b > c) {
+ b = c;
+ if (a > b) b = a;
+ }
+ return b;
+}
+
+#define mmin(a,b) ((a) < (b)) ? (a) : (b)
+
+#define mpush(lz,hz,dz) { stackLo[sp] = lz; \
+ stackHi[sp] = hz; \
+ stackD [sp] = dz; \
+ sp++; }
+
+#define mpop(lz,hz,dz) { sp--; \
+ lz = stackLo[sp]; \
+ hz = stackHi[sp]; \
+ dz = stackD [sp]; }
+
+
+#define mnextsize(az) (nextHi[az]-nextLo[az])
+
+#define mnextswap(az,bz) \
+ { Int32 tz; \
+ tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
+ tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
+ tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
+
+
+#define MAIN_QSORT_SMALL_THRESH 20
+#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
+#define MAIN_QSORT_STACK_SIZE 100
+
+static
+void mainQSort3 ( UInt32* ptr,
+ UChar* block,
+ UInt16* quadrant,
+ Int32 nblock,
+ Int32 loSt,
+ Int32 hiSt,
+ Int32 dSt,
+ Int32* budget )
+{
+ Int32 unLo, unHi, ltLo, gtHi, n, m, med;
+ Int32 sp, lo, hi, d;
+
+ Int32 stackLo[MAIN_QSORT_STACK_SIZE];
+ Int32 stackHi[MAIN_QSORT_STACK_SIZE];
+ Int32 stackD [MAIN_QSORT_STACK_SIZE];
+
+ Int32 nextLo[3];
+ Int32 nextHi[3];
+ Int32 nextD [3];
+
+ sp = 0;
+ mpush ( loSt, hiSt, dSt );
+
+ while (sp > 0) {
+
+ AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
+
+ mpop ( lo, hi, d );
+ if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
+ d > MAIN_QSORT_DEPTH_THRESH) {
+ mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
+ if (*budget < 0) return;
+ continue;
+ }
+
+ med = (Int32)
+ mmed3 ( block[ptr[ lo ]+d],
+ block[ptr[ hi ]+d],
+ block[ptr[ (lo+hi)>>1 ]+d] );
+
+ unLo = ltLo = lo;
+ unHi = gtHi = hi;
+
+ while (True) {
+ while (True) {
+ if (unLo > unHi) break;
+ n = ((Int32)block[ptr[unLo]+d]) - med;
+ if (n == 0) {
+ mswap(ptr[unLo], ptr[ltLo]);
+ ltLo++; unLo++; continue;
+ };
+ if (n > 0) break;
+ unLo++;
+ }
+ while (True) {
+ if (unLo > unHi) break;
+ n = ((Int32)block[ptr[unHi]+d]) - med;
+ if (n == 0) {
+ mswap(ptr[unHi], ptr[gtHi]);
+ gtHi--; unHi--; continue;
+ };
+ if (n < 0) break;
+ unHi--;
+ }
+ if (unLo > unHi) break;
+ mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
+ }
+
+ AssertD ( unHi == unLo-1, "mainQSort3(2)" );
+
+ if (gtHi < ltLo) {
+ mpush(lo, hi, d+1 );
+ continue;
+ }
+
+ n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
+ m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
+
+ n = lo + unLo - ltLo - 1;
+ m = hi - (gtHi - unHi) + 1;
+
+ nextLo[0] = lo; nextHi[0] = n; nextD[0] = d;
+ nextLo[1] = m; nextHi[1] = hi; nextD[1] = d;
+ nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
+
+ if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
+ if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
+ if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
+
+ AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
+ AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
+
+ mpush (nextLo[0], nextHi[0], nextD[0]);
+ mpush (nextLo[1], nextHi[1], nextD[1]);
+ mpush (nextLo[2], nextHi[2], nextD[2]);
+ }
+}
+
+#undef mswap
+#undef mvswap
+#undef mpush
+#undef mpop
+#undef mmin
+#undef mnextsize
+#undef mnextswap
+#undef MAIN_QSORT_SMALL_THRESH
+#undef MAIN_QSORT_DEPTH_THRESH
+#undef MAIN_QSORT_STACK_SIZE
+
+
+/*---------------------------------------------*/
+/* Pre:
+ nblock > N_OVERSHOOT
+ block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
+ ((UChar*)block32) [0 .. nblock-1] holds block
+ ptr exists for [0 .. nblock-1]
+
+ Post:
+ ((UChar*)block32) [0 .. nblock-1] holds block
+ All other areas of block32 destroyed
+ ftab [0 .. 65536 ] destroyed
+ ptr [0 .. nblock-1] holds sorted order
+ if (*budget < 0), sorting was abandoned
+*/
+
+#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
+#define SETMASK (1 << 21)
+#define CLEARMASK (~(SETMASK))
+
+static
+void mainSort ( UInt32* ptr,
+ UChar* block,
+ UInt16* quadrant,
+ UInt32* ftab,
+ Int32 nblock,
+ Int32 verb,
+ Int32* budget )
+{
+ Int32 i, j, k, ss, sb;
+ Int32 runningOrder[256];
+ Bool bigDone[256];
+ Int32 copyStart[256];
+ Int32 copyEnd [256];
+ UChar c1;
+ Int32 numQSorted;
+ UInt16 s;
+ if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" );
+
+ /*-- set up the 2-byte frequency table --*/
+ for (i = 65536; i >= 0; i--) ftab[i] = 0;
+
+ j = block[0] << 8;
+ i = nblock-1;
+ for (; i >= 3; i -= 4) {
+ quadrant[i] = 0;
+ j = (j >> 8) | ( ((UInt16)block[i]) << 8);
+ ftab[j]++;
+ quadrant[i-1] = 0;
+ j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
+ ftab[j]++;
+ quadrant[i-2] = 0;
+ j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
+ ftab[j]++;
+ quadrant[i-3] = 0;
+ j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
+ ftab[j]++;
+ }
+ for (; i >= 0; i--) {
+ quadrant[i] = 0;
+ j = (j >> 8) | ( ((UInt16)block[i]) << 8);
+ ftab[j]++;
+ }
+
+ /*-- (emphasises close relationship of block & quadrant) --*/
+ for (i = 0; i < BZ_N_OVERSHOOT; i++) {
+ block [nblock+i] = block[i];
+ quadrant[nblock+i] = 0;
+ }
+
+ if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" );
+
+ /*-- Complete the initial radix sort --*/
+ for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
+
+ s = block[0] << 8;
+ i = nblock-1;
+ for (; i >= 3; i -= 4) {
+ s = (s >> 8) | (block[i] << 8);
+ j = ftab[s] -1;
+ ftab[s] = j;
+ ptr[j] = i;
+ s = (s >> 8) | (block[i-1] << 8);
+ j = ftab[s] -1;
+ ftab[s] = j;
+ ptr[j] = i-1;
+ s = (s >> 8) | (block[i-2] << 8);
+ j = ftab[s] -1;
+ ftab[s] = j;
+ ptr[j] = i-2;
+ s = (s >> 8) | (block[i-3] << 8);
+ j = ftab[s] -1;
+ ftab[s] = j;
+ ptr[j] = i-3;
+ }
+ for (; i >= 0; i--) {
+ s = (s >> 8) | (block[i] << 8);
+ j = ftab[s] -1;
+ ftab[s] = j;
+ ptr[j] = i;
+ }
+
+ /*--
+ Now ftab contains the first loc of every small bucket.
+ Calculate the running order, from smallest to largest
+ big bucket.
+ --*/
+ for (i = 0; i <= 255; i++) {
+ bigDone [i] = False;
+ runningOrder[i] = i;
+ }
+
+ {
+ Int32 vv;
+ Int32 h = 1;
+ do h = 3 * h + 1; while (h <= 256);
+ do {
+ h = h / 3;
+ for (i = h; i <= 255; i++) {
+ vv = runningOrder[i];
+ j = i;
+ while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
+ runningOrder[j] = runningOrder[j-h];
+ j = j - h;
+ if (j <= (h - 1)) goto zero;
+ }
+ zero:
+ runningOrder[j] = vv;
+ }
+ } while (h != 1);
+ }
+
+ /*--
+ The main sorting loop.
+ --*/
+
+ numQSorted = 0;
+
+ for (i = 0; i <= 255; i++) {
+
+ /*--
+ Process big buckets, starting with the least full.
+ Basically this is a 3-step process in which we call
+ mainQSort3 to sort the small buckets [ss, j], but
+ also make a big effort to avoid the calls if we can.
+ --*/
+ ss = runningOrder[i];
+
+ /*--
+ Step 1:
+ Complete the big bucket [ss] by quicksorting
+ any unsorted small buckets [ss, j], for j != ss.
+ Hopefully previous pointer-scanning phases have already
+ completed many of the small buckets [ss, j], so
+ we don't have to sort them at all.
+ --*/
+ for (j = 0; j <= 255; j++) {
+ if (j != ss) {
+ sb = (ss << 8) + j;
+ if ( ! (ftab[sb] & SETMASK) ) {
+ Int32 lo = ftab[sb] & CLEARMASK;
+ Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
+ if (hi > lo) {
+ if (verb >= 4)
+ VPrintf4 ( " qsort [0x%x, 0x%x] "
+ "done %d this %d\n",
+ ss, j, numQSorted, hi - lo + 1 );
+ mainQSort3 (
+ ptr, block, quadrant, nblock,
+ lo, hi, BZ_N_RADIX, budget
+ );
+ numQSorted += (hi - lo + 1);
+ if (*budget < 0) return;
+ }
+ }
+ ftab[sb] |= SETMASK;
+ }
+ }
+
+ AssertH ( !bigDone[ss], 1006 );
+
+ /*--
+ Step 2:
+ Now scan this big bucket [ss] so as to synthesise the
+ sorted order for small buckets [t, ss] for all t,
+ including, magically, the bucket [ss,ss] too.
+ This will avoid doing Real Work in subsequent Step 1's.
+ --*/
+ {
+ for (j = 0; j <= 255; j++) {
+ copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK;
+ copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
+ }
+ for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
+ k = ptr[j]-1; if (k < 0) k += nblock;
+ c1 = block[k];
+ if (!bigDone[c1])
+ ptr[ copyStart[c1]++ ] = k;
+ }
+ for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
+ k = ptr[j]-1; if (k < 0) k += nblock;
+ c1 = block[k];
+ if (!bigDone[c1])
+ ptr[ copyEnd[c1]-- ] = k;
+ }
+ }
+
+ AssertH ( (copyStart[ss]-1 == copyEnd[ss])
+ ||
+ /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
+ Necessity for this case is demonstrated by compressing
+ a sequence of approximately 48.5 million of character
+ 251; 1.0.0/1.0.1 will then die here. */
+ (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
+ 1007 )
+
+ for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
+
+ /*--
+ Step 3:
+ The [ss] big bucket is now done. Record this fact,
+ and update the quadrant descriptors. Remember to
+ update quadrants in the overshoot area too, if
+ necessary. The "if (i < 255)" test merely skips
+ this updating for the last bucket processed, since
+ updating for the last bucket is pointless.
+
+ The quadrant array provides a way to incrementally
+ cache sort orderings, as they appear, so as to
+ make subsequent comparisons in fullGtU() complete
+ faster. For repetitive blocks this makes a big
+ difference (but not big enough to be able to avoid
+ the fallback sorting mechanism, exponential radix sort).
+
+ The precise meaning is: at all times:
+
+ for 0 <= i < nblock and 0 <= j <= nblock
+
+ if block[i] != block[j],
+
+ then the relative values of quadrant[i] and
+ quadrant[j] are meaningless.
+
+ else {
+ if quadrant[i] < quadrant[j]
+ then the string starting at i lexicographically
+ precedes the string starting at j
+
+ else if quadrant[i] > quadrant[j]
+ then the string starting at j lexicographically
+ precedes the string starting at i
+
+ else
+ the relative ordering of the strings starting
+ at i and j has not yet been determined.
+ }
+ --*/
+ bigDone[ss] = True;
+
+ if (i < 255) {
+ Int32 bbStart = ftab[ss << 8] & CLEARMASK;
+ Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
+ Int32 shifts = 0;
+
+ while ((bbSize >> shifts) > 65534) shifts++;
+
+ for (j = bbSize-1; j >= 0; j--) {
+ Int32 a2update = ptr[bbStart + j];
+ UInt16 qVal = (UInt16)(j >> shifts);
+ quadrant[a2update] = qVal;
+ if (a2update < BZ_N_OVERSHOOT)
+ quadrant[a2update + nblock] = qVal;
+ }
+ AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
+ }
+
+ }
+
+ if (verb >= 4)
+ VPrintf3 ( " %d pointers, %d sorted, %d scanned\n",
+ nblock, numQSorted, nblock - numQSorted );
+}
+
+#undef BIGFREQ
+#undef SETMASK
+#undef CLEARMASK
+
+
+/*---------------------------------------------*/
+/* Pre:
+ nblock > 0
+ arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
+ ((UChar*)arr2) [0 .. nblock-1] holds block
+ arr1 exists for [0 .. nblock-1]
+
+ Post:
+ ((UChar*)arr2) [0 .. nblock-1] holds block
+ All other areas of block destroyed
+ ftab [ 0 .. 65536 ] destroyed
+ arr1 [0 .. nblock-1] holds sorted order
+*/
+void BZ2_blockSort ( EState* s )
+{
+ UInt32* ptr = s->ptr;
+ UChar* block = s->block;
+ UInt32* ftab = s->ftab;
+ Int32 nblock = s->nblock;
+ Int32 verb = s->verbosity;
+ Int32 wfact = s->workFactor;
+ UInt16* quadrant;
+ Int32 budget;
+ Int32 budgetInit;
+ Int32 i;
+
+ if (nblock < 10000) {
+ fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
+ } else {
+ /* Calculate the location for quadrant, remembering to get
+ the alignment right. Assumes that &(block[0]) is at least
+ 2-byte aligned -- this should be ok since block is really
+ the first section of arr2.
+ */
+ i = nblock+BZ_N_OVERSHOOT;
+ if (i & 1) i++;
+ quadrant = (UInt16*)(&(block[i]));
+
+ /* (wfact-1) / 3 puts the default-factor-30
+ transition point at very roughly the same place as
+ with v0.1 and v0.9.0.
+ Not that it particularly matters any more, since the
+ resulting compressed stream is now the same regardless
+ of whether or not we use the main sort or fallback sort.
+ */
+ if (wfact < 1 ) wfact = 1;
+ if (wfact > 100) wfact = 100;
+ budgetInit = nblock * ((wfact-1) / 3);
+ budget = budgetInit;
+
+ mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
+ if (verb >= 3)
+ VPrintf3 ( " %d work, %d block, ratio %5.2f\n",
+ budgetInit - budget,
+ nblock,
+ (float)(budgetInit - budget) /
+ (float)(nblock==0 ? 1 : nblock) );
+ if (budget < 0) {
+ if (verb >= 2)
+ VPrintf0 ( " too repetitive; using fallback"
+ " sorting algorithm\n" );
+ fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
+ }
+ }
+
+ s->origPtr = -1;
+ for (i = 0; i < s->nblock; i++)
+ if (ptr[i] == 0)
+ { s->origPtr = i; break; };
+
+ AssertH( s->origPtr != -1, 1003 );
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end blocksort.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-common.xsl b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-common.xsl
new file mode 100644
index 000000000..66fcd6fe0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-common.xsl
@@ -0,0 +1,39 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- we like '1.2 Title' -->
+<xsl:param name="section.autolabel" select="'1'"/>
+<xsl:param name="section.label.includes.component.label" select="'1'"/>
+
+<!-- Do not put 'Chapter' at the start of eg 'Chapter 1. Doing This' -->
+<xsl:param name="local.l10n.xml" select="document('')"/>
+<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+ <l:l10n language="en">
+ <l:context name="title-numbered">
+ <l:template name="chapter" text="%n.&#160;%t"/>
+ </l:context>
+ </l:l10n>
+</l:i18n>
+
+<!-- don't generate sub-tocs for qanda sets -->
+<xsl:param name="generate.toc">
+set toc,title
+book toc,title,figure,table,example,equation
+chapter toc,title
+section toc
+sect1 toc
+sect2 toc
+sect3 toc
+sect4 nop
+sect5 nop
+qandaset toc
+qandadiv nop
+appendix toc,title
+article/appendix nop
+article toc,title
+preface toc,title
+reference toc,title
+</xsl:param>
+
+</xsl:stylesheet>
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-fo.xsl b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-fo.xsl
new file mode 100644
index 000000000..ba3e30123
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-fo.xsl
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?> <!-- -*- sgml -*- -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+<xsl:import href="bz-common.xsl"/>
+
+<!-- set indent = yes while debugging, then change to NO -->
+<xsl:output method="xml" indent="yes"/>
+
+<!-- ensure only passivetex extensions are on -->
+<xsl:param name="stylesheet.result.type" select="'fo'"/>
+<!-- fo extensions: PDF bookmarks and index terms -->
+<xsl:param name="use.extensions" select="'1'"/>
+<xsl:param name="xep.extensions" select="0"/>
+<xsl:param name="fop.extensions" select="0"/>
+<xsl:param name="saxon.extensions" select="0"/>
+<xsl:param name="passivetex.extensions" select="1"/>
+<xsl:param name="tablecolumns.extension" select="'1'"/>
+
+<!-- ensure we are using single sided -->
+<xsl:param name="double.sided" select="'0'"/>
+
+<!-- insert cross references to page numbers -->
+<xsl:param name="insert.xref.page.number" select="1"/>
+
+<!-- <?custom-pagebreak?> inserts a page break at this point -->
+<xsl:template match="processing-instruction('custom-pagebreak')">
+ <fo:block break-before='page'/>
+</xsl:template>
+
+<!-- show links in color -->
+<xsl:attribute-set name="xref.properties">
+ <xsl:attribute name="color">blue</xsl:attribute>
+</xsl:attribute-set>
+
+<!-- make pre listings indented a bit + a bg colour -->
+<xsl:template match="programlisting | screen">
+ <fo:block start-indent="0.25in" wrap-option="no-wrap"
+ white-space-collapse="false" text-align="start"
+ font-family="monospace" background-color="#f2f2f9"
+ linefeed-treatment="preserve"
+ xsl:use-attribute-sets="normal.para.spacing">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+<!-- make verbatim output prettier -->
+<xsl:template match="literallayout">
+ <fo:block start-indent="0.25in" wrap-option="no-wrap"
+ white-space-collapse="false" text-align="start"
+ font-family="monospace" background-color="#edf7f4"
+ linefeed-treatment="preserve"
+ space-before="0em" space-after="0em">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for itemizedlist -->
+<xsl:template match="itemizedlist/listitem">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:variable name="itemsymbol">
+ <xsl:call-template name="list.itemsymbol">
+ <xsl:with-param name="node" select="parent::itemizedlist"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="item.contents">
+ <fo:list-item-label end-indent="label-end()">
+ <fo:block>
+ <xsl:choose>
+ <xsl:when test="$itemsymbol='disc'">&#x2022;</xsl:when>
+ <xsl:when test="$itemsymbol='bullet'">&#x2022;</xsl:when>
+ <xsl:otherwise>&#x2022;</xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent="body-start()">
+ <xsl:apply-templates/> <!-- removed extra block wrapper -->
+ </fo:list-item-body>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="parent::*/@spacing = 'compact'">
+ <fo:list-item id="{$id}"
+ xsl:use-attribute-sets="compact.list.item.spacing">
+ <xsl:copy-of select="$item.contents"/>
+ </fo:list-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+ <xsl:copy-of select="$item.contents"/>
+ </fo:list-item>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for orderedlist -->
+<xsl:template match="orderedlist/listitem">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/></xsl:variable>
+ <xsl:variable name="item.contents">
+ <fo:list-item-label end-indent="label-end()">
+ <fo:block>
+ <xsl:apply-templates select="." mode="item-number"/>
+ </fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent="body-start()">
+ <xsl:apply-templates/> <!-- removed extra block wrapper -->
+ </fo:list-item-body>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="parent::*/@spacing = 'compact'">
+ <fo:list-item id="{$id}"
+ xsl:use-attribute-sets="compact.list.item.spacing">
+ <xsl:copy-of select="$item.contents"/>
+ </fo:list-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+ <xsl:copy-of select="$item.contents"/>
+ </fo:list-item>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- workaround bug in passivetex fo output for variablelist -->
+<xsl:param name="variablelist.as.blocks" select="1"/>
+<xsl:template match="varlistentry" mode="vl.as.blocks">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/></xsl:variable>
+ <fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"
+ keep-together.within-column="always"
+ keep-with-next.within-column="always">
+ <xsl:apply-templates select="term"/>
+ </fo:block>
+ <fo:block start-indent="0.5in" end-indent="0in"
+ space-after.minimum="0.2em"
+ space-after.optimum="0.4em"
+ space-after.maximum="0.6em">
+ <fo:block>
+ <xsl:apply-templates select="listitem"/>
+ </fo:block>
+ </fo:block>
+</xsl:template>
+
+
+<!-- workaround bug in footers: force right-align w/two 80|30 cols -->
+<xsl:template name="footer.table">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$pageclass = 'index'">
+ <xsl:attribute name="margin-left">0pt</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="candidate">
+ <fo:table table-layout="fixed" width="100%">
+ <fo:table-column column-number="1" column-width="80%"/>
+ <fo:table-column column-number="2" column-width="20%"/>
+ <fo:table-body>
+ <fo:table-row height="14pt">
+ <fo:table-cell text-align="left" display-align="after">
+ <xsl:attribute name="relative-align">baseline</xsl:attribute>
+ <fo:block>
+ <fo:block> </fo:block><!-- empty cell -->
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell text-align="center" display-align="after">
+ <xsl:attribute name="relative-align">baseline</xsl:attribute>
+ <fo:block>
+ <xsl:call-template name="footer.content">
+ <xsl:with-param name="pageclass" select="$pageclass"/>
+ <xsl:with-param name="sequence" select="$sequence"/>
+ <xsl:with-param name="position" select="'center'"/>
+ <xsl:with-param name="gentext-key" select="$gentext-key"/>
+ </xsl:call-template>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </xsl:variable>
+ <!-- Really output a footer? -->
+ <xsl:choose>
+ <xsl:when test="$pageclass='titlepage' and $gentext-key='book'
+ and $sequence='first'">
+ <!-- no, book titlepages have no footers at all -->
+ </xsl:when>
+ <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0">
+ <!-- no output -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$candidate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<!-- fix bug in headers: force right-align w/two 40|60 cols -->
+<xsl:template name="header.table">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$pageclass = 'index'">
+ <xsl:attribute name="margin-left">0pt</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="candidate">
+ <fo:table table-layout="fixed" width="100%">
+ <xsl:call-template name="head.sep.rule">
+ <xsl:with-param name="pageclass" select="$pageclass"/>
+ <xsl:with-param name="sequence" select="$sequence"/>
+ <xsl:with-param name="gentext-key" select="$gentext-key"/>
+ </xsl:call-template>
+ <fo:table-column column-number="1" column-width="40%"/>
+ <fo:table-column column-number="2" column-width="60%"/>
+ <fo:table-body>
+ <fo:table-row height="14pt">
+ <fo:table-cell text-align="left" display-align="before">
+ <xsl:attribute name="relative-align">baseline</xsl:attribute>
+ <fo:block>
+ <fo:block> </fo:block><!-- empty cell -->
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell text-align="center" display-align="before">
+ <xsl:attribute name="relative-align">baseline</xsl:attribute>
+ <fo:block>
+ <xsl:call-template name="header.content">
+ <xsl:with-param name="pageclass" select="$pageclass"/>
+ <xsl:with-param name="sequence" select="$sequence"/>
+ <xsl:with-param name="position" select="'center'"/>
+ <xsl:with-param name="gentext-key" select="$gentext-key"/>
+ </xsl:call-template>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </xsl:variable>
+ <!-- Really output a header? -->
+ <xsl:choose>
+ <xsl:when test="$pageclass = 'titlepage' and $gentext-key = 'book'
+ and $sequence='first'">
+ <!-- no, book titlepages have no headers at all -->
+ </xsl:when>
+ <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 0">
+ <!-- no output -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$candidate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<!-- Bug-fix for Suse 10 PassiveTex version -->
+<!-- Precompute attribute values 'cos PassiveTex is too stupid: -->
+<xsl:attribute-set name="component.title.properties">
+ <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">
+ <xsl:value-of select="concat($body.font.master, 'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.minimum">
+ <xsl:value-of select="$body.font.master * 0.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.maximum">
+ <xsl:value-of select="$body.font.master * 1.2"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+</xsl:attribute-set>
+
+
+</xsl:stylesheet>
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-html.xsl b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-html.xsl
new file mode 100644
index 000000000..b6000d586
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bz-html.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<!DOCTYPE xsl:stylesheet [ <!ENTITY bz-css SYSTEM "./bzip.css"> ]>
+
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
+<xsl:import href="bz-common.xsl"/>
+
+<!-- use UTF-8 encoding -->
+<xsl:output method="html" encoding="UTF-8" indent="yes"/>
+
+<!-- we include the css as link and directly when generating one large file -->
+<xsl:template name="user.head.content">
+ <xsl:text disable-output-escaping="yes">
+<![CDATA[<]]>link rel="stylesheet" type="text/css" href="bzip.css" />
+ </xsl:text>
+ <style type="text/css" media="screen">
+ <xsl:text>&bz-css;</xsl:text>
+ </style>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff
new file mode 100644
index 000000000..bd96c27c3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff
@@ -0,0 +1,76 @@
+#!/bin/sh
+# sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
+
+# Bzcmp/diff wrapped for bzip2,
+# adapted from zdiff by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+
+# Bzcmp and bzdiff are used to invoke the cmp or the diff pro-
+# gram on compressed files. All options specified are passed
+# directly to cmp or diff. If only 1 file is specified, then
+# the files compared are file1 and an uncompressed file1.gz.
+# If two files are specified, then they are uncompressed (if
+# necessary) and fed to cmp or diff. The exit status from cmp
+# or diff is preserved.
+
+PATH="/usr/bin:/bin:$PATH"; export PATH
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+ *cmp) comp=${CMP-cmp} ;;
+ *) comp=${DIFF-diff} ;;
+esac
+
+OPTIONS=
+FILES=
+for ARG
+do
+ case "$ARG" in
+ -*) OPTIONS="$OPTIONS $ARG";;
+ *) if test -f "$ARG"; then
+ FILES="$FILES $ARG"
+ else
+ echo "${prog}: $ARG not found or not a regular file"
+ exit 1
+ fi ;;
+ esac
+done
+if test -z "$FILES"; then
+ echo "Usage: $prog [${comp}_options] file [file]"
+ exit 1
+fi
+set $FILES
+if test $# -eq 1; then
+ FILE=`echo "$1" | sed 's/.bz2$//'`
+ bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE"
+ STAT="$?"
+
+elif test $# -eq 2; then
+ case "$1" in
+ *.bz2)
+ case "$2" in
+ *.bz2)
+ F=`echo "$2" | sed 's|.*/||;s|.bz2$||'`
+ tmp=`mktemp "${TMPDIR:-/tmp}"/bzdiff.XXXXXXXXXX` || {
+ echo 'cannot create a temporary file' >&2
+ exit 1
+ }
+ bzip2 -cdfq "$2" > "$tmp"
+ bzip2 -cdfq "$1" | $comp $OPTIONS - "$tmp"
+ STAT="$?"
+ /bin/rm -f "$tmp";;
+
+ *) bzip2 -cdfq "$1" | $comp $OPTIONS - "$2"
+ STAT="$?";;
+ esac;;
+ *) case "$2" in
+ *.bz2)
+ bzip2 -cdfq "$2" | $comp $OPTIONS "$1" -
+ STAT="$?";;
+ *) $comp $OPTIONS "$1" "$2"
+ STAT="$?";;
+ esac;;
+ esac
+else
+ echo "Usage: $prog [${comp}_options] file [file]"
+ exit 1
+fi
+exit "$STAT"
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff.1 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff.1
new file mode 100644
index 000000000..adb7a8e72
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzdiff.1
@@ -0,0 +1,47 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+\"for Debian GNU/Linux
+.TH BZDIFF 1
+.SH NAME
+bzcmp, bzdiff \- compare bzip2 compressed files
+.SH SYNOPSIS
+.B bzcmp
+[ cmp_options ] file1
+[ file2 ]
+.br
+.B bzdiff
+[ diff_options ] file1
+[ file2 ]
+.SH DESCRIPTION
+.I Bzcmp
+and
+.I bzdiff
+are used to invoke the
+.I cmp
+or the
+.I diff
+program on bzip2 compressed files. All options specified are passed
+directly to
+.I cmp
+or
+.IR diff "."
+If only 1 file is specified, then the files compared are
+.I file1
+and an uncompressed
+.IR file1 ".bz2."
+If two files are specified, then they are uncompressed if necessary and fed to
+.I cmp
+or
+.IR diff "."
+The exit status from
+.I cmp
+or
+.I diff
+is preserved.
+.SH "SEE ALSO"
+cmp(1), diff(1), bzmore(1), bzless(1), bzgrep(1), bzip2(1)
+.SH BUGS
+Messages from the
+.I cmp
+or
+.I diff
+programs refer to temporary filenames instead of those specified.
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep
new file mode 100644
index 000000000..0314ca603
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+# Bzgrep wrapped for bzip2,
+# adapted from zgrep by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+## zgrep notice:
+## zgrep -- a wrapper around a grep program that decompresses files as needed
+## Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
+
+PATH="/usr/bin:$PATH"; export PATH
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+ *egrep) grep=${EGREP-egrep} ;;
+ *fgrep) grep=${FGREP-fgrep} ;;
+ *) grep=${GREP-grep} ;;
+esac
+pat=""
+while test $# -ne 0; do
+ case "$1" in
+ -e | -f) opt="$opt $1"; shift; pat="$1"
+ if test "$grep" = grep; then # grep is buggy with -e on SVR4
+ grep=egrep
+ fi;;
+ -A | -B) opt="$opt $1 $2"; shift;;
+ -*) opt="$opt $1";;
+ *) if test -z "$pat"; then
+ pat="$1"
+ else
+ break;
+ fi;;
+ esac
+ shift
+done
+
+if test -z "$pat"; then
+ echo "grep through bzip2 files"
+ echo "usage: $prog [grep_options] pattern [files]"
+ exit 1
+fi
+
+list=0
+silent=0
+op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
+case "$op" in
+ *l*) list=1
+esac
+case "$op" in
+ *h*) silent=1
+esac
+
+if test $# -eq 0; then
+ bzip2 -cdfq | $grep $opt "$pat"
+ exit $?
+fi
+
+res=0
+for i do
+ if test -f "$i"; then :; else if test -f "$i.bz2"; then i="$i.bz2"; fi; fi
+ if test $list -eq 1; then
+ bzip2 -cdfq "$i" | $grep $opt "$pat" 2>&1 > /dev/null && echo $i
+ r=$?
+ elif test $# -eq 1 -o $silent -eq 1; then
+ bzip2 -cdfq "$i" | $grep $opt "$pat"
+ r=$?
+ else
+ j=$(echo "$i" | sed 's/\\/&&/g;s/|/\\&/g;s/&/\\&/g')
+ j=`printf "%s" "$j" | tr '\n' ' '`
+ # A trick adapted from
+ # https://groups.google.com/forum/#!original/comp.unix.shell/x1345iu10eg/Nn1n-1r1uU0J
+ # that has the same effect as the following bash code:
+ # bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|"
+ # r=${PIPESTATUS[1]}
+ exec 3>&1
+ eval `
+ exec 4>&1 >&3 3>&-
+ {
+ bzip2 -cdfq "$i" 4>&-
+ } | {
+ $grep $opt "$pat" 4>&-; echo "r=$?;" >&4
+ } | sed "s|^|${j}:|"
+ `
+ fi
+ test "$r" -ne 0 && res="$r"
+done
+exit $res
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep.1 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep.1
new file mode 100644
index 000000000..930af8c7f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzgrep.1
@@ -0,0 +1,56 @@
+\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+\"for Debian GNU/Linux
+.TH BZGREP 1
+.SH NAME
+bzgrep, bzfgrep, bzegrep \- search possibly bzip2 compressed files for a regular expression
+.SH SYNOPSIS
+.B bzgrep
+[ grep_options ]
+.BI [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.br
+.B bzegrep
+[ egrep_options ]
+.BI [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.br
+.B bzfgrep
+[ fgrep_options ]
+.BI [\ -e\ ] " pattern"
+.IR filename ".\|.\|."
+.SH DESCRIPTION
+.IR Bzgrep
+is used to invoke the
+.I grep
+on bzip2-compressed files. All options specified are passed directly to
+.I grep.
+If no file is specified, then the standard input is decompressed
+if necessary and fed to grep.
+Otherwise the given files are uncompressed if necessary and fed to
+.I grep.
+.PP
+If
+.I bzgrep
+is invoked as
+.I bzegrep
+or
+.I bzfgrep
+then
+.I egrep
+or
+.I fgrep
+is used instead of
+.I grep.
+If the GREP environment variable is set,
+.I bzgrep
+uses it as the
+.I grep
+program to be invoked. For example:
+
+ for sh: GREP=fgrep bzgrep string files
+ for csh: (setenv GREP fgrep; bzgrep string files)
+.SH AUTHOR
+Charles Levert (charles@comm.polymtl.ca). Adapted to bzip2 by Philippe
+Troin <phil@fifi.org> for Debian GNU/Linux.
+.SH "SEE ALSO"
+grep(1), egrep(1), fgrep(1), bzdiff(1), bzmore(1), bzless(1), bzip2(1)
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip.css b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip.css
new file mode 100644
index 000000000..211311838
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip.css
@@ -0,0 +1,74 @@
+/* Colours:
+#74240f dark brown h1, h2, h3, h4
+#336699 medium blue links
+#339999 turquoise link hover colour
+#202020 almost black general text
+#761596 purple md5sum text
+#626262 dark gray pre border
+#eeeeee very light gray pre background
+#f2f2f9 very light blue nav table background
+#3366cc medium blue nav table border
+*/
+
+a, a:link, a:visited, a:active { color: #336699; }
+a:hover { color: #339999; }
+
+body { font: 80%/126% sans-serif; }
+h1, h2, h3, h4 { color: #74240f; }
+
+dt { color: #336699; font-weight: bold }
+dd {
+ margin-left: 1.5em;
+ padding-bottom: 0.8em;
+}
+
+/* -- ruler -- */
+div.hr_blue {
+ height: 3px;
+ background:#ffffff url("../images/hr_blue.png") repeat-x; }
+div.hr_blue hr { display:none; }
+
+/* release styles */
+#release p { margin-top: 0.4em; }
+#release .md5sum { color: #761596; }
+
+
+/* ------ styles for docs|manuals|howto ------ */
+/* -- lists -- */
+ul {
+ margin: 0px 4px 16px 16px;
+ padding: 0px;
+ list-style: url("../images/li-blue.png");
+}
+ul li {
+ margin-bottom: 10px;
+}
+ul ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin-left: 0px;
+}
+
+/* header / footer nav tables */
+table.nav {
+ border: solid 1px #3366cc;
+ background: #f2f2f9;
+ background-color: #f2f2f9;
+ margin-bottom: 0.5em;
+}
+/* don't have underlined links in chunked nav menus */
+table.nav a { text-decoration: none; }
+table.nav a:hover { text-decoration: underline; }
+table.nav td { font-size: 85%; }
+
+code, tt, pre { font-size: 120%; }
+code, tt { color: #761596; }
+
+div.literallayout, pre.programlisting, pre.screen {
+ color: #000000;
+ padding: 0.5em;
+ background: #eeeeee;
+ border: 1px solid #626262;
+ background-color: #eeeeee;
+ margin: 4px 0px 4px 0px;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1
new file mode 100644
index 000000000..0cbcdab00
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1
@@ -0,0 +1,454 @@
+.PU
+.TH bzip2 1
+.SH NAME
+bzip2, bunzip2 \- a block-sorting file compressor, v1.0.8
+.br
+bzcat \- decompresses files to stdout
+.br
+bzip2recover \- recovers data from damaged bzip2 files
+
+.SH SYNOPSIS
+.ll +8
+.B bzip2
+.RB [ " \-cdfkqstvzVL123456789 " ]
+[
+.I "filenames \&..."
+]
+.ll -8
+.br
+.B bunzip2
+.RB [ " \-fkvsVL " ]
+[
+.I "filenames \&..."
+]
+.br
+.B bzcat
+.RB [ " \-s " ]
+[
+.I "filenames \&..."
+]
+.br
+.B bzip2recover
+.I "filename"
+
+.SH DESCRIPTION
+.I bzip2
+compresses files using the Burrows-Wheeler block sorting
+text compression algorithm, and Huffman coding. Compression is
+generally considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of the PPM
+family of statistical compressors.
+
+The command-line options are deliberately very similar to
+those of
+.I GNU gzip,
+but they are not identical.
+
+.I bzip2
+expects a list of file names to accompany the
+command-line flags. Each file is replaced by a compressed version of
+itself, with the name "original_name.bz2".
+Each compressed file
+has the same modification date, permissions, and, when possible,
+ownership as the corresponding original, so that these properties can
+be correctly restored at decompression time. File name handling is
+naive in the sense that there is no mechanism for preserving original
+file names, permissions, ownerships or dates in filesystems which lack
+these concepts, or have serious file name length restrictions, such as
+MS-DOS.
+
+.I bzip2
+and
+.I bunzip2
+will by default not overwrite existing
+files. If you want this to happen, specify the \-f flag.
+
+If no file names are specified,
+.I bzip2
+compresses from standard
+input to standard output. In this case,
+.I bzip2
+will decline to
+write compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.
+
+.I bunzip2
+(or
+.I bzip2 \-d)
+decompresses all
+specified files. Files which were not created by
+.I bzip2
+will be detected and ignored, and a warning issued.
+.I bzip2
+attempts to guess the filename for the decompressed file
+from that of the compressed file as follows:
+
+ filename.bz2 becomes filename
+ filename.bz becomes filename
+ filename.tbz2 becomes filename.tar
+ filename.tbz becomes filename.tar
+ anyothername becomes anyothername.out
+
+If the file does not end in one of the recognised endings,
+.I .bz2,
+.I .bz,
+.I .tbz2
+or
+.I .tbz,
+.I bzip2
+complains that it cannot
+guess the name of the original file, and uses the original name
+with
+.I .out
+appended.
+
+As with compression, supplying no
+filenames causes decompression from
+standard input to standard output.
+
+.I bunzip2
+will correctly decompress a file which is the
+concatenation of two or more compressed files. The result is the
+concatenation of the corresponding uncompressed files. Integrity
+testing (\-t)
+of concatenated
+compressed files is also supported.
+
+You can also compress or decompress files to the standard output by
+giving the \-c flag. Multiple files may be compressed and
+decompressed like this. The resulting outputs are fed sequentially to
+stdout. Compression of multiple files
+in this manner generates a stream
+containing multiple compressed file representations. Such a stream
+can be decompressed correctly only by
+.I bzip2
+version 0.9.0 or
+later. Earlier versions of
+.I bzip2
+will stop after decompressing
+the first file in the stream.
+
+.I bzcat
+(or
+.I bzip2 -dc)
+decompresses all specified files to
+the standard output.
+
+.I bzip2
+will read arguments from the environment variables
+.I BZIP2
+and
+.I BZIP,
+in that order, and will process them
+before any arguments read from the command line. This gives a
+convenient way to supply default arguments.
+
+Compression is always performed, even if the compressed
+file is slightly
+larger than the original. Files of less than about one hundred bytes
+tend to get larger, since the compression mechanism has a constant
+overhead in the region of 50 bytes. Random data (including the output
+of most file compressors) is coded at about 8.05 bits per byte, giving
+an expansion of around 0.5%.
+
+As a self-check for your protection,
+.I
+bzip2
+uses 32-bit CRCs to
+make sure that the decompressed version of a file is identical to the
+original. This guards against corruption of the compressed data, and
+against undetected bugs in
+.I bzip2
+(hopefully very unlikely). The
+chances of data corruption going undetected is microscopic, about one
+chance in four billion for each file processed. Be aware, though, that
+the check occurs upon decompression, so it can only tell you that
+something is wrong. It can't help you
+recover the original uncompressed
+data. You can use
+.I bzip2recover
+to try to recover data from
+damaged files.
+
+Return values: 0 for a normal exit, 1 for environmental problems (file
+not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt
+compressed file, 3 for an internal consistency error (eg, bug) which
+caused
+.I bzip2
+to panic.
+
+.SH OPTIONS
+.TP
+.B \-c --stdout
+Compress or decompress to standard output.
+.TP
+.B \-d --decompress
+Force decompression.
+.I bzip2,
+.I bunzip2
+and
+.I bzcat
+are
+really the same program, and the decision about what actions to take is
+done on the basis of which name is used. This flag overrides that
+mechanism, and forces
+.I bzip2
+to decompress.
+.TP
+.B \-z --compress
+The complement to \-d: forces compression, regardless of the
+invocation name.
+.TP
+.B \-t --test
+Check integrity of the specified file(s), but don't decompress them.
+This really performs a trial decompression and throws away the result.
+.TP
+.B \-f --force
+Force overwrite of output files. Normally,
+.I bzip2
+will not overwrite
+existing output files. Also forces
+.I bzip2
+to break hard links
+to files, which it otherwise wouldn't do.
+
+bzip2 normally declines to decompress files which don't have the
+correct magic header bytes. If forced (-f), however, it will pass
+such files through unmodified. This is how GNU gzip behaves.
+.TP
+.B \-k --keep
+Keep (don't delete) input files during compression
+or decompression.
+.TP
+.B \-s --small
+Reduce memory usage, for compression, decompression and testing. Files
+are decompressed and tested using a modified algorithm which only
+requires 2.5 bytes per block byte. This means any file can be
+decompressed in 2300k of memory, albeit at about half the normal speed.
+
+During compression, \-s selects a block size of 200k, which limits
+memory use to around the same figure, at the expense of your compression
+ratio. In short, if your machine is low on memory (8 megabytes or
+less), use \-s for everything. See MEMORY MANAGEMENT below.
+.TP
+.B \-q --quiet
+Suppress non-essential warning messages. Messages pertaining to
+I/O errors and other critical events will not be suppressed.
+.TP
+.B \-v --verbose
+Verbose mode -- show the compression ratio for each file processed.
+Further \-v's increase the verbosity level, spewing out lots of
+information which is primarily of interest for diagnostic purposes.
+.TP
+.B \-L --license -V --version
+Display the software version, license terms and conditions.
+.TP
+.B \-1 (or \-\-fast) to \-9 (or \-\-best)
+Set the block size to 100 k, 200 k .. 900 k when compressing. Has no
+effect when decompressing. See MEMORY MANAGEMENT below.
+The \-\-fast and \-\-best aliases are primarily for GNU gzip
+compatibility. In particular, \-\-fast doesn't make things
+significantly faster.
+And \-\-best merely selects the default behaviour.
+.TP
+.B \--
+Treats all subsequent arguments as file names, even if they start
+with a dash. This is so you can handle files with names beginning
+with a dash, for example: bzip2 \-- \-myfilename.
+.TP
+.B \--repetitive-fast --repetitive-best
+These flags are redundant in versions 0.9.5 and above. They provided
+some coarse control over the behaviour of the sorting algorithm in
+earlier versions, which was sometimes useful. 0.9.5 and above have an
+improved algorithm which renders these flags irrelevant.
+
+.SH MEMORY MANAGEMENT
+.I bzip2
+compresses large files in blocks. The block size affects
+both the compression ratio achieved, and the amount of memory needed for
+compression and decompression. The flags \-1 through \-9
+specify the block size to be 100,000 bytes through 900,000 bytes (the
+default) respectively. At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+.I bunzip2
+then allocates itself just enough memory to decompress
+the file. Since block sizes are stored in compressed files, it follows
+that the flags \-1 to \-9 are irrelevant to and so ignored
+during decompression.
+
+Compression and decompression requirements,
+in bytes, can be estimated as:
+
+ Compression: 400k + ( 8 x block size )
+
+ Decompression: 100k + ( 4 x block size ), or
+ 100k + ( 2.5 x block size )
+
+Larger block sizes give rapidly diminishing marginal returns. Most of
+the compression comes from the first two or three hundred k of block
+size, a fact worth bearing in mind when using
+.I bzip2
+on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block size.
+
+For files compressed with the default 900k block size,
+.I bunzip2
+will require about 3700 kbytes to decompress. To support decompression
+of any file on a 4 megabyte machine,
+.I bunzip2
+has an option to
+decompress using approximately half this amount of memory, about 2300
+kbytes. Decompression speed is also halved, so you should use this
+option only where necessary. The relevant flag is -s.
+
+In general, try and use the largest block size memory constraints allow,
+since that maximises the compression achieved. Compression and
+decompression speed are virtually unaffected by block size.
+
+Another significant point applies to files which fit in a single block
+-- that means most files you'd encounter using a large block size. The
+amount of real memory touched is proportional to the size of the file,
+since the file is smaller than a block. For example, compressing a file
+20,000 bytes long with the flag -9 will cause the compressor to
+allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560
+kbytes of it. Similarly, the decompressor will allocate 3700k but only
+touch 100k + 20000 * 4 = 180 kbytes.
+
+Here is a table which summarises the maximum memory usage for different
+block sizes. Also recorded is the total compressed size for 14 files of
+the Calgary Text Compression Corpus totalling 3,141,622 bytes. This
+column gives some feel for how compression varies with block size.
+These figures tend to understate the advantage of larger block sizes for
+larger files, since the Corpus is dominated by smaller files.
+
+ Compress Decompress Decompress Corpus
+ Flag usage usage -s usage Size
+
+ -1 1200k 500k 350k 914704
+ -2 2000k 900k 600k 877703
+ -3 2800k 1300k 850k 860338
+ -4 3600k 1700k 1100k 846899
+ -5 4400k 2100k 1350k 845160
+ -6 5200k 2500k 1600k 838626
+ -7 6100k 2900k 1850k 834096
+ -8 6800k 3300k 2100k 828642
+ -9 7600k 3700k 2350k 828642
+
+.SH RECOVERING DATA FROM DAMAGED FILES
+.I bzip2
+compresses files in blocks, usually 900kbytes long. Each
+block is handled independently. If a media or transmission error causes
+a multi-block .bz2
+file to become damaged, it may be possible to
+recover data from the undamaged blocks in the file.
+
+The compressed representation of each block is delimited by a 48-bit
+pattern, which makes it possible to find the block boundaries with
+reasonable certainty. Each block also carries its own 32-bit CRC, so
+damaged blocks can be distinguished from undamaged ones.
+
+.I bzip2recover
+is a simple program whose purpose is to search for
+blocks in .bz2 files, and write each block out into its own .bz2
+file. You can then use
+.I bzip2
+\-t
+to test the
+integrity of the resulting files, and decompress those which are
+undamaged.
+
+.I bzip2recover
+takes a single argument, the name of the damaged file,
+and writes a number of files "rec00001file.bz2",
+"rec00002file.bz2", etc, containing the extracted blocks.
+The output filenames are designed so that the use of
+wildcards in subsequent processing -- for example,
+"bzip2 -dc rec*file.bz2 > recovered_data" -- processes the files in
+the correct order.
+
+.I bzip2recover
+should be of most use dealing with large .bz2
+files, as these will contain many blocks. It is clearly
+futile to use it on damaged single-block files, since a
+damaged block cannot be recovered. If you wish to minimise
+any potential data loss through media or transmission errors,
+you might consider compressing with a smaller
+block size.
+
+.SH PERFORMANCE NOTES
+The sorting phase of compression gathers together similar strings in the
+file. Because of this, files containing very long runs of repeated
+symbols, like "aabaabaabaab ..." (repeated several hundred times) may
+compress more slowly than normal. Versions 0.9.5 and above fare much
+better than previous versions in this respect. The ratio between
+worst-case and average-case compression time is in the region of 10:1.
+For previous versions, this figure was more like 100:1. You can use the
+\-vvvv option to monitor progress in great detail, if you want.
+
+Decompression speed is unaffected by these phenomena.
+
+.I bzip2
+usually allocates several megabytes of memory to operate
+in, and then charges all over it in a fairly random fashion. This means
+that performance, both for compressing and decompressing, is largely
+determined by the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss rate have
+been observed to give disproportionately large performance improvements.
+I imagine
+.I bzip2
+will perform best on machines with very large caches.
+
+.SH CAVEATS
+I/O error messages are not as helpful as they could be.
+.I bzip2
+tries hard to detect I/O errors and exit cleanly, but the details of
+what the problem is sometimes seem rather misleading.
+
+This manual page pertains to version 1.0.8 of
+.I bzip2.
+Compressed data created by this version is entirely forwards and
+backwards compatible with the previous public releases, versions
+0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following
+exception: 0.9.0 and above can correctly decompress multiple
+concatenated compressed files. 0.1pl2 cannot do this; it will stop
+after decompressing just the first file in the stream.
+
+.I bzip2recover
+versions prior to 1.0.2 used 32-bit integers to represent
+bit positions in compressed files, so they could not handle compressed
+files more than 512 megabytes long. Versions 1.0.2 and above use
+64-bit ints on some platforms which support them (GNU supported
+targets, and Windows). To establish whether or not bzip2recover was
+built with such a limitation, run it without arguments. In any event
+you can build yourself an unlimited version if you can recompile it
+with MaybeUInt64 set to be an unsigned 64-bit integer.
+
+
+
+.SH AUTHOR
+Julian Seward, jseward@acm.org.
+
+https://sourceware.org/bzip2/
+
+The ideas embodied in
+.I bzip2
+are due to (at least) the following
+people: Michael Burrows and David Wheeler (for the block sorting
+transformation), David Wheeler (again, for the Huffman coder), Peter
+Fenwick (for the structured coding model in the original
+.I bzip,
+and many refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+.I bzip).
+I am much
+indebted for their help, support and advice. See the manual in the
+source distribution for pointers to sources of documentation. Christian
+von Roques encouraged me to look for faster sorting algorithms, so as to
+speed up compression. Bela Lubkin encouraged me to improve the
+worst-case compression performance.
+Donna Robinson XMLised the documentation.
+The bz* scripts are derived from those of GNU gzip.
+Many people sent patches, helped
+with portability problems, lent machines, gave advice and were generally
+helpful.
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1.preformatted b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1.preformatted
new file mode 100644
index 000000000..787f1c614
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.1.preformatted
@@ -0,0 +1,399 @@
+bzip2(1) bzip2(1)
+
+
+
+NNAAMMEE
+ bzip2, bunzip2 − a blockâ€sorting file compressor, v1.0.8
+ bzcat − decompresses files to stdout
+ bzip2recover − recovers data from damaged bzip2 files
+
+
+SSYYNNOOPPSSIISS
+ bbzziipp22 [ −−ccddffkkqqssttvvzzVVLL112233445566778899 ] [ _f_i_l_e_n_a_m_e_s _._._. ]
+ bbuunnzziipp22 [ −−ffkkvvssVVLL ] [ _f_i_l_e_n_a_m_e_s _._._. ]
+ bbzzccaatt [ −−ss ] [ _f_i_l_e_n_a_m_e_s _._._. ]
+ bbzziipp22rreeccoovveerr _f_i_l_e_n_a_m_e
+
+
+DDEESSCCRRIIPPTTIIOONN
+ _b_z_i_p_2 compresses files using the Burrowsâ€Wheeler block
+ sorting text compression algorithm, and Huffman coding.
+ Compression is generally considerably better than that
+ achieved by more conventional LZ77/LZ78â€based compressors,
+ and approaches the performance of the PPM family of sta­
+ tistical compressors.
+
+ The commandâ€line options are deliberately very similar to
+ those of _G_N_U _g_z_i_p_, but they are not identical.
+
+ _b_z_i_p_2 expects a list of file names to accompany the com­
+ mandâ€line flags. Each file is replaced by a compressed
+ version of itself, with the name "original_name.bz2".
+ Each compressed file has the same modification date, per­
+ missions, and, when possible, ownership as the correspond­
+ ing original, so that these properties can be correctly
+ restored at decompression time. File name handling is
+ naive in the sense that there is no mechanism for preserv­
+ ing original file names, permissions, ownerships or dates
+ in filesystems which lack these concepts, or have serious
+ file name length restrictions, such as MSâ€DOS.
+
+ _b_z_i_p_2 and _b_u_n_z_i_p_2 will by default not overwrite existing
+ files. If you want this to happen, specify the −f flag.
+
+ If no file names are specified, _b_z_i_p_2 compresses from
+ standard input to standard output. In this case, _b_z_i_p_2
+ will decline to write compressed output to a terminal, as
+ this would be entirely incomprehensible and therefore
+ pointless.
+
+ _b_u_n_z_i_p_2 (or _b_z_i_p_2 _−_d_) decompresses all specified files.
+ Files which were not created by _b_z_i_p_2 will be detected and
+ ignored, and a warning issued. _b_z_i_p_2 attempts to guess
+ the filename for the decompressed file from that of the
+ compressed file as follows:
+
+ filename.bz2 becomes filename
+ filename.bz becomes filename
+ filename.tbz2 becomes filename.tar
+ filename.tbz becomes filename.tar
+ anyothername becomes anyothername.out
+
+ If the file does not end in one of the recognised endings,
+ _._b_z_2_, _._b_z_, _._t_b_z_2 or _._t_b_z_, _b_z_i_p_2 complains that it cannot
+ guess the name of the original file, and uses the original
+ name with _._o_u_t appended.
+
+ As with compression, supplying no filenames causes decom­
+ pression from standard input to standard output.
+
+ _b_u_n_z_i_p_2 will correctly decompress a file which is the con­
+ catenation of two or more compressed files. The result is
+ the concatenation of the corresponding uncompressed files.
+ Integrity testing (−t) of concatenated compressed files is
+ also supported.
+
+ You can also compress or decompress files to the standard
+ output by giving the −c flag. Multiple files may be com­
+ pressed and decompressed like this. The resulting outputs
+ are fed sequentially to stdout. Compression of multiple
+ files in this manner generates a stream containing multi­
+ ple compressed file representations. Such a stream can be
+ decompressed correctly only by _b_z_i_p_2 version 0.9.0 or
+ later. Earlier versions of _b_z_i_p_2 will stop after decom­
+ pressing the first file in the stream.
+
+ _b_z_c_a_t (or _b_z_i_p_2 _â€_d_c_) decompresses all specified files to
+ the standard output.
+
+ _b_z_i_p_2 will read arguments from the environment variables
+ _B_Z_I_P_2 and _B_Z_I_P_, in that order, and will process them
+ before any arguments read from the command line. This
+ gives a convenient way to supply default arguments.
+
+ Compression is always performed, even if the compressed
+ file is slightly larger than the original. Files of less
+ than about one hundred bytes tend to get larger, since the
+ compression mechanism has a constant overhead in the
+ region of 50 bytes. Random data (including the output of
+ most file compressors) is coded at about 8.05 bits per
+ byte, giving an expansion of around 0.5%.
+
+ As a selfâ€check for your protection, _b_z_i_p_2 uses 32â€bit
+ CRCs to make sure that the decompressed version of a file
+ is identical to the original. This guards against corrup­
+ tion of the compressed data, and against undetected bugs
+ in _b_z_i_p_2 (hopefully very unlikely). The chances of data
+ corruption going undetected is microscopic, about one
+ chance in four billion for each file processed. Be aware,
+ though, that the check occurs upon decompression, so it
+ can only tell you that something is wrong. It can’t help
+ you recover the original uncompressed data. You can use
+ _b_z_i_p_2_r_e_c_o_v_e_r to try to recover data from damaged files.
+
+ Return values: 0 for a normal exit, 1 for environmental
+ problems (file not found, invalid flags, I/O errors, &c),
+ 2 to indicate a corrupt compressed file, 3 for an internal
+ consistency error (eg, bug) which caused _b_z_i_p_2 to panic.
+
+
+OOPPTTIIOONNSS
+ −−cc â€â€â€â€ssttddoouutt
+ Compress or decompress to standard output.
+
+ −−dd â€â€â€â€ddeeccoommpprreessss
+ Force decompression. _b_z_i_p_2_, _b_u_n_z_i_p_2 and _b_z_c_a_t are
+ really the same program, and the decision about
+ what actions to take is done on the basis of which
+ name is used. This flag overrides that mechanism,
+ and forces _b_z_i_p_2 to decompress.
+
+ −−zz â€â€â€â€ccoommpprreessss
+ The complement to −d: forces compression,
+ regardless of the invocation name.
+
+ −−tt â€â€â€â€tteesstt
+ Check integrity of the specified file(s), but don’t
+ decompress them. This really performs a trial
+ decompression and throws away the result.
+
+ −−ff â€â€â€â€ffoorrccee
+ Force overwrite of output files. Normally, _b_z_i_p_2
+ will not overwrite existing output files. Also
+ forces _b_z_i_p_2 to break hard links to files, which it
+ otherwise wouldn’t do.
+
+ bzip2 normally declines to decompress files which
+ don’t have the correct magic header bytes. If
+ forced (â€f), however, it will pass such files
+ through unmodified. This is how GNU gzip behaves.
+
+ −−kk â€â€â€â€kkeeeepp
+ Keep (don’t delete) input files during compression
+ or decompression.
+
+ −−ss â€â€â€â€ssmmaallll
+ Reduce memory usage, for compression, decompression
+ and testing. Files are decompressed and tested
+ using a modified algorithm which only requires 2.5
+ bytes per block byte. This means any file can be
+ decompressed in 2300k of memory, albeit at about
+ half the normal speed.
+
+ During compression, −s selects a block size of
+ 200k, which limits memory use to around the same
+ figure, at the expense of your compression ratio.
+ In short, if your machine is low on memory (8
+ megabytes or less), use −s for everything. See
+ MEMORY MANAGEMENT below.
+
+ −−qq â€â€â€â€qquuiieett
+ Suppress nonâ€essential warning messages. Messages
+ pertaining to I/O errors and other critical events
+ will not be suppressed.
+
+ −−vv â€â€â€â€vveerrbboossee
+ Verbose mode â€â€ show the compression ratio for each
+ file processed. Further −v’s increase the ver­
+ bosity level, spewing out lots of information which
+ is primarily of interest for diagnostic purposes.
+
+ −−LL â€â€â€â€lliicceennssee â€â€VV â€â€â€â€vveerrssiioonn
+ Display the software version, license terms and
+ conditions.
+
+ −−11 ((oorr −−−−ffaasstt)) ttoo −−99 ((oorr −−−−bbeesstt))
+ Set the block size to 100 k, 200 k .. 900 k when
+ compressing. Has no effect when decompressing.
+ See MEMORY MANAGEMENT below. The −−fast and −−best
+ aliases are primarily for GNU gzip compatibility.
+ In particular, −−fast doesn’t make things signifi­
+ cantly faster. And −−best merely selects the
+ default behaviour.
+
+ −− Treats all subsequent arguments as file names, even
+ if they start with a dash. This is so you can han­
+ dle files with names beginning with a dash, for
+ example: bzip2 −†−myfilename.
+
+ −−â€â€rreeppeettiittiivveeâ€â€ffaasstt â€â€â€â€rreeppeettiittiivveeâ€â€bbeesstt
+ These flags are redundant in versions 0.9.5 and
+ above. They provided some coarse control over the
+ behaviour of the sorting algorithm in earlier ver­
+ sions, which was sometimes useful. 0.9.5 and above
+ have an improved algorithm which renders these
+ flags irrelevant.
+
+
+MMEEMMOORRYY MMAANNAAGGEEMMEENNTT
+ _b_z_i_p_2 compresses large files in blocks. The block size
+ affects both the compression ratio achieved, and the
+ amount of memory needed for compression and decompression.
+ The flags −1 through −9 specify the block size to be
+ 100,000 bytes through 900,000 bytes (the default) respec­
+ tively. At decompression time, the block size used for
+ compression is read from the header of the compressed
+ file, and _b_u_n_z_i_p_2 then allocates itself just enough memory
+ to decompress the file. Since block sizes are stored in
+ compressed files, it follows that the flags −1 to −9 are
+ irrelevant to and so ignored during decompression.
+
+ Compression and decompression requirements, in bytes, can
+ be estimated as:
+
+ Compression: 400k + ( 8 x block size )
+
+ Decompression: 100k + ( 4 x block size ), or
+ 100k + ( 2.5 x block size )
+
+ Larger block sizes give rapidly diminishing marginal
+ returns. Most of the compression comes from the first two
+ or three hundred k of block size, a fact worth bearing in
+ mind when using _b_z_i_p_2 on small machines. It is also
+ important to appreciate that the decompression memory
+ requirement is set at compression time by the choice of
+ block size.
+
+ For files compressed with the default 900k block size,
+ _b_u_n_z_i_p_2 will require about 3700 kbytes to decompress. To
+ support decompression of any file on a 4 megabyte machine,
+ _b_u_n_z_i_p_2 has an option to decompress using approximately
+ half this amount of memory, about 2300 kbytes. Decompres­
+ sion speed is also halved, so you should use this option
+ only where necessary. The relevant flag is â€s.
+
+ In general, try and use the largest block size memory con­
+ straints allow, since that maximises the compression
+ achieved. Compression and decompression speed are virtu­
+ ally unaffected by block size.
+
+ Another significant point applies to files which fit in a
+ single block â€â€ that means most files you’d encounter
+ using a large block size. The amount of real memory
+ touched is proportional to the size of the file, since the
+ file is smaller than a block. For example, compressing a
+ file 20,000 bytes long with the flag â€9 will cause the
+ compressor to allocate around 7600k of memory, but only
+ touch 400k + 20000 * 8 = 560 kbytes of it. Similarly, the
+ decompressor will allocate 3700k but only touch 100k +
+ 20000 * 4 = 180 kbytes.
+
+ Here is a table which summarises the maximum memory usage
+ for different block sizes. Also recorded is the total
+ compressed size for 14 files of the Calgary Text Compres­
+ sion Corpus totalling 3,141,622 bytes. This column gives
+ some feel for how compression varies with block size.
+ These figures tend to understate the advantage of larger
+ block sizes for larger files, since the Corpus is domi­
+ nated by smaller files.
+
+ Compress Decompress Decompress Corpus
+ Flag usage usage â€s usage Size
+
+ â€1 1200k 500k 350k 914704
+ â€2 2000k 900k 600k 877703
+ â€3 2800k 1300k 850k 860338
+ â€4 3600k 1700k 1100k 846899
+ â€5 4400k 2100k 1350k 845160
+ â€6 5200k 2500k 1600k 838626
+ â€7 6100k 2900k 1850k 834096
+ â€8 6800k 3300k 2100k 828642
+ â€9 7600k 3700k 2350k 828642
+
+
+RREECCOOVVEERRIINNGG DDAATTAA FFRROOMM DDAAMMAAGGEEDD FFIILLEESS
+ _b_z_i_p_2 compresses files in blocks, usually 900kbytes long.
+ Each block is handled independently. If a media or trans­
+ mission error causes a multiâ€block .bz2 file to become
+ damaged, it may be possible to recover data from the
+ undamaged blocks in the file.
+
+ The compressed representation of each block is delimited
+ by a 48â€bit pattern, which makes it possible to find the
+ block boundaries with reasonable certainty. Each block
+ also carries its own 32â€bit CRC, so damaged blocks can be
+ distinguished from undamaged ones.
+
+ _b_z_i_p_2_r_e_c_o_v_e_r is a simple program whose purpose is to
+ search for blocks in .bz2 files, and write each block out
+ into its own .bz2 file. You can then use _b_z_i_p_2 −t to test
+ the integrity of the resulting files, and decompress those
+ which are undamaged.
+
+ _b_z_i_p_2_r_e_c_o_v_e_r takes a single argument, the name of the dam­
+ aged file, and writes a number of files
+ "rec00001file.bz2", "rec00002file.bz2", etc, containing
+ the extracted blocks. The output filenames are
+ designed so that the use of wildcards in subsequent pro­
+ cessing â€â€ for example, "bzip2 â€dc rec*file.bz2 > recov­
+ ered_data" â€â€ processes the files in the correct order.
+
+ _b_z_i_p_2_r_e_c_o_v_e_r should be of most use dealing with large .bz2
+ files, as these will contain many blocks. It is clearly
+ futile to use it on damaged singleâ€block files, since a
+ damaged block cannot be recovered. If you wish to min­
+ imise any potential data loss through media or transmis­
+ sion errors, you might consider compressing with a smaller
+ block size.
+
+
+PPEERRFFOORRMMAANNCCEE NNOOTTEESS
+ The sorting phase of compression gathers together similar
+ strings in the file. Because of this, files containing
+ very long runs of repeated symbols, like "aabaabaabaab
+ ..." (repeated several hundred times) may compress more
+ slowly than normal. Versions 0.9.5 and above fare much
+ better than previous versions in this respect. The ratio
+ between worstâ€case and averageâ€case compression time is in
+ the region of 10:1. For previous versions, this figure
+ was more like 100:1. You can use the −vvvv option to mon­
+ itor progress in great detail, if you want.
+
+ Decompression speed is unaffected by these phenomena.
+
+ _b_z_i_p_2 usually allocates several megabytes of memory to
+ operate in, and then charges all over it in a fairly ran­
+ dom fashion. This means that performance, both for com­
+ pressing and decompressing, is largely determined by the
+ speed at which your machine can service cache misses.
+ Because of this, small changes to the code to reduce the
+ miss rate have been observed to give disproportionately
+ large performance improvements. I imagine _b_z_i_p_2 will per­
+ form best on machines with very large caches.
+
+
+CCAAVVEEAATTSS
+ I/O error messages are not as helpful as they could be.
+ _b_z_i_p_2 tries hard to detect I/O errors and exit cleanly,
+ but the details of what the problem is sometimes seem
+ rather misleading.
+
+ This manual page pertains to version 1.0.8 of _b_z_i_p_2_. Com­
+ pressed data created by this version is entirely forwards
+ and backwards compatible with the previous public
+ releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+ 1.0.2 and above, but with the following exception: 0.9.0
+ and above can correctly decompress multiple concatenated
+ compressed files. 0.1pl2 cannot do this; it will stop
+ after decompressing just the first file in the stream.
+
+ _b_z_i_p_2_r_e_c_o_v_e_r versions prior to 1.0.2 used 32â€bit integers
+ to represent bit positions in compressed files, so they
+ could not handle compressed files more than 512 megabytes
+ long. Versions 1.0.2 and above use 64â€bit ints on some
+ platforms which support them (GNU supported targets, and
+ Windows). To establish whether or not bzip2recover was
+ built with such a limitation, run it without arguments.
+ In any event you can build yourself an unlimited version
+ if you can recompile it with MaybeUInt64 set to be an
+ unsigned 64â€bit integer.
+
+
+
+
+AAUUTTHHOORR
+ Julian Seward, jseward@acm.org.
+
+ https://sourceware.org/bzip2/
+
+ The ideas embodied in _b_z_i_p_2 are due to (at least) the fol­
+ lowing people: Michael Burrows and David Wheeler (for the
+ block sorting transformation), David Wheeler (again, for
+ the Huffman coder), Peter Fenwick (for the structured cod­
+ ing model in the original _b_z_i_p_, and many refinements), and
+ Alistair Moffat, Radford Neal and Ian Witten (for the
+ arithmetic coder in the original _b_z_i_p_)_. I am much
+ indebted for their help, support and advice. See the man­
+ ual in the source distribution for pointers to sources of
+ documentation. Christian von Roques encouraged me to look
+ for faster sorting algorithms, so as to speed up compres­
+ sion. Bela Lubkin encouraged me to improve the worstâ€case
+ compression performance. Donna Robinson XMLised the docu­
+ mentation. The bz* scripts are derived from those of GNU
+ gzip. Many people sent patches, helped with portability
+ problems, lent machines, gave advice and were generally
+ helpful.
+
+
+
+ bzip2(1)
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.c
new file mode 100644
index 000000000..d95d28061
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.c
@@ -0,0 +1,2036 @@
+
+/*-----------------------------------------------------------*/
+/*--- A block-sorting, lossless compressor bzip2.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+/* Place a 1 beside your platform, and 0 elsewhere.
+ Generic 32-bit Unix.
+ Also works on 64-bit Unix boxes.
+ This is the default.
+*/
+#define BZ_UNIX 1
+
+/*--
+ Win32, as seen by Jacob Navia's excellent
+ port of (Chris Fraser & David Hanson)'s excellent
+ lcc compiler. Or with MS Visual C.
+ This is selected automatically if compiled by a compiler which
+ defines _WIN32, not including the Cygwin GCC.
+--*/
+#define BZ_LCCWIN32 0
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#undef BZ_LCCWIN32
+#define BZ_LCCWIN32 1
+#undef BZ_UNIX
+#define BZ_UNIX 0
+#endif
+
+
+/*---------------------------------------------*/
+/*--
+ Some stuff for all platforms.
+--*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <signal.h>
+#include <math.h>
+#include <errno.h>
+#include <ctype.h>
+#include "bzlib.h"
+
+#define ERROR_IF_EOF(i) { if ((i) == EOF) ioError(); }
+#define ERROR_IF_NOT_ZERO(i) { if ((i) != 0) ioError(); }
+#define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); }
+
+
+/*---------------------------------------------*/
+/*--
+ Platform-specific stuff.
+--*/
+
+#if BZ_UNIX
+# include <fcntl.h>
+# include <sys/types.h>
+# include <utime.h>
+# include <unistd.h>
+# include <sys/stat.h>
+# include <sys/times.h>
+
+# define PATH_SEP '/'
+# define MY_LSTAT lstat
+# define MY_STAT stat
+# define MY_S_ISREG S_ISREG
+# define MY_S_ISDIR S_ISDIR
+
+# define APPEND_FILESPEC(root, name) \
+ root=snocString((root), (name))
+
+# define APPEND_FLAG(root, name) \
+ root=snocString((root), (name))
+
+# define SET_BINARY_MODE(fd) /**/
+
+# ifdef __GNUC__
+# define NORETURN __attribute__ ((noreturn))
+# else
+# define NORETURN /**/
+# endif
+
+# ifdef __DJGPP__
+# include <io.h>
+# include <fcntl.h>
+# undef MY_LSTAT
+# undef MY_STAT
+# define MY_LSTAT stat
+# define MY_STAT stat
+# undef SET_BINARY_MODE
+# define SET_BINARY_MODE(fd) \
+ do { \
+ int retVal = setmode ( fileno ( fd ), \
+ O_BINARY ); \
+ ERROR_IF_MINUS_ONE ( retVal ); \
+ } while ( 0 )
+# endif
+
+# ifdef __CYGWIN__
+# include <io.h>
+# include <fcntl.h>
+# undef SET_BINARY_MODE
+# define SET_BINARY_MODE(fd) \
+ do { \
+ int retVal = setmode ( fileno ( fd ), \
+ O_BINARY ); \
+ ERROR_IF_MINUS_ONE ( retVal ); \
+ } while ( 0 )
+# endif
+#endif /* BZ_UNIX */
+
+
+
+#if BZ_LCCWIN32
+# include <io.h>
+# include <fcntl.h>
+# include <sys/stat.h>
+
+# define NORETURN /**/
+# define PATH_SEP '\\'
+# define MY_LSTAT _stati64
+# define MY_STAT _stati64
+# define MY_S_ISREG(x) ((x) & _S_IFREG)
+# define MY_S_ISDIR(x) ((x) & _S_IFDIR)
+
+# define APPEND_FLAG(root, name) \
+ root=snocString((root), (name))
+
+# define APPEND_FILESPEC(root, name) \
+ root = snocString ((root), (name))
+
+# define SET_BINARY_MODE(fd) \
+ do { \
+ int retVal = setmode ( fileno ( fd ), \
+ O_BINARY ); \
+ ERROR_IF_MINUS_ONE ( retVal ); \
+ } while ( 0 )
+
+#endif /* BZ_LCCWIN32 */
+
+
+/*---------------------------------------------*/
+/*--
+ Some more stuff for all platforms :-)
+--*/
+
+typedef char Char;
+typedef unsigned char Bool;
+typedef unsigned char UChar;
+typedef int Int32;
+typedef unsigned int UInt32;
+typedef short Int16;
+typedef unsigned short UInt16;
+
+#define True ((Bool)1)
+#define False ((Bool)0)
+
+/*--
+ IntNative is your platform's `native' int size.
+ Only here to avoid probs with 64-bit platforms.
+--*/
+typedef int IntNative;
+
+
+/*---------------------------------------------------*/
+/*--- Misc (file handling) data decls ---*/
+/*---------------------------------------------------*/
+
+Int32 verbosity;
+Bool keepInputFiles, smallMode, deleteOutputOnInterrupt;
+Bool forceOverwrite, testFailsExist, unzFailsExist, noisy;
+Int32 numFileNames, numFilesProcessed, blockSize100k;
+Int32 exitValue;
+
+/*-- source modes; F==file, I==stdin, O==stdout --*/
+#define SM_I2O 1
+#define SM_F2O 2
+#define SM_F2F 3
+
+/*-- operation modes --*/
+#define OM_Z 1
+#define OM_UNZ 2
+#define OM_TEST 3
+
+Int32 opMode;
+Int32 srcMode;
+
+#define FILE_NAME_LEN 1034
+
+Int32 longestFileName;
+Char inName [FILE_NAME_LEN];
+Char outName[FILE_NAME_LEN];
+Char tmpName[FILE_NAME_LEN];
+Char *progName;
+Char progNameReally[FILE_NAME_LEN];
+FILE *outputHandleJustInCase;
+Int32 workFactor;
+
+static void panic ( const Char* ) NORETURN;
+static void ioError ( void ) NORETURN;
+static void outOfMemory ( void ) NORETURN;
+static void configError ( void ) NORETURN;
+static void crcError ( void ) NORETURN;
+static void cleanUpAndFail ( Int32 ) NORETURN;
+static void compressedStreamEOF ( void ) NORETURN;
+
+static void copyFileName ( Char*, Char* );
+static void* myMalloc ( Int32 );
+static void applySavedFileAttrToOutputFile ( IntNative fd );
+
+
+
+/*---------------------------------------------------*/
+/*--- An implementation of 64-bit ints. Sigh. ---*/
+/*--- Roll on widespread deployment of ANSI C9X ! ---*/
+/*---------------------------------------------------*/
+
+typedef
+ struct { UChar b[8]; }
+ UInt64;
+
+
+static
+void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 )
+{
+ n->b[7] = (UChar)((hi32 >> 24) & 0xFF);
+ n->b[6] = (UChar)((hi32 >> 16) & 0xFF);
+ n->b[5] = (UChar)((hi32 >> 8) & 0xFF);
+ n->b[4] = (UChar) (hi32 & 0xFF);
+ n->b[3] = (UChar)((lo32 >> 24) & 0xFF);
+ n->b[2] = (UChar)((lo32 >> 16) & 0xFF);
+ n->b[1] = (UChar)((lo32 >> 8) & 0xFF);
+ n->b[0] = (UChar) (lo32 & 0xFF);
+}
+
+
+static
+double uInt64_to_double ( UInt64* n )
+{
+ Int32 i;
+ double base = 1.0;
+ double sum = 0.0;
+ for (i = 0; i < 8; i++) {
+ sum += base * (double)(n->b[i]);
+ base *= 256.0;
+ }
+ return sum;
+}
+
+
+static
+Bool uInt64_isZero ( UInt64* n )
+{
+ Int32 i;
+ for (i = 0; i < 8; i++)
+ if (n->b[i] != 0) return 0;
+ return 1;
+}
+
+
+/* Divide *n by 10, and return the remainder. */
+static
+Int32 uInt64_qrm10 ( UInt64* n )
+{
+ UInt32 rem, tmp;
+ Int32 i;
+ rem = 0;
+ for (i = 7; i >= 0; i--) {
+ tmp = rem * 256 + n->b[i];
+ n->b[i] = tmp / 10;
+ rem = tmp % 10;
+ }
+ return rem;
+}
+
+
+/* ... and the Whole Entire Point of all this UInt64 stuff is
+ so that we can supply the following function.
+*/
+static
+void uInt64_toAscii ( char* outbuf, UInt64* n )
+{
+ Int32 i, q;
+ UChar buf[32];
+ Int32 nBuf = 0;
+ UInt64 n_copy = *n;
+ do {
+ q = uInt64_qrm10 ( &n_copy );
+ buf[nBuf] = q + '0';
+ nBuf++;
+ } while (!uInt64_isZero(&n_copy));
+ outbuf[nBuf] = 0;
+ for (i = 0; i < nBuf; i++)
+ outbuf[i] = buf[nBuf-i-1];
+}
+
+
+/*---------------------------------------------------*/
+/*--- Processing of complete files and streams ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+Bool myfeof ( FILE* f )
+{
+ Int32 c = fgetc ( f );
+ if (c == EOF) return True;
+ ungetc ( c, f );
+ return False;
+}
+
+
+/*---------------------------------------------*/
+static
+void compressStream ( FILE *stream, FILE *zStream )
+{
+ BZFILE* bzf = NULL;
+ UChar ibuf[5000];
+ Int32 nIbuf;
+ UInt32 nbytes_in_lo32, nbytes_in_hi32;
+ UInt32 nbytes_out_lo32, nbytes_out_hi32;
+ Int32 bzerr, bzerr_dummy, ret;
+
+ SET_BINARY_MODE(stream);
+ SET_BINARY_MODE(zStream);
+
+ if (ferror(stream)) goto errhandler_io;
+ if (ferror(zStream)) goto errhandler_io;
+
+ bzf = BZ2_bzWriteOpen ( &bzerr, zStream,
+ blockSize100k, verbosity, workFactor );
+ if (bzerr != BZ_OK) goto errhandler;
+
+ if (verbosity >= 2) fprintf ( stderr, "\n" );
+
+ while (True) {
+
+ if (myfeof(stream)) break;
+ nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream );
+ if (ferror(stream)) goto errhandler_io;
+ if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf );
+ if (bzerr != BZ_OK) goto errhandler;
+
+ }
+
+ BZ2_bzWriteClose64 ( &bzerr, bzf, 0,
+ &nbytes_in_lo32, &nbytes_in_hi32,
+ &nbytes_out_lo32, &nbytes_out_hi32 );
+ if (bzerr != BZ_OK) goto errhandler;
+
+ if (ferror(zStream)) goto errhandler_io;
+ ret = fflush ( zStream );
+ if (ret == EOF) goto errhandler_io;
+ if (zStream != stdout) {
+ Int32 fd = fileno ( zStream );
+ if (fd < 0) goto errhandler_io;
+ applySavedFileAttrToOutputFile ( fd );
+ ret = fclose ( zStream );
+ outputHandleJustInCase = NULL;
+ if (ret == EOF) goto errhandler_io;
+ }
+ outputHandleJustInCase = NULL;
+ if (ferror(stream)) goto errhandler_io;
+ ret = fclose ( stream );
+ if (ret == EOF) goto errhandler_io;
+
+ if (verbosity >= 1) {
+ if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) {
+ fprintf ( stderr, " no data compressed.\n");
+ } else {
+ Char buf_nin[32], buf_nout[32];
+ UInt64 nbytes_in, nbytes_out;
+ double nbytes_in_d, nbytes_out_d;
+ uInt64_from_UInt32s ( &nbytes_in,
+ nbytes_in_lo32, nbytes_in_hi32 );
+ uInt64_from_UInt32s ( &nbytes_out,
+ nbytes_out_lo32, nbytes_out_hi32 );
+ nbytes_in_d = uInt64_to_double ( &nbytes_in );
+ nbytes_out_d = uInt64_to_double ( &nbytes_out );
+ uInt64_toAscii ( buf_nin, &nbytes_in );
+ uInt64_toAscii ( buf_nout, &nbytes_out );
+ fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, "
+ "%5.2f%% saved, %s in, %s out.\n",
+ nbytes_in_d / nbytes_out_d,
+ (8.0 * nbytes_out_d) / nbytes_in_d,
+ 100.0 * (1.0 - nbytes_out_d / nbytes_in_d),
+ buf_nin,
+ buf_nout
+ );
+ }
+ }
+
+ return;
+
+ errhandler:
+ BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1,
+ &nbytes_in_lo32, &nbytes_in_hi32,
+ &nbytes_out_lo32, &nbytes_out_hi32 );
+ switch (bzerr) {
+ case BZ_CONFIG_ERROR:
+ configError(); break;
+ case BZ_MEM_ERROR:
+ outOfMemory (); break;
+ case BZ_IO_ERROR:
+ errhandler_io:
+ ioError(); break;
+ default:
+ panic ( "compress:unexpected error" );
+ }
+
+ panic ( "compress:end" );
+ /*notreached*/
+}
+
+
+
+/*---------------------------------------------*/
+static
+Bool uncompressStream ( FILE *zStream, FILE *stream )
+{
+ BZFILE* bzf = NULL;
+ Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i;
+ UChar obuf[5000];
+ UChar unused[BZ_MAX_UNUSED];
+ Int32 nUnused;
+ void* unusedTmpV;
+ UChar* unusedTmp;
+
+ nUnused = 0;
+ streamNo = 0;
+
+ SET_BINARY_MODE(stream);
+ SET_BINARY_MODE(zStream);
+
+ if (ferror(stream)) goto errhandler_io;
+ if (ferror(zStream)) goto errhandler_io;
+
+ while (True) {
+
+ bzf = BZ2_bzReadOpen (
+ &bzerr, zStream, verbosity,
+ (int)smallMode, unused, nUnused
+ );
+ if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+ streamNo++;
+
+ while (bzerr == BZ_OK) {
+ nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+ if (bzerr == BZ_DATA_ERROR_MAGIC) goto trycat;
+ if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0)
+ fwrite ( obuf, sizeof(UChar), nread, stream );
+ if (ferror(stream)) goto errhandler_io;
+ }
+ if (bzerr != BZ_STREAM_END) goto errhandler;
+
+ BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+ if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+ unusedTmp = (UChar*)unusedTmpV;
+ for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+ BZ2_bzReadClose ( &bzerr, bzf );
+ if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" );
+
+ if (nUnused == 0 && myfeof(zStream)) break;
+ }
+
+ closeok:
+ if (ferror(zStream)) goto errhandler_io;
+ if (stream != stdout) {
+ Int32 fd = fileno ( stream );
+ if (fd < 0) goto errhandler_io;
+ applySavedFileAttrToOutputFile ( fd );
+ }
+ ret = fclose ( zStream );
+ if (ret == EOF) goto errhandler_io;
+
+ if (ferror(stream)) goto errhandler_io;
+ ret = fflush ( stream );
+ if (ret != 0) goto errhandler_io;
+ if (stream != stdout) {
+ ret = fclose ( stream );
+ outputHandleJustInCase = NULL;
+ if (ret == EOF) goto errhandler_io;
+ }
+ outputHandleJustInCase = NULL;
+ if (verbosity >= 2) fprintf ( stderr, "\n " );
+ return True;
+
+ trycat:
+ if (forceOverwrite) {
+ rewind(zStream);
+ while (True) {
+ if (myfeof(zStream)) break;
+ nread = fread ( obuf, sizeof(UChar), 5000, zStream );
+ if (ferror(zStream)) goto errhandler_io;
+ if (nread > 0) fwrite ( obuf, sizeof(UChar), nread, stream );
+ if (ferror(stream)) goto errhandler_io;
+ }
+ goto closeok;
+ }
+
+ errhandler:
+ BZ2_bzReadClose ( &bzerr_dummy, bzf );
+ switch (bzerr) {
+ case BZ_CONFIG_ERROR:
+ configError(); break;
+ case BZ_IO_ERROR:
+ errhandler_io:
+ ioError(); break;
+ case BZ_DATA_ERROR:
+ crcError();
+ case BZ_MEM_ERROR:
+ outOfMemory();
+ case BZ_UNEXPECTED_EOF:
+ compressedStreamEOF();
+ case BZ_DATA_ERROR_MAGIC:
+ if (zStream != stdin) fclose(zStream);
+ if (stream != stdout) fclose(stream);
+ if (streamNo == 1) {
+ return False;
+ } else {
+ if (noisy)
+ fprintf ( stderr,
+ "\n%s: %s: trailing garbage after EOF ignored\n",
+ progName, inName );
+ return True;
+ }
+ default:
+ panic ( "decompress:unexpected error" );
+ }
+
+ panic ( "decompress:end" );
+ return True; /*notreached*/
+}
+
+
+/*---------------------------------------------*/
+static
+Bool testStream ( FILE *zStream )
+{
+ BZFILE* bzf = NULL;
+ Int32 bzerr, bzerr_dummy, ret, streamNo, i;
+ UChar obuf[5000];
+ UChar unused[BZ_MAX_UNUSED];
+ Int32 nUnused;
+ void* unusedTmpV;
+ UChar* unusedTmp;
+
+ nUnused = 0;
+ streamNo = 0;
+
+ SET_BINARY_MODE(zStream);
+ if (ferror(zStream)) goto errhandler_io;
+
+ while (True) {
+
+ bzf = BZ2_bzReadOpen (
+ &bzerr, zStream, verbosity,
+ (int)smallMode, unused, nUnused
+ );
+ if (bzf == NULL || bzerr != BZ_OK) goto errhandler;
+ streamNo++;
+
+ while (bzerr == BZ_OK) {
+ BZ2_bzRead ( &bzerr, bzf, obuf, 5000 );
+ if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler;
+ }
+ if (bzerr != BZ_STREAM_END) goto errhandler;
+
+ BZ2_bzReadGetUnused ( &bzerr, bzf, &unusedTmpV, &nUnused );
+ if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+
+ unusedTmp = (UChar*)unusedTmpV;
+ for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i];
+
+ BZ2_bzReadClose ( &bzerr, bzf );
+ if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" );
+ if (nUnused == 0 && myfeof(zStream)) break;
+
+ }
+
+ if (ferror(zStream)) goto errhandler_io;
+ ret = fclose ( zStream );
+ if (ret == EOF) goto errhandler_io;
+
+ if (verbosity >= 2) fprintf ( stderr, "\n " );
+ return True;
+
+ errhandler:
+ BZ2_bzReadClose ( &bzerr_dummy, bzf );
+ if (verbosity == 0)
+ fprintf ( stderr, "%s: %s: ", progName, inName );
+ switch (bzerr) {
+ case BZ_CONFIG_ERROR:
+ configError(); break;
+ case BZ_IO_ERROR:
+ errhandler_io:
+ ioError(); break;
+ case BZ_DATA_ERROR:
+ fprintf ( stderr,
+ "data integrity (CRC) error in data\n" );
+ return False;
+ case BZ_MEM_ERROR:
+ outOfMemory();
+ case BZ_UNEXPECTED_EOF:
+ fprintf ( stderr,
+ "file ends unexpectedly\n" );
+ return False;
+ case BZ_DATA_ERROR_MAGIC:
+ if (zStream != stdin) fclose(zStream);
+ if (streamNo == 1) {
+ fprintf ( stderr,
+ "bad magic number (file not created by bzip2)\n" );
+ return False;
+ } else {
+ if (noisy)
+ fprintf ( stderr,
+ "trailing garbage after EOF ignored\n" );
+ return True;
+ }
+ default:
+ panic ( "test:unexpected error" );
+ }
+
+ panic ( "test:end" );
+ return True; /*notreached*/
+}
+
+
+/*---------------------------------------------------*/
+/*--- Error [non-] handling grunge ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static
+void setExit ( Int32 v )
+{
+ if (v > exitValue) exitValue = v;
+}
+
+
+/*---------------------------------------------*/
+static
+void cadvise ( void )
+{
+ if (noisy)
+ fprintf (
+ stderr,
+ "\nIt is possible that the compressed file(s) have become corrupted.\n"
+ "You can use the -tvv option to test integrity of such files.\n\n"
+ "You can use the `bzip2recover' program to attempt to recover\n"
+ "data from undamaged sections of corrupted files.\n\n"
+ );
+}
+
+
+/*---------------------------------------------*/
+static
+void showFileNames ( void )
+{
+ if (noisy)
+ fprintf (
+ stderr,
+ "\tInput file = %s, output file = %s\n",
+ inName, outName
+ );
+}
+
+
+/*---------------------------------------------*/
+static
+void cleanUpAndFail ( Int32 ec )
+{
+ IntNative retVal;
+ struct MY_STAT statBuf;
+
+ if ( srcMode == SM_F2F
+ && opMode != OM_TEST
+ && deleteOutputOnInterrupt ) {
+
+ /* Check whether input file still exists. Delete output file
+ only if input exists to avoid loss of data. Joerg Prante, 5
+ January 2002. (JRS 06-Jan-2002: other changes in 1.0.2 mean
+ this is less likely to happen. But to be ultra-paranoid, we
+ do the check anyway.) */
+ retVal = MY_STAT ( inName, &statBuf );
+ if (retVal == 0) {
+ if (noisy)
+ fprintf ( stderr,
+ "%s: Deleting output file %s, if it exists.\n",
+ progName, outName );
+ if (outputHandleJustInCase != NULL)
+ fclose ( outputHandleJustInCase );
+ retVal = remove ( outName );
+ if (retVal != 0)
+ fprintf ( stderr,
+ "%s: WARNING: deletion of output file "
+ "(apparently) failed.\n",
+ progName );
+ } else {
+ fprintf ( stderr,
+ "%s: WARNING: deletion of output file suppressed\n",
+ progName );
+ fprintf ( stderr,
+ "%s: since input file no longer exists. Output file\n",
+ progName );
+ fprintf ( stderr,
+ "%s: `%s' may be incomplete.\n",
+ progName, outName );
+ fprintf ( stderr,
+ "%s: I suggest doing an integrity test (bzip2 -tv)"
+ " of it.\n",
+ progName );
+ }
+ }
+
+ if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) {
+ fprintf ( stderr,
+ "%s: WARNING: some files have not been processed:\n"
+ "%s: %d specified on command line, %d not processed yet.\n\n",
+ progName, progName,
+ numFileNames, numFileNames - numFilesProcessed );
+ }
+ setExit(ec);
+ exit(exitValue);
+}
+
+
+/*---------------------------------------------*/
+static
+void panic ( const Char* s )
+{
+ fprintf ( stderr,
+ "\n%s: PANIC -- internal consistency error:\n"
+ "\t%s\n"
+ "\tThis is a BUG. Please report it to:\n"
+ "\tbzip2-devel@sourceware.org\n",
+ progName, s );
+ showFileNames();
+ cleanUpAndFail( 3 );
+}
+
+
+/*---------------------------------------------*/
+static
+void crcError ( void )
+{
+ fprintf ( stderr,
+ "\n%s: Data integrity error when decompressing.\n",
+ progName );
+ showFileNames();
+ cadvise();
+ cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static
+void compressedStreamEOF ( void )
+{
+ if (noisy) {
+ fprintf ( stderr,
+ "\n%s: Compressed file ends unexpectedly;\n\t"
+ "perhaps it is corrupted? *Possible* reason follows.\n",
+ progName );
+ perror ( progName );
+ showFileNames();
+ cadvise();
+ }
+ cleanUpAndFail( 2 );
+}
+
+
+/*---------------------------------------------*/
+static
+void ioError ( void )
+{
+ fprintf ( stderr,
+ "\n%s: I/O or other error, bailing out. "
+ "Possible reason follows.\n",
+ progName );
+ perror ( progName );
+ showFileNames();
+ cleanUpAndFail( 1 );
+}
+
+
+/*---------------------------------------------*/
+static
+void mySignalCatcher ( IntNative n )
+{
+ fprintf ( stderr,
+ "\n%s: Control-C or similar caught, quitting.\n",
+ progName );
+ cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static
+void mySIGSEGVorSIGBUScatcher ( IntNative n )
+{
+ if (opMode == OM_Z)
+ fprintf (
+ stderr,
+ "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n"
+ "\n"
+ " Possible causes are (most likely first):\n"
+ " (1) This computer has unreliable memory or cache hardware\n"
+ " (a surprisingly common problem; try a different machine.)\n"
+ " (2) A bug in the compiler used to create this executable\n"
+ " (unlikely, if you didn't compile bzip2 yourself.)\n"
+ " (3) A real bug in bzip2 -- I hope this should never be the case.\n"
+ " The user's manual, Section 4.3, has more info on (1) and (2).\n"
+ " \n"
+ " If you suspect this is a bug in bzip2, or are unsure about (1)\n"
+ " or (2), feel free to report it to: bzip2-devel@sourceware.org.\n"
+ " Section 4.3 of the user's manual describes the info a useful\n"
+ " bug report should have. If the manual is available on your\n"
+ " system, please try and read it before mailing me. If you don't\n"
+ " have the manual or can't be bothered to read it, mail me anyway.\n"
+ "\n",
+ progName );
+ else
+ fprintf (
+ stderr,
+ "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n"
+ "\n"
+ " Possible causes are (most likely first):\n"
+ " (1) The compressed data is corrupted, and bzip2's usual checks\n"
+ " failed to detect this. Try bzip2 -tvv my_file.bz2.\n"
+ " (2) This computer has unreliable memory or cache hardware\n"
+ " (a surprisingly common problem; try a different machine.)\n"
+ " (3) A bug in the compiler used to create this executable\n"
+ " (unlikely, if you didn't compile bzip2 yourself.)\n"
+ " (4) A real bug in bzip2 -- I hope this should never be the case.\n"
+ " The user's manual, Section 4.3, has more info on (2) and (3).\n"
+ " \n"
+ " If you suspect this is a bug in bzip2, or are unsure about (2)\n"
+ " or (3), feel free to report it to: bzip2-devel@sourceware.org.\n"
+ " Section 4.3 of the user's manual describes the info a useful\n"
+ " bug report should have. If the manual is available on your\n"
+ " system, please try and read it before mailing me. If you don't\n"
+ " have the manual or can't be bothered to read it, mail me anyway.\n"
+ "\n",
+ progName );
+
+ showFileNames();
+ if (opMode == OM_Z)
+ cleanUpAndFail( 3 ); else
+ { cadvise(); cleanUpAndFail( 2 ); }
+}
+
+
+/*---------------------------------------------*/
+static
+void outOfMemory ( void )
+{
+ fprintf ( stderr,
+ "\n%s: couldn't allocate enough memory\n",
+ progName );
+ showFileNames();
+ cleanUpAndFail(1);
+}
+
+
+/*---------------------------------------------*/
+static
+void configError ( void )
+{
+ fprintf ( stderr,
+ "bzip2: I'm not configured correctly for this platform!\n"
+ "\tI require Int32, Int16 and Char to have sizes\n"
+ "\tof 4, 2 and 1 bytes to run properly, and they don't.\n"
+ "\tProbably you can fix this by defining them correctly,\n"
+ "\tand recompiling. Bye!\n" );
+ setExit(3);
+ exit(exitValue);
+}
+
+
+/*---------------------------------------------------*/
+/*--- The main driver machinery ---*/
+/*---------------------------------------------------*/
+
+/* All rather crufty. The main problem is that input files
+ are stat()d multiple times before use. This should be
+ cleaned up.
+*/
+
+/*---------------------------------------------*/
+static
+void pad ( Char *s )
+{
+ Int32 i;
+ if ( (Int32)strlen(s) >= longestFileName ) return;
+ for (i = 1; i <= longestFileName - (Int32)strlen(s); i++)
+ fprintf ( stderr, " " );
+}
+
+
+/*---------------------------------------------*/
+static
+void copyFileName ( Char* to, Char* from )
+{
+ if ( strlen(from) > FILE_NAME_LEN-10 ) {
+ fprintf (
+ stderr,
+ "bzip2: file name\n`%s'\n"
+ "is suspiciously (more than %d chars) long.\n"
+ "Try using a reasonable file name instead. Sorry! :-)\n",
+ from, FILE_NAME_LEN-10
+ );
+ setExit(1);
+ exit(exitValue);
+ }
+
+ strncpy(to,from,FILE_NAME_LEN-10);
+ to[FILE_NAME_LEN-10]='\0';
+}
+
+
+/*---------------------------------------------*/
+static
+Bool fileExists ( Char* name )
+{
+ FILE *tmp = fopen ( name, "rb" );
+ Bool exists = (tmp != NULL);
+ if (tmp != NULL) fclose ( tmp );
+ return exists;
+}
+
+
+/*---------------------------------------------*/
+/* Open an output file safely with O_EXCL and good permissions.
+ This avoids a race condition in versions < 1.0.2, in which
+ the file was first opened and then had its interim permissions
+ set safely. We instead use open() to create the file with
+ the interim permissions required. (--- --- rw-).
+
+ For non-Unix platforms, if we are not worrying about
+ security issues, simple this simply behaves like fopen.
+*/
+static
+FILE* fopen_output_safely ( Char* name, const char* mode )
+{
+# if BZ_UNIX
+ FILE* fp;
+ IntNative fh;
+ fh = open(name, O_WRONLY|O_CREAT|O_EXCL, S_IWUSR|S_IRUSR);
+ if (fh == -1) return NULL;
+ fp = fdopen(fh, mode);
+ if (fp == NULL) close(fh);
+ return fp;
+# else
+ return fopen(name, mode);
+# endif
+}
+
+
+/*---------------------------------------------*/
+/*--
+ if in doubt, return True
+--*/
+static
+Bool notAStandardFile ( Char* name )
+{
+ IntNative i;
+ struct MY_STAT statBuf;
+
+ i = MY_LSTAT ( name, &statBuf );
+ if (i != 0) return True;
+ if (MY_S_ISREG(statBuf.st_mode)) return False;
+ return True;
+}
+
+
+/*---------------------------------------------*/
+/*--
+ rac 11/21/98 see if file has hard links to it
+--*/
+static
+Int32 countHardLinks ( Char* name )
+{
+ IntNative i;
+ struct MY_STAT statBuf;
+
+ i = MY_LSTAT ( name, &statBuf );
+ if (i != 0) return 0;
+ return (statBuf.st_nlink - 1);
+}
+
+
+/*---------------------------------------------*/
+/* Copy modification date, access date, permissions and owner from the
+ source to destination file. We have to copy this meta-info off
+ into fileMetaInfo before starting to compress / decompress it,
+ because doing it afterwards means we get the wrong access time.
+
+ To complicate matters, in compress() and decompress() below, the
+ sequence of tests preceding the call to saveInputFileMetaInfo()
+ involves calling fileExists(), which in turn establishes its result
+ by attempting to fopen() the file, and if successful, immediately
+ fclose()ing it again. So we have to assume that the fopen() call
+ does not cause the access time field to be updated.
+
+ Reading of the man page for stat() (man 2 stat) on RedHat 7.2 seems
+ to imply that merely doing open() will not affect the access time.
+ Therefore we merely need to hope that the C library only does
+ open() as a result of fopen(), and not any kind of read()-ahead
+ cleverness.
+
+ It sounds pretty fragile to me. Whether this carries across
+ robustly to arbitrary Unix-like platforms (or even works robustly
+ on this one, RedHat 7.2) is unknown to me. Nevertheless ...
+*/
+#if BZ_UNIX
+static
+struct MY_STAT fileMetaInfo;
+#endif
+
+static
+void saveInputFileMetaInfo ( Char *srcName )
+{
+# if BZ_UNIX
+ IntNative retVal;
+ /* Note use of stat here, not lstat. */
+ retVal = MY_STAT( srcName, &fileMetaInfo );
+ ERROR_IF_NOT_ZERO ( retVal );
+# endif
+}
+
+
+static
+void applySavedTimeInfoToOutputFile ( Char *dstName )
+{
+# if BZ_UNIX
+ IntNative retVal;
+ struct utimbuf uTimBuf;
+
+ uTimBuf.actime = fileMetaInfo.st_atime;
+ uTimBuf.modtime = fileMetaInfo.st_mtime;
+
+ retVal = utime ( dstName, &uTimBuf );
+ ERROR_IF_NOT_ZERO ( retVal );
+# endif
+}
+
+static
+void applySavedFileAttrToOutputFile ( IntNative fd )
+{
+# if BZ_UNIX
+ IntNative retVal;
+
+ retVal = fchmod ( fd, fileMetaInfo.st_mode );
+ ERROR_IF_NOT_ZERO ( retVal );
+
+ (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+ /* chown() will in many cases return with EPERM, which can
+ be safely ignored.
+ */
+# endif
+}
+
+
+/*---------------------------------------------*/
+static
+Bool containsDubiousChars ( Char* name )
+{
+# if BZ_UNIX
+ /* On unix, files can contain any characters and the file expansion
+ * is performed by the shell.
+ */
+ return False;
+# else /* ! BZ_UNIX */
+ /* On non-unix (Win* platforms), wildcard characters are not allowed in
+ * filenames.
+ */
+ for (; *name != '\0'; name++)
+ if (*name == '?' || *name == '*') return True;
+ return False;
+# endif /* BZ_UNIX */
+}
+
+
+/*---------------------------------------------*/
+#define BZ_N_SUFFIX_PAIRS 4
+
+const Char* zSuffix[BZ_N_SUFFIX_PAIRS]
+ = { ".bz2", ".bz", ".tbz2", ".tbz" };
+const Char* unzSuffix[BZ_N_SUFFIX_PAIRS]
+ = { "", "", ".tar", ".tar" };
+
+static
+Bool hasSuffix ( Char* s, const Char* suffix )
+{
+ Int32 ns = strlen(s);
+ Int32 nx = strlen(suffix);
+ if (ns < nx) return False;
+ if (strcmp(s + ns - nx, suffix) == 0) return True;
+ return False;
+}
+
+static
+Bool mapSuffix ( Char* name,
+ const Char* oldSuffix,
+ const Char* newSuffix )
+{
+ if (!hasSuffix(name,oldSuffix)) return False;
+ name[strlen(name)-strlen(oldSuffix)] = 0;
+ strcat ( name, newSuffix );
+ return True;
+}
+
+
+/*---------------------------------------------*/
+static
+void compress ( Char *name )
+{
+ FILE *inStr;
+ FILE *outStr;
+ Int32 n, i;
+ struct MY_STAT statBuf;
+
+ deleteOutputOnInterrupt = False;
+
+ if (name == NULL && srcMode != SM_I2O)
+ panic ( "compress: bad modes\n" );
+
+ switch (srcMode) {
+ case SM_I2O:
+ copyFileName ( inName, (Char*)"(stdin)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
+ break;
+ case SM_F2F:
+ copyFileName ( inName, name );
+ copyFileName ( outName, name );
+ strcat ( outName, ".bz2" );
+ break;
+ case SM_F2O:
+ copyFileName ( inName, name );
+ copyFileName ( outName, (Char*)"(stdout)" );
+ break;
+ }
+
+ if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+ if (noisy)
+ fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+ progName, inName );
+ setExit(1);
+ return;
+ }
+ if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+ fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+ progName, inName, strerror(errno) );
+ setExit(1);
+ return;
+ }
+ for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) {
+ if (hasSuffix(inName, zSuffix[i])) {
+ if (noisy)
+ fprintf ( stderr,
+ "%s: Input file %s already has %s suffix.\n",
+ progName, inName, zSuffix[i] );
+ setExit(1);
+ return;
+ }
+ }
+ if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+ MY_STAT(inName, &statBuf);
+ if ( MY_S_ISDIR(statBuf.st_mode) ) {
+ fprintf( stderr,
+ "%s: Input file %s is a directory.\n",
+ progName,inName);
+ setExit(1);
+ return;
+ }
+ }
+ if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+ if (noisy)
+ fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+ progName, inName );
+ setExit(1);
+ return;
+ }
+ if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+ if (forceOverwrite) {
+ remove(outName);
+ } else {
+ fprintf ( stderr, "%s: Output file %s already exists.\n",
+ progName, outName );
+ setExit(1);
+ return;
+ }
+ }
+ if ( srcMode == SM_F2F && !forceOverwrite &&
+ (n=countHardLinks ( inName )) > 0) {
+ fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+ progName, inName, n, n > 1 ? "s" : "" );
+ setExit(1);
+ return;
+ }
+
+ if ( srcMode == SM_F2F ) {
+ /* Save the file's meta-info before we open it. Doing it later
+ means we mess up the access times. */
+ saveInputFileMetaInfo ( inName );
+ }
+
+ switch ( srcMode ) {
+
+ case SM_I2O:
+ inStr = stdin;
+ outStr = stdout;
+ if ( isatty ( fileno ( stdout ) ) ) {
+ fprintf ( stderr,
+ "%s: I won't write compressed data to a terminal.\n",
+ progName );
+ fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+ progName, progName );
+ setExit(1);
+ return;
+ };
+ break;
+
+ case SM_F2O:
+ inStr = fopen ( inName, "rb" );
+ outStr = stdout;
+ if ( isatty ( fileno ( stdout ) ) ) {
+ fprintf ( stderr,
+ "%s: I won't write compressed data to a terminal.\n",
+ progName );
+ fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+ progName, progName );
+ if ( inStr != NULL ) fclose ( inStr );
+ setExit(1);
+ return;
+ };
+ if ( inStr == NULL ) {
+ fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+ progName, inName, strerror(errno) );
+ setExit(1);
+ return;
+ };
+ break;
+
+ case SM_F2F:
+ inStr = fopen ( inName, "rb" );
+ outStr = fopen_output_safely ( outName, "wb" );
+ if ( outStr == NULL) {
+ fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+ progName, outName, strerror(errno) );
+ if ( inStr != NULL ) fclose ( inStr );
+ setExit(1);
+ return;
+ }
+ if ( inStr == NULL ) {
+ fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+ progName, inName, strerror(errno) );
+ if ( outStr != NULL ) fclose ( outStr );
+ setExit(1);
+ return;
+ };
+ break;
+
+ default:
+ panic ( "compress: bad srcMode" );
+ break;
+ }
+
+ if (verbosity >= 1) {
+ fprintf ( stderr, " %s: ", inName );
+ pad ( inName );
+ fflush ( stderr );
+ }
+
+ /*--- Now the input and output handles are sane. Do the Biz. ---*/
+ outputHandleJustInCase = outStr;
+ deleteOutputOnInterrupt = True;
+ compressStream ( inStr, outStr );
+ outputHandleJustInCase = NULL;
+
+ /*--- If there was an I/O error, we won't get here. ---*/
+ if ( srcMode == SM_F2F ) {
+ applySavedTimeInfoToOutputFile ( outName );
+ deleteOutputOnInterrupt = False;
+ if ( !keepInputFiles ) {
+ IntNative retVal = remove ( inName );
+ ERROR_IF_NOT_ZERO ( retVal );
+ }
+ }
+
+ deleteOutputOnInterrupt = False;
+}
+
+
+/*---------------------------------------------*/
+static
+void uncompress ( Char *name )
+{
+ FILE *inStr;
+ FILE *outStr;
+ Int32 n, i;
+ Bool magicNumberOK;
+ Bool cantGuess;
+ struct MY_STAT statBuf;
+
+ deleteOutputOnInterrupt = False;
+
+ if (name == NULL && srcMode != SM_I2O)
+ panic ( "uncompress: bad modes\n" );
+
+ cantGuess = False;
+ switch (srcMode) {
+ case SM_I2O:
+ copyFileName ( inName, (Char*)"(stdin)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
+ break;
+ case SM_F2F:
+ copyFileName ( inName, name );
+ copyFileName ( outName, name );
+ for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++)
+ if (mapSuffix(outName,zSuffix[i],unzSuffix[i]))
+ goto zzz;
+ cantGuess = True;
+ strcat ( outName, ".out" );
+ break;
+ case SM_F2O:
+ copyFileName ( inName, name );
+ copyFileName ( outName, (Char*)"(stdout)" );
+ break;
+ }
+
+ zzz:
+ if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+ if (noisy)
+ fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+ progName, inName );
+ setExit(1);
+ return;
+ }
+ if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+ fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+ progName, inName, strerror(errno) );
+ setExit(1);
+ return;
+ }
+ if ( srcMode == SM_F2F || srcMode == SM_F2O ) {
+ MY_STAT(inName, &statBuf);
+ if ( MY_S_ISDIR(statBuf.st_mode) ) {
+ fprintf( stderr,
+ "%s: Input file %s is a directory.\n",
+ progName,inName);
+ setExit(1);
+ return;
+ }
+ }
+ if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) {
+ if (noisy)
+ fprintf ( stderr, "%s: Input file %s is not a normal file.\n",
+ progName, inName );
+ setExit(1);
+ return;
+ }
+ if ( /* srcMode == SM_F2F implied && */ cantGuess ) {
+ if (noisy)
+ fprintf ( stderr,
+ "%s: Can't guess original name for %s -- using %s\n",
+ progName, inName, outName );
+ /* just a warning, no return */
+ }
+ if ( srcMode == SM_F2F && fileExists ( outName ) ) {
+ if (forceOverwrite) {
+ remove(outName);
+ } else {
+ fprintf ( stderr, "%s: Output file %s already exists.\n",
+ progName, outName );
+ setExit(1);
+ return;
+ }
+ }
+ if ( srcMode == SM_F2F && !forceOverwrite &&
+ (n=countHardLinks ( inName ) ) > 0) {
+ fprintf ( stderr, "%s: Input file %s has %d other link%s.\n",
+ progName, inName, n, n > 1 ? "s" : "" );
+ setExit(1);
+ return;
+ }
+
+ if ( srcMode == SM_F2F ) {
+ /* Save the file's meta-info before we open it. Doing it later
+ means we mess up the access times. */
+ saveInputFileMetaInfo ( inName );
+ }
+
+ switch ( srcMode ) {
+
+ case SM_I2O:
+ inStr = stdin;
+ outStr = stdout;
+ if ( isatty ( fileno ( stdin ) ) ) {
+ fprintf ( stderr,
+ "%s: I won't read compressed data from a terminal.\n",
+ progName );
+ fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+ progName, progName );
+ setExit(1);
+ return;
+ };
+ break;
+
+ case SM_F2O:
+ inStr = fopen ( inName, "rb" );
+ outStr = stdout;
+ if ( inStr == NULL ) {
+ fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+ progName, inName, strerror(errno) );
+ if ( inStr != NULL ) fclose ( inStr );
+ setExit(1);
+ return;
+ };
+ break;
+
+ case SM_F2F:
+ inStr = fopen ( inName, "rb" );
+ outStr = fopen_output_safely ( outName, "wb" );
+ if ( outStr == NULL) {
+ fprintf ( stderr, "%s: Can't create output file %s: %s.\n",
+ progName, outName, strerror(errno) );
+ if ( inStr != NULL ) fclose ( inStr );
+ setExit(1);
+ return;
+ }
+ if ( inStr == NULL ) {
+ fprintf ( stderr, "%s: Can't open input file %s: %s.\n",
+ progName, inName, strerror(errno) );
+ if ( outStr != NULL ) fclose ( outStr );
+ setExit(1);
+ return;
+ };
+ break;
+
+ default:
+ panic ( "uncompress: bad srcMode" );
+ break;
+ }
+
+ if (verbosity >= 1) {
+ fprintf ( stderr, " %s: ", inName );
+ pad ( inName );
+ fflush ( stderr );
+ }
+
+ /*--- Now the input and output handles are sane. Do the Biz. ---*/
+ outputHandleJustInCase = outStr;
+ deleteOutputOnInterrupt = True;
+ magicNumberOK = uncompressStream ( inStr, outStr );
+ outputHandleJustInCase = NULL;
+
+ /*--- If there was an I/O error, we won't get here. ---*/
+ if ( magicNumberOK ) {
+ if ( srcMode == SM_F2F ) {
+ applySavedTimeInfoToOutputFile ( outName );
+ deleteOutputOnInterrupt = False;
+ if ( !keepInputFiles ) {
+ IntNative retVal = remove ( inName );
+ ERROR_IF_NOT_ZERO ( retVal );
+ }
+ }
+ } else {
+ unzFailsExist = True;
+ deleteOutputOnInterrupt = False;
+ if ( srcMode == SM_F2F ) {
+ IntNative retVal = remove ( outName );
+ ERROR_IF_NOT_ZERO ( retVal );
+ }
+ }
+ deleteOutputOnInterrupt = False;
+
+ if ( magicNumberOK ) {
+ if (verbosity >= 1)
+ fprintf ( stderr, "done\n" );
+ } else {
+ setExit(2);
+ if (verbosity >= 1)
+ fprintf ( stderr, "not a bzip2 file.\n" ); else
+ fprintf ( stderr,
+ "%s: %s is not a bzip2 file.\n",
+ progName, inName );
+ }
+
+}
+
+
+/*---------------------------------------------*/
+static
+void testf ( Char *name )
+{
+ FILE *inStr;
+ Bool allOK;
+ struct MY_STAT statBuf;
+
+ deleteOutputOnInterrupt = False;
+
+ if (name == NULL && srcMode != SM_I2O)
+ panic ( "testf: bad modes\n" );
+
+ copyFileName ( outName, (Char*)"(none)" );
+ switch (srcMode) {
+ case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break;
+ case SM_F2F: copyFileName ( inName, name ); break;
+ case SM_F2O: copyFileName ( inName, name ); break;
+ }
+
+ if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) {
+ if (noisy)
+ fprintf ( stderr, "%s: There are no files matching `%s'.\n",
+ progName, inName );
+ setExit(1);
+ return;
+ }
+ if ( srcMode != SM_I2O && !fileExists ( inName ) ) {
+ fprintf ( stderr, "%s: Can't open input %s: %s.\n",
+ progName, inName, strerror(errno) );
+ setExit(1);
+ return;
+ }
+ if ( srcMode != SM_I2O ) {
+ MY_STAT(inName, &statBuf);
+ if ( MY_S_ISDIR(statBuf.st_mode) ) {
+ fprintf( stderr,
+ "%s: Input file %s is a directory.\n",
+ progName,inName);
+ setExit(1);
+ return;
+ }
+ }
+
+ switch ( srcMode ) {
+
+ case SM_I2O:
+ if ( isatty ( fileno ( stdin ) ) ) {
+ fprintf ( stderr,
+ "%s: I won't read compressed data from a terminal.\n",
+ progName );
+ fprintf ( stderr, "%s: For help, type: `%s --help'.\n",
+ progName, progName );
+ setExit(1);
+ return;
+ };
+ inStr = stdin;
+ break;
+
+ case SM_F2O: case SM_F2F:
+ inStr = fopen ( inName, "rb" );
+ if ( inStr == NULL ) {
+ fprintf ( stderr, "%s: Can't open input file %s:%s.\n",
+ progName, inName, strerror(errno) );
+ setExit(1);
+ return;
+ };
+ break;
+
+ default:
+ panic ( "testf: bad srcMode" );
+ break;
+ }
+
+ if (verbosity >= 1) {
+ fprintf ( stderr, " %s: ", inName );
+ pad ( inName );
+ fflush ( stderr );
+ }
+
+ /*--- Now the input handle is sane. Do the Biz. ---*/
+ outputHandleJustInCase = NULL;
+ allOK = testStream ( inStr );
+
+ if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" );
+ if (!allOK) testFailsExist = True;
+}
+
+
+/*---------------------------------------------*/
+static
+void license ( void )
+{
+ fprintf ( stderr,
+
+ "bzip2, a block-sorting file compressor. "
+ "Version %s.\n"
+ " \n"
+ " Copyright (C) 1996-2019 by Julian Seward.\n"
+ " \n"
+ " This program is free software; you can redistribute it and/or modify\n"
+ " it under the terms set out in the LICENSE file, which is included\n"
+ " in the bzip2 source distribution.\n"
+ " \n"
+ " This program is distributed in the hope that it will be useful,\n"
+ " but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+ " LICENSE file for more details.\n"
+ " \n",
+ BZ2_bzlibVersion()
+ );
+}
+
+
+/*---------------------------------------------*/
+static
+void usage ( Char *fullProgName )
+{
+ fprintf (
+ stderr,
+ "bzip2, a block-sorting file compressor. "
+ "Version %s.\n"
+ "\n usage: %s [flags and input files in any order]\n"
+ "\n"
+ " -h --help print this message\n"
+ " -d --decompress force decompression\n"
+ " -z --compress force compression\n"
+ " -k --keep keep (don't delete) input files\n"
+ " -f --force overwrite existing output files\n"
+ " -t --test test compressed file integrity\n"
+ " -c --stdout output to standard out\n"
+ " -q --quiet suppress noncritical error messages\n"
+ " -v --verbose be verbose (a 2nd -v gives more)\n"
+ " -L --license display software version & license\n"
+ " -V --version display software version & license\n"
+ " -s --small use less memory (at most 2500k)\n"
+ " -1 .. -9 set block size to 100k .. 900k\n"
+ " --fast alias for -1\n"
+ " --best alias for -9\n"
+ "\n"
+ " If invoked as `bzip2', default action is to compress.\n"
+ " as `bunzip2', default action is to decompress.\n"
+ " as `bzcat', default action is to decompress to stdout.\n"
+ "\n"
+ " If no file names are given, bzip2 compresses or decompresses\n"
+ " from standard input to standard output. You can combine\n"
+ " short flags, so `-v -4' means the same as -v4 or -4v, &c.\n"
+# if BZ_UNIX
+ "\n"
+# endif
+ ,
+
+ BZ2_bzlibVersion(),
+ fullProgName
+ );
+}
+
+
+/*---------------------------------------------*/
+static
+void redundant ( Char* flag )
+{
+ fprintf (
+ stderr,
+ "%s: %s is redundant in versions 0.9.5 and above\n",
+ progName, flag );
+}
+
+
+/*---------------------------------------------*/
+/*--
+ All the garbage from here to main() is purely to
+ implement a linked list of command-line arguments,
+ into which main() copies argv[1 .. argc-1].
+
+ The purpose of this exercise is to facilitate
+ the expansion of wildcard characters * and ? in
+ filenames for OSs which don't know how to do it
+ themselves, like MSDOS, Windows 95 and NT.
+
+ The actual Dirty Work is done by the platform-
+ specific macro APPEND_FILESPEC.
+--*/
+
+typedef
+ struct zzzz {
+ Char *name;
+ struct zzzz *link;
+ }
+ Cell;
+
+
+/*---------------------------------------------*/
+static
+void *myMalloc ( Int32 n )
+{
+ void* p;
+
+ p = malloc ( (size_t)n );
+ if (p == NULL) outOfMemory ();
+ return p;
+}
+
+
+/*---------------------------------------------*/
+static
+Cell *mkCell ( void )
+{
+ Cell *c;
+
+ c = (Cell*) myMalloc ( sizeof ( Cell ) );
+ c->name = NULL;
+ c->link = NULL;
+ return c;
+}
+
+
+/*---------------------------------------------*/
+static
+Cell *snocString ( Cell *root, Char *name )
+{
+ if (root == NULL) {
+ Cell *tmp = mkCell();
+ tmp->name = (Char*) myMalloc ( 5 + strlen(name) );
+ strcpy ( tmp->name, name );
+ return tmp;
+ } else {
+ Cell *tmp = root;
+ while (tmp->link != NULL) tmp = tmp->link;
+ tmp->link = snocString ( tmp->link, name );
+ return root;
+ }
+}
+
+
+/*---------------------------------------------*/
+static
+void addFlagsFromEnvVar ( Cell** argList, Char* varName )
+{
+ Int32 i, j, k;
+ Char *envbase, *p;
+
+ envbase = getenv(varName);
+ if (envbase != NULL) {
+ p = envbase;
+ i = 0;
+ while (True) {
+ if (p[i] == 0) break;
+ p += i;
+ i = 0;
+ while (isspace((Int32)(p[0]))) p++;
+ while (p[i] != 0 && !isspace((Int32)(p[i]))) i++;
+ if (i > 0) {
+ k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10;
+ for (j = 0; j < k; j++) tmpName[j] = p[j];
+ tmpName[k] = 0;
+ APPEND_FLAG(*argList, tmpName);
+ }
+ }
+ }
+}
+
+
+/*---------------------------------------------*/
+#define ISFLAG(s) (strcmp(aa->name, (s))==0)
+
+IntNative main ( IntNative argc, Char *argv[] )
+{
+ Int32 i, j;
+ Char *tmp;
+ Cell *argList;
+ Cell *aa;
+ Bool decode;
+
+ /*-- Be really really really paranoid :-) --*/
+ if (sizeof(Int32) != 4 || sizeof(UInt32) != 4 ||
+ sizeof(Int16) != 2 || sizeof(UInt16) != 2 ||
+ sizeof(Char) != 1 || sizeof(UChar) != 1)
+ configError();
+
+ /*-- Initialise --*/
+ outputHandleJustInCase = NULL;
+ smallMode = False;
+ keepInputFiles = False;
+ forceOverwrite = False;
+ noisy = True;
+ verbosity = 0;
+ blockSize100k = 9;
+ testFailsExist = False;
+ unzFailsExist = False;
+ numFileNames = 0;
+ numFilesProcessed = 0;
+ workFactor = 30;
+ deleteOutputOnInterrupt = False;
+ exitValue = 0;
+ i = j = 0; /* avoid bogus warning from egcs-1.1.X */
+
+ /*-- Set up signal handlers for mem access errors --*/
+ signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
+# if BZ_UNIX
+# ifndef __DJGPP__
+ signal (SIGBUS, mySIGSEGVorSIGBUScatcher);
+# endif
+# endif
+
+ copyFileName ( inName, (Char*)"(none)" );
+ copyFileName ( outName, (Char*)"(none)" );
+
+ copyFileName ( progNameReally, argv[0] );
+ progName = &progNameReally[0];
+ for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++)
+ if (*tmp == PATH_SEP) progName = tmp + 1;
+
+
+ /*-- Copy flags from env var BZIP2, and
+ expand filename wildcards in arg list.
+ --*/
+ argList = NULL;
+ addFlagsFromEnvVar ( &argList, (Char*)"BZIP2" );
+ addFlagsFromEnvVar ( &argList, (Char*)"BZIP" );
+ for (i = 1; i <= argc-1; i++)
+ APPEND_FILESPEC(argList, argv[i]);
+
+
+ /*-- Find the length of the longest filename --*/
+ longestFileName = 7;
+ numFileNames = 0;
+ decode = True;
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) { decode = False; continue; }
+ if (aa->name[0] == '-' && decode) continue;
+ numFileNames++;
+ if (longestFileName < (Int32)strlen(aa->name) )
+ longestFileName = (Int32)strlen(aa->name);
+ }
+
+
+ /*-- Determine source modes; flag handling may change this too. --*/
+ if (numFileNames == 0)
+ srcMode = SM_I2O; else srcMode = SM_F2F;
+
+
+ /*-- Determine what to do (compress/uncompress/test/cat). --*/
+ /*-- Note that subsequent flag handling may change this. --*/
+ opMode = OM_Z;
+
+ if ( (strstr ( progName, "unzip" ) != 0) ||
+ (strstr ( progName, "UNZIP" ) != 0) )
+ opMode = OM_UNZ;
+
+ if ( (strstr ( progName, "z2cat" ) != 0) ||
+ (strstr ( progName, "Z2CAT" ) != 0) ||
+ (strstr ( progName, "zcat" ) != 0) ||
+ (strstr ( progName, "ZCAT" ) != 0) ) {
+ opMode = OM_UNZ;
+ srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O;
+ }
+
+
+ /*-- Look at the flags. --*/
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) break;
+ if (aa->name[0] == '-' && aa->name[1] != '-') {
+ for (j = 1; aa->name[j] != '\0'; j++) {
+ switch (aa->name[j]) {
+ case 'c': srcMode = SM_F2O; break;
+ case 'd': opMode = OM_UNZ; break;
+ case 'z': opMode = OM_Z; break;
+ case 'f': forceOverwrite = True; break;
+ case 't': opMode = OM_TEST; break;
+ case 'k': keepInputFiles = True; break;
+ case 's': smallMode = True; break;
+ case 'q': noisy = False; break;
+ case '1': blockSize100k = 1; break;
+ case '2': blockSize100k = 2; break;
+ case '3': blockSize100k = 3; break;
+ case '4': blockSize100k = 4; break;
+ case '5': blockSize100k = 5; break;
+ case '6': blockSize100k = 6; break;
+ case '7': blockSize100k = 7; break;
+ case '8': blockSize100k = 8; break;
+ case '9': blockSize100k = 9; break;
+ case 'V':
+ case 'L': license(); break;
+ case 'v': verbosity++; break;
+ case 'h': usage ( progName );
+ exit ( 0 );
+ break;
+ default: fprintf ( stderr, "%s: Bad flag `%s'\n",
+ progName, aa->name );
+ usage ( progName );
+ exit ( 1 );
+ break;
+ }
+ }
+ }
+ }
+
+ /*-- And again ... --*/
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) break;
+ if (ISFLAG("--stdout")) srcMode = SM_F2O; else
+ if (ISFLAG("--decompress")) opMode = OM_UNZ; else
+ if (ISFLAG("--compress")) opMode = OM_Z; else
+ if (ISFLAG("--force")) forceOverwrite = True; else
+ if (ISFLAG("--test")) opMode = OM_TEST; else
+ if (ISFLAG("--keep")) keepInputFiles = True; else
+ if (ISFLAG("--small")) smallMode = True; else
+ if (ISFLAG("--quiet")) noisy = False; else
+ if (ISFLAG("--version")) license(); else
+ if (ISFLAG("--license")) license(); else
+ if (ISFLAG("--exponential")) workFactor = 1; else
+ if (ISFLAG("--repetitive-best")) redundant(aa->name); else
+ if (ISFLAG("--repetitive-fast")) redundant(aa->name); else
+ if (ISFLAG("--fast")) blockSize100k = 1; else
+ if (ISFLAG("--best")) blockSize100k = 9; else
+ if (ISFLAG("--verbose")) verbosity++; else
+ if (ISFLAG("--help")) { usage ( progName ); exit ( 0 ); }
+ else
+ if (strncmp ( aa->name, "--", 2) == 0) {
+ fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name );
+ usage ( progName );
+ exit ( 1 );
+ }
+ }
+
+ if (verbosity > 4) verbosity = 4;
+ if (opMode == OM_Z && smallMode && blockSize100k > 2)
+ blockSize100k = 2;
+
+ if (opMode == OM_TEST && srcMode == SM_F2O) {
+ fprintf ( stderr, "%s: -c and -t cannot be used together.\n",
+ progName );
+ exit ( 1 );
+ }
+
+ if (srcMode == SM_F2O && numFileNames == 0)
+ srcMode = SM_I2O;
+
+ if (opMode != OM_Z) blockSize100k = 0;
+
+ if (srcMode == SM_F2F) {
+ signal (SIGINT, mySignalCatcher);
+ signal (SIGTERM, mySignalCatcher);
+# if BZ_UNIX
+ signal (SIGHUP, mySignalCatcher);
+# endif
+ }
+
+ if (opMode == OM_Z) {
+ if (srcMode == SM_I2O) {
+ compress ( NULL );
+ } else {
+ decode = True;
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) { decode = False; continue; }
+ if (aa->name[0] == '-' && decode) continue;
+ numFilesProcessed++;
+ compress ( aa->name );
+ }
+ }
+ }
+ else
+
+ if (opMode == OM_UNZ) {
+ unzFailsExist = False;
+ if (srcMode == SM_I2O) {
+ uncompress ( NULL );
+ } else {
+ decode = True;
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) { decode = False; continue; }
+ if (aa->name[0] == '-' && decode) continue;
+ numFilesProcessed++;
+ uncompress ( aa->name );
+ }
+ }
+ if (unzFailsExist) {
+ setExit(2);
+ exit(exitValue);
+ }
+ }
+
+ else {
+ testFailsExist = False;
+ if (srcMode == SM_I2O) {
+ testf ( NULL );
+ } else {
+ decode = True;
+ for (aa = argList; aa != NULL; aa = aa->link) {
+ if (ISFLAG("--")) { decode = False; continue; }
+ if (aa->name[0] == '-' && decode) continue;
+ numFilesProcessed++;
+ testf ( aa->name );
+ }
+ }
+ if (testFailsExist) {
+ if (noisy) {
+ fprintf ( stderr,
+ "\n"
+ "You can use the `bzip2recover' program to attempt to recover\n"
+ "data from undamaged sections of corrupted files.\n\n"
+ );
+ }
+ setExit(2);
+ exit(exitValue);
+ }
+ }
+
+ /* Free the argument list memory to mollify leak detectors
+ (eg) Purify, Checker. Serves no other useful purpose.
+ */
+ aa = argList;
+ while (aa != NULL) {
+ Cell* aa2 = aa->link;
+ if (aa->name != NULL) free(aa->name);
+ free(aa);
+ aa = aa2;
+ }
+
+ return exitValue;
+}
+
+
+/*-----------------------------------------------------------*/
+/*--- end bzip2.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.txt b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.txt
new file mode 100644
index 000000000..a50570bc2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2.txt
@@ -0,0 +1,391 @@
+
+NAME
+ bzip2, bunzip2 - a block-sorting file compressor, v1.0.8
+ bzcat - decompresses files to stdout
+ bzip2recover - recovers data from damaged bzip2 files
+
+
+SYNOPSIS
+ bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]
+ bunzip2 [ -fkvsVL ] [ filenames ... ]
+ bzcat [ -s ] [ filenames ... ]
+ bzip2recover filename
+
+
+DESCRIPTION
+ bzip2 compresses files using the Burrows-Wheeler block
+ sorting text compression algorithm, and Huffman coding.
+ Compression is generally considerably better than that
+ achieved by more conventional LZ77/LZ78-based compressors,
+ and approaches the performance of the PPM family of sta-
+ tistical compressors.
+
+ The command-line options are deliberately very similar to
+ those of GNU gzip, but they are not identical.
+
+ bzip2 expects a list of file names to accompany the com-
+ mand-line flags. Each file is replaced by a compressed
+ version of itself, with the name "original_name.bz2".
+ Each compressed file has the same modification date, per-
+ missions, and, when possible, ownership as the correspond-
+ ing original, so that these properties can be correctly
+ restored at decompression time. File name handling is
+ naive in the sense that there is no mechanism for preserv-
+ ing original file names, permissions, ownerships or dates
+ in filesystems which lack these concepts, or have serious
+ file name length restrictions, such as MS-DOS.
+
+ bzip2 and bunzip2 will by default not overwrite existing
+ files. If you want this to happen, specify the -f flag.
+
+ If no file names are specified, bzip2 compresses from
+ standard input to standard output. In this case, bzip2
+ will decline to write compressed output to a terminal, as
+ this would be entirely incomprehensible and therefore
+ pointless.
+
+ bunzip2 (or bzip2 -d) decompresses all specified files.
+ Files which were not created by bzip2 will be detected and
+ ignored, and a warning issued. bzip2 attempts to guess
+ the filename for the decompressed file from that of the
+ compressed file as follows:
+
+ filename.bz2 becomes filename
+ filename.bz becomes filename
+ filename.tbz2 becomes filename.tar
+ filename.tbz becomes filename.tar
+ anyothername becomes anyothername.out
+
+ If the file does not end in one of the recognised endings,
+ .bz2, .bz, .tbz2 or .tbz, bzip2 complains that it cannot
+ guess the name of the original file, and uses the original
+ name with .out appended.
+
+ As with compression, supplying no filenames causes decom-
+ pression from standard input to standard output.
+
+ bunzip2 will correctly decompress a file which is the con-
+ catenation of two or more compressed files. The result is
+ the concatenation of the corresponding uncompressed files.
+ Integrity testing (-t) of concatenated compressed files is
+ also supported.
+
+ You can also compress or decompress files to the standard
+ output by giving the -c flag. Multiple files may be com-
+ pressed and decompressed like this. The resulting outputs
+ are fed sequentially to stdout. Compression of multiple
+ files in this manner generates a stream containing multi-
+ ple compressed file representations. Such a stream can be
+ decompressed correctly only by bzip2 version 0.9.0 or
+ later. Earlier versions of bzip2 will stop after decom-
+ pressing the first file in the stream.
+
+ bzcat (or bzip2 -dc) decompresses all specified files to
+ the standard output.
+
+ bzip2 will read arguments from the environment variables
+ BZIP2 and BZIP, in that order, and will process them
+ before any arguments read from the command line. This
+ gives a convenient way to supply default arguments.
+
+ Compression is always performed, even if the compressed
+ file is slightly larger than the original. Files of less
+ than about one hundred bytes tend to get larger, since the
+ compression mechanism has a constant overhead in the
+ region of 50 bytes. Random data (including the output of
+ most file compressors) is coded at about 8.05 bits per
+ byte, giving an expansion of around 0.5%.
+
+ As a self-check for your protection, bzip2 uses 32-bit
+ CRCs to make sure that the decompressed version of a file
+ is identical to the original. This guards against corrup-
+ tion of the compressed data, and against undetected bugs
+ in bzip2 (hopefully very unlikely). The chances of data
+ corruption going undetected is microscopic, about one
+ chance in four billion for each file processed. Be aware,
+ though, that the check occurs upon decompression, so it
+ can only tell you that something is wrong. It can't help
+ you recover the original uncompressed data. You can use
+ bzip2recover to try to recover data from damaged files.
+
+ Return values: 0 for a normal exit, 1 for environmental
+ problems (file not found, invalid flags, I/O errors, &c),
+ 2 to indicate a corrupt compressed file, 3 for an internal
+ consistency error (eg, bug) which caused bzip2 to panic.
+
+
+OPTIONS
+ -c --stdout
+ Compress or decompress to standard output.
+
+ -d --decompress
+ Force decompression. bzip2, bunzip2 and bzcat are
+ really the same program, and the decision about
+ what actions to take is done on the basis of which
+ name is used. This flag overrides that mechanism,
+ and forces bzip2 to decompress.
+
+ -z --compress
+ The complement to -d: forces compression,
+ regardless of the invocation name.
+
+ -t --test
+ Check integrity of the specified file(s), but don't
+ decompress them. This really performs a trial
+ decompression and throws away the result.
+
+ -f --force
+ Force overwrite of output files. Normally, bzip2
+ will not overwrite existing output files. Also
+ forces bzip2 to break hard links to files, which it
+ otherwise wouldn't do.
+
+ bzip2 normally declines to decompress files which
+ don't have the correct magic header bytes. If
+ forced (-f), however, it will pass such files
+ through unmodified. This is how GNU gzip behaves.
+
+ -k --keep
+ Keep (don't delete) input files during compression
+ or decompression.
+
+ -s --small
+ Reduce memory usage, for compression, decompression
+ and testing. Files are decompressed and tested
+ using a modified algorithm which only requires 2.5
+ bytes per block byte. This means any file can be
+ decompressed in 2300k of memory, albeit at about
+ half the normal speed.
+
+ During compression, -s selects a block size of
+ 200k, which limits memory use to around the same
+ figure, at the expense of your compression ratio.
+ In short, if your machine is low on memory (8
+ megabytes or less), use -s for everything. See
+ MEMORY MANAGEMENT below.
+
+ -q --quiet
+ Suppress non-essential warning messages. Messages
+ pertaining to I/O errors and other critical events
+ will not be suppressed.
+
+ -v --verbose
+ Verbose mode -- show the compression ratio for each
+ file processed. Further -v's increase the ver-
+ bosity level, spewing out lots of information which
+ is primarily of interest for diagnostic purposes.
+
+ -L --license -V --version
+ Display the software version, license terms and
+ conditions.
+
+ -1 (or --fast) to -9 (or --best)
+ Set the block size to 100 k, 200 k .. 900 k when
+ compressing. Has no effect when decompressing.
+ See MEMORY MANAGEMENT below. The --fast and --best
+ aliases are primarily for GNU gzip compatibility.
+ In particular, --fast doesn't make things signifi-
+ cantly faster. And --best merely selects the
+ default behaviour.
+
+ -- Treats all subsequent arguments as file names, even
+ if they start with a dash. This is so you can han-
+ dle files with names beginning with a dash, for
+ example: bzip2 -- -myfilename.
+
+ --repetitive-fast --repetitive-best
+ These flags are redundant in versions 0.9.5 and
+ above. They provided some coarse control over the
+ behaviour of the sorting algorithm in earlier ver-
+ sions, which was sometimes useful. 0.9.5 and above
+ have an improved algorithm which renders these
+ flags irrelevant.
+
+
+MEMORY MANAGEMENT
+ bzip2 compresses large files in blocks. The block size
+ affects both the compression ratio achieved, and the
+ amount of memory needed for compression and decompression.
+ The flags -1 through -9 specify the block size to be
+ 100,000 bytes through 900,000 bytes (the default) respec-
+ tively. At decompression time, the block size used for
+ compression is read from the header of the compressed
+ file, and bunzip2 then allocates itself just enough memory
+ to decompress the file. Since block sizes are stored in
+ compressed files, it follows that the flags -1 to -9 are
+ irrelevant to and so ignored during decompression.
+
+ Compression and decompression requirements, in bytes, can
+ be estimated as:
+
+ Compression: 400k + ( 8 x block size )
+
+ Decompression: 100k + ( 4 x block size ), or
+ 100k + ( 2.5 x block size )
+
+ Larger block sizes give rapidly diminishing marginal
+ returns. Most of the compression comes from the first two
+ or three hundred k of block size, a fact worth bearing in
+ mind when using bzip2 on small machines. It is also
+ important to appreciate that the decompression memory
+ requirement is set at compression time by the choice of
+ block size.
+
+ For files compressed with the default 900k block size,
+ bunzip2 will require about 3700 kbytes to decompress. To
+ support decompression of any file on a 4 megabyte machine,
+ bunzip2 has an option to decompress using approximately
+ half this amount of memory, about 2300 kbytes. Decompres-
+ sion speed is also halved, so you should use this option
+ only where necessary. The relevant flag is -s.
+
+ In general, try and use the largest block size memory con-
+ straints allow, since that maximises the compression
+ achieved. Compression and decompression speed are virtu-
+ ally unaffected by block size.
+
+ Another significant point applies to files which fit in a
+ single block -- that means most files you'd encounter
+ using a large block size. The amount of real memory
+ touched is proportional to the size of the file, since the
+ file is smaller than a block. For example, compressing a
+ file 20,000 bytes long with the flag -9 will cause the
+ compressor to allocate around 7600k of memory, but only
+ touch 400k + 20000 * 8 = 560 kbytes of it. Similarly, the
+ decompressor will allocate 3700k but only touch 100k +
+ 20000 * 4 = 180 kbytes.
+
+ Here is a table which summarises the maximum memory usage
+ for different block sizes. Also recorded is the total
+ compressed size for 14 files of the Calgary Text Compres-
+ sion Corpus totalling 3,141,622 bytes. This column gives
+ some feel for how compression varies with block size.
+ These figures tend to understate the advantage of larger
+ block sizes for larger files, since the Corpus is domi-
+ nated by smaller files.
+
+ Compress Decompress Decompress Corpus
+ Flag usage usage -s usage Size
+
+ -1 1200k 500k 350k 914704
+ -2 2000k 900k 600k 877703
+ -3 2800k 1300k 850k 860338
+ -4 3600k 1700k 1100k 846899
+ -5 4400k 2100k 1350k 845160
+ -6 5200k 2500k 1600k 838626
+ -7 6100k 2900k 1850k 834096
+ -8 6800k 3300k 2100k 828642
+ -9 7600k 3700k 2350k 828642
+
+
+RECOVERING DATA FROM DAMAGED FILES
+ bzip2 compresses files in blocks, usually 900kbytes long.
+ Each block is handled independently. If a media or trans-
+ mission error causes a multi-block .bz2 file to become
+ damaged, it may be possible to recover data from the
+ undamaged blocks in the file.
+
+ The compressed representation of each block is delimited
+ by a 48-bit pattern, which makes it possible to find the
+ block boundaries with reasonable certainty. Each block
+ also carries its own 32-bit CRC, so damaged blocks can be
+ distinguished from undamaged ones.
+
+ bzip2recover is a simple program whose purpose is to
+ search for blocks in .bz2 files, and write each block out
+ into its own .bz2 file. You can then use bzip2 -t to test
+ the integrity of the resulting files, and decompress those
+ which are undamaged.
+
+ bzip2recover takes a single argument, the name of the dam-
+ aged file, and writes a number of files
+ "rec00001file.bz2", "rec00002file.bz2", etc, containing
+ the extracted blocks. The output filenames are
+ designed so that the use of wildcards in subsequent pro-
+ cessing -- for example, "bzip2 -dc rec*file.bz2 > recov-
+ ered_data" -- processes the files in the correct order.
+
+ bzip2recover should be of most use dealing with large .bz2
+ files, as these will contain many blocks. It is clearly
+ futile to use it on damaged single-block files, since a
+ damaged block cannot be recovered. If you wish to min-
+ imise any potential data loss through media or transmis-
+ sion errors, you might consider compressing with a smaller
+ block size.
+
+
+PERFORMANCE NOTES
+ The sorting phase of compression gathers together similar
+ strings in the file. Because of this, files containing
+ very long runs of repeated symbols, like "aabaabaabaab
+ ..." (repeated several hundred times) may compress more
+ slowly than normal. Versions 0.9.5 and above fare much
+ better than previous versions in this respect. The ratio
+ between worst-case and average-case compression time is in
+ the region of 10:1. For previous versions, this figure
+ was more like 100:1. You can use the -vvvv option to mon-
+ itor progress in great detail, if you want.
+
+ Decompression speed is unaffected by these phenomena.
+
+ bzip2 usually allocates several megabytes of memory to
+ operate in, and then charges all over it in a fairly ran-
+ dom fashion. This means that performance, both for com-
+ pressing and decompressing, is largely determined by the
+ speed at which your machine can service cache misses.
+ Because of this, small changes to the code to reduce the
+ miss rate have been observed to give disproportionately
+ large performance improvements. I imagine bzip2 will per-
+ form best on machines with very large caches.
+
+
+CAVEATS
+ I/O error messages are not as helpful as they could be.
+ bzip2 tries hard to detect I/O errors and exit cleanly,
+ but the details of what the problem is sometimes seem
+ rather misleading.
+
+ This manual page pertains to version 1.0.8 of bzip2. Com-
+ pressed data created by this version is entirely forwards
+ and backwards compatible with the previous public
+ releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+ 1.0.2 and above, but with the following exception: 0.9.0
+ and above can correctly decompress multiple concatenated
+ compressed files. 0.1pl2 cannot do this; it will stop
+ after decompressing just the first file in the stream.
+
+ bzip2recover versions prior to 1.0.2 used 32-bit integers
+ to represent bit positions in compressed files, so they
+ could not handle compressed files more than 512 megabytes
+ long. Versions 1.0.2 and above use 64-bit ints on some
+ platforms which support them (GNU supported targets, and
+ Windows). To establish whether or not bzip2recover was
+ built with such a limitation, run it without arguments.
+ In any event you can build yourself an unlimited version
+ if you can recompile it with MaybeUInt64 set to be an
+ unsigned 64-bit integer.
+
+
+AUTHOR
+ Julian Seward, jseward@acm.org
+
+ https://sourceware.org/bzip2/
+
+ The ideas embodied in bzip2 are due to (at least) the fol-
+ lowing people: Michael Burrows and David Wheeler (for the
+ block sorting transformation), David Wheeler (again, for
+ the Huffman coder), Peter Fenwick (for the structured cod-
+ ing model in the original bzip, and many refinements), and
+ Alistair Moffat, Radford Neal and Ian Witten (for the
+ arithmetic coder in the original bzip). I am much
+ indebted for their help, support and advice. See the man-
+ ual in the source distribution for pointers to sources of
+ documentation. Christian von Roques encouraged me to look
+ for faster sorting algorithms, so as to speed up compres-
+ sion. Bela Lubkin encouraged me to improve the worst-case
+ compression performance. Donna Robinson XMLised the docu-
+ mentation. The bz* scripts are derived from those of GNU
+ gzip. Many people sent patches, helped with portability
+ problems, lent machines, gave advice and were generally
+ helpful.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2recover.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2recover.c
new file mode 100644
index 000000000..a8131e061
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzip2recover.c
@@ -0,0 +1,516 @@
+/*-----------------------------------------------------------*/
+/*--- Block recoverer program for bzip2 ---*/
+/*--- bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+/* This program is a complete hack and should be rewritten properly.
+ It isn't very complicated. */
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+/* This program records bit locations in the file to be recovered.
+ That means that if 64-bit ints are not supported, we will not
+ be able to recover .bz2 files over 512MB (2^32 bits) long.
+ On GNU supported platforms, we take advantage of the 64-bit
+ int support to circumvent this problem. Ditto MSVC.
+
+ This change occurred in version 1.0.2; all prior versions have
+ the 512MB limitation.
+*/
+#ifdef __GNUC__
+ typedef unsigned long long int MaybeUInt64;
+# define MaybeUInt64_FMT "%Lu"
+#else
+#ifdef _MSC_VER
+ typedef unsigned __int64 MaybeUInt64;
+# define MaybeUInt64_FMT "%I64u"
+#else
+ typedef unsigned int MaybeUInt64;
+# define MaybeUInt64_FMT "%u"
+#endif
+#endif
+
+typedef unsigned int UInt32;
+typedef int Int32;
+typedef unsigned char UChar;
+typedef char Char;
+typedef unsigned char Bool;
+#define True ((Bool)1)
+#define False ((Bool)0)
+
+
+#define BZ_MAX_FILENAME 2000
+
+Char inFileName[BZ_MAX_FILENAME];
+Char outFileName[BZ_MAX_FILENAME];
+Char progName[BZ_MAX_FILENAME];
+
+MaybeUInt64 bytesOut = 0;
+MaybeUInt64 bytesIn = 0;
+
+
+/*---------------------------------------------------*/
+/*--- Header bytes ---*/
+/*---------------------------------------------------*/
+
+#define BZ_HDR_B 0x42 /* 'B' */
+#define BZ_HDR_Z 0x5a /* 'Z' */
+#define BZ_HDR_h 0x68 /* 'h' */
+#define BZ_HDR_0 0x30 /* '0' */
+
+
+/*---------------------------------------------------*/
+/*--- I/O errors ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------*/
+static void readError ( void )
+{
+ fprintf ( stderr,
+ "%s: I/O error reading `%s', possible reason follows.\n",
+ progName, inFileName );
+ perror ( progName );
+ fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+ progName );
+ exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void writeError ( void )
+{
+ fprintf ( stderr,
+ "%s: I/O error reading `%s', possible reason follows.\n",
+ progName, inFileName );
+ perror ( progName );
+ fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+ progName );
+ exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void mallocFail ( Int32 n )
+{
+ fprintf ( stderr,
+ "%s: malloc failed on request for %d bytes.\n",
+ progName, n );
+ fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n",
+ progName );
+ exit ( 1 );
+}
+
+
+/*---------------------------------------------*/
+static void tooManyBlocks ( Int32 max_handled_blocks )
+{
+ fprintf ( stderr,
+ "%s: `%s' appears to contain more than %d blocks\n",
+ progName, inFileName, max_handled_blocks );
+ fprintf ( stderr,
+ "%s: and cannot be handled. To fix, increase\n",
+ progName );
+ fprintf ( stderr,
+ "%s: BZ_MAX_HANDLED_BLOCKS in bzip2recover.c, and recompile.\n",
+ progName );
+ exit ( 1 );
+}
+
+
+
+/*---------------------------------------------------*/
+/*--- Bit stream I/O ---*/
+/*---------------------------------------------------*/
+
+typedef
+ struct {
+ FILE* handle;
+ Int32 buffer;
+ Int32 buffLive;
+ Char mode;
+ }
+ BitStream;
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenReadStream ( FILE* stream )
+{
+ BitStream *bs = malloc ( sizeof(BitStream) );
+ if (bs == NULL) mallocFail ( sizeof(BitStream) );
+ bs->handle = stream;
+ bs->buffer = 0;
+ bs->buffLive = 0;
+ bs->mode = 'r';
+ return bs;
+}
+
+
+/*---------------------------------------------*/
+static BitStream* bsOpenWriteStream ( FILE* stream )
+{
+ BitStream *bs = malloc ( sizeof(BitStream) );
+ if (bs == NULL) mallocFail ( sizeof(BitStream) );
+ bs->handle = stream;
+ bs->buffer = 0;
+ bs->buffLive = 0;
+ bs->mode = 'w';
+ return bs;
+}
+
+
+/*---------------------------------------------*/
+static void bsPutBit ( BitStream* bs, Int32 bit )
+{
+ if (bs->buffLive == 8) {
+ Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
+ if (retVal == EOF) writeError();
+ bytesOut++;
+ bs->buffLive = 1;
+ bs->buffer = bit & 0x1;
+ } else {
+ bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) );
+ bs->buffLive++;
+ };
+}
+
+
+/*---------------------------------------------*/
+/*--
+ Returns 0 or 1, or 2 to indicate EOF.
+--*/
+static Int32 bsGetBit ( BitStream* bs )
+{
+ if (bs->buffLive > 0) {
+ bs->buffLive --;
+ return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 );
+ } else {
+ Int32 retVal = getc ( bs->handle );
+ if ( retVal == EOF ) {
+ if (errno != 0) readError();
+ return 2;
+ }
+ bs->buffLive = 7;
+ bs->buffer = retVal;
+ return ( ((bs->buffer) >> 7) & 0x1 );
+ }
+}
+
+
+/*---------------------------------------------*/
+static void bsClose ( BitStream* bs )
+{
+ Int32 retVal;
+
+ if ( bs->mode == 'w' ) {
+ while ( bs->buffLive < 8 ) {
+ bs->buffLive++;
+ bs->buffer <<= 1;
+ };
+ retVal = putc ( (UChar) (bs->buffer), bs->handle );
+ if (retVal == EOF) writeError();
+ bytesOut++;
+ retVal = fflush ( bs->handle );
+ if (retVal == EOF) writeError();
+ }
+ retVal = fclose ( bs->handle );
+ if (retVal == EOF) {
+ if (bs->mode == 'w') writeError(); else readError();
+ }
+ free ( bs );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUChar ( BitStream* bs, UChar c )
+{
+ Int32 i;
+ for (i = 7; i >= 0; i--)
+ bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static void bsPutUInt32 ( BitStream* bs, UInt32 c )
+{
+ Int32 i;
+
+ for (i = 31; i >= 0; i--)
+ bsPutBit ( bs, (c >> i) & 0x1 );
+}
+
+
+/*---------------------------------------------*/
+static Bool endsInBz2 ( Char* name )
+{
+ Int32 n = strlen ( name );
+ if (n <= 4) return False;
+ return
+ (name[n-4] == '.' &&
+ name[n-3] == 'b' &&
+ name[n-2] == 'z' &&
+ name[n-1] == '2');
+}
+
+
+/*---------------------------------------------------*/
+/*--- ---*/
+/*---------------------------------------------------*/
+
+/* This logic isn't really right when it comes to Cygwin. */
+#ifdef _WIN32
+# define BZ_SPLIT_SYM '\\' /* path splitter on Windows platform */
+#else
+# define BZ_SPLIT_SYM '/' /* path splitter on Unix platform */
+#endif
+
+#define BLOCK_HEADER_HI 0x00003141UL
+#define BLOCK_HEADER_LO 0x59265359UL
+
+#define BLOCK_ENDMARK_HI 0x00001772UL
+#define BLOCK_ENDMARK_LO 0x45385090UL
+
+/* Increase if necessary. However, a .bz2 file with > 50000 blocks
+ would have an uncompressed size of at least 40GB, so the chances
+ are low you'll need to up this.
+*/
+#define BZ_MAX_HANDLED_BLOCKS 50000
+
+MaybeUInt64 bStart [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 bEnd [BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbStart[BZ_MAX_HANDLED_BLOCKS];
+MaybeUInt64 rbEnd [BZ_MAX_HANDLED_BLOCKS];
+
+Int32 main ( Int32 argc, Char** argv )
+{
+ FILE* inFile;
+ FILE* outFile;
+ BitStream* bsIn, *bsWr;
+ Int32 b, wrBlock, currBlock, rbCtr;
+ MaybeUInt64 bitsRead;
+
+ UInt32 buffHi, buffLo, blockCRC;
+ Char* p;
+
+ strncpy ( progName, argv[0], BZ_MAX_FILENAME-1);
+ progName[BZ_MAX_FILENAME-1]='\0';
+ inFileName[0] = outFileName[0] = 0;
+
+ fprintf ( stderr,
+ "bzip2recover 1.0.8: extracts blocks from damaged .bz2 files.\n" );
+
+ if (argc != 2) {
+ fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
+ progName, progName );
+ switch (sizeof(MaybeUInt64)) {
+ case 8:
+ fprintf(stderr,
+ "\trestrictions on size of recovered file: None\n");
+ break;
+ case 4:
+ fprintf(stderr,
+ "\trestrictions on size of recovered file: 512 MB\n");
+ fprintf(stderr,
+ "\tto circumvent, recompile with MaybeUInt64 as an\n"
+ "\tunsigned 64-bit int.\n");
+ break;
+ default:
+ fprintf(stderr,
+ "\tsizeof(MaybeUInt64) is not 4 or 8 -- "
+ "configuration error.\n");
+ break;
+ }
+ exit(1);
+ }
+
+ if (strlen(argv[1]) >= BZ_MAX_FILENAME-20) {
+ fprintf ( stderr,
+ "%s: supplied filename is suspiciously (>= %d chars) long. Bye!\n",
+ progName, (int)strlen(argv[1]) );
+ exit(1);
+ }
+
+ strcpy ( inFileName, argv[1] );
+
+ inFile = fopen ( inFileName, "rb" );
+ if (inFile == NULL) {
+ fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName );
+ exit(1);
+ }
+
+ bsIn = bsOpenReadStream ( inFile );
+ fprintf ( stderr, "%s: searching for block boundaries ...\n", progName );
+
+ bitsRead = 0;
+ buffHi = buffLo = 0;
+ currBlock = 0;
+ bStart[currBlock] = 0;
+
+ rbCtr = 0;
+
+ while (True) {
+ b = bsGetBit ( bsIn );
+ bitsRead++;
+ if (b == 2) {
+ if (bitsRead >= bStart[currBlock] &&
+ (bitsRead - bStart[currBlock]) >= 40) {
+ bEnd[currBlock] = bitsRead-1;
+ if (currBlock > 0)
+ fprintf ( stderr, " block %d runs from " MaybeUInt64_FMT
+ " to " MaybeUInt64_FMT " (incomplete)\n",
+ currBlock, bStart[currBlock], bEnd[currBlock] );
+ } else
+ currBlock--;
+ break;
+ }
+ buffHi = (buffHi << 1) | (buffLo >> 31);
+ buffLo = (buffLo << 1) | (b & 1);
+ if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI
+ && buffLo == BLOCK_HEADER_LO)
+ ||
+ ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI
+ && buffLo == BLOCK_ENDMARK_LO)
+ ) {
+ if (bitsRead > 49) {
+ bEnd[currBlock] = bitsRead-49;
+ } else {
+ bEnd[currBlock] = 0;
+ }
+ if (currBlock > 0 &&
+ (bEnd[currBlock] - bStart[currBlock]) >= 130) {
+ fprintf ( stderr, " block %d runs from " MaybeUInt64_FMT
+ " to " MaybeUInt64_FMT "\n",
+ rbCtr+1, bStart[currBlock], bEnd[currBlock] );
+ rbStart[rbCtr] = bStart[currBlock];
+ rbEnd[rbCtr] = bEnd[currBlock];
+ rbCtr++;
+ }
+ if (currBlock >= BZ_MAX_HANDLED_BLOCKS)
+ tooManyBlocks(BZ_MAX_HANDLED_BLOCKS);
+ currBlock++;
+
+ bStart[currBlock] = bitsRead;
+ }
+ }
+
+ bsClose ( bsIn );
+
+ /*-- identified blocks run from 1 to rbCtr inclusive. --*/
+
+ if (rbCtr < 1) {
+ fprintf ( stderr,
+ "%s: sorry, I couldn't find any block boundaries.\n",
+ progName );
+ exit(1);
+ };
+
+ fprintf ( stderr, "%s: splitting into blocks\n", progName );
+
+ inFile = fopen ( inFileName, "rb" );
+ if (inFile == NULL) {
+ fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName );
+ exit(1);
+ }
+ bsIn = bsOpenReadStream ( inFile );
+
+ /*-- placate gcc's dataflow analyser --*/
+ blockCRC = 0; bsWr = 0;
+
+ bitsRead = 0;
+ outFile = NULL;
+ wrBlock = 0;
+ while (True) {
+ b = bsGetBit(bsIn);
+ if (b == 2) break;
+ buffHi = (buffHi << 1) | (buffLo >> 31);
+ buffLo = (buffLo << 1) | (b & 1);
+ if (bitsRead == 47+rbStart[wrBlock])
+ blockCRC = (buffHi << 16) | (buffLo >> 16);
+
+ if (outFile != NULL && bitsRead >= rbStart[wrBlock]
+ && bitsRead <= rbEnd[wrBlock]) {
+ bsPutBit ( bsWr, b );
+ }
+
+ bitsRead++;
+
+ if (bitsRead == rbEnd[wrBlock]+1) {
+ if (outFile != NULL) {
+ bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 );
+ bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 );
+ bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
+ bsPutUInt32 ( bsWr, blockCRC );
+ bsClose ( bsWr );
+ outFile = NULL;
+ }
+ if (wrBlock >= rbCtr) break;
+ wrBlock++;
+ } else
+ if (bitsRead == rbStart[wrBlock]) {
+ /* Create the output file name, correctly handling leading paths.
+ (31.10.2001 by Sergey E. Kusikov) */
+ Char* split;
+ Int32 ofs, k;
+ for (k = 0; k < BZ_MAX_FILENAME; k++)
+ outFileName[k] = 0;
+ strcpy (outFileName, inFileName);
+ split = strrchr (outFileName, BZ_SPLIT_SYM);
+ if (split == NULL) {
+ split = outFileName;
+ } else {
+ ++split;
+ }
+ /* Now split points to the start of the basename. */
+ ofs = split - outFileName;
+ sprintf (split, "rec%5d", wrBlock+1);
+ for (p = split; *p != 0; p++) if (*p == ' ') *p = '0';
+ strcat (outFileName, inFileName + ofs);
+
+ if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" );
+
+ fprintf ( stderr, " writing block %d to `%s' ...\n",
+ wrBlock+1, outFileName );
+
+ outFile = fopen ( outFileName, "wb" );
+ if (outFile == NULL) {
+ fprintf ( stderr, "%s: can't write `%s'\n",
+ progName, outFileName );
+ exit(1);
+ }
+ bsWr = bsOpenWriteStream ( outFile );
+ bsPutUChar ( bsWr, BZ_HDR_B );
+ bsPutUChar ( bsWr, BZ_HDR_Z );
+ bsPutUChar ( bsWr, BZ_HDR_h );
+ bsPutUChar ( bsWr, BZ_HDR_0 + 9 );
+ bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 );
+ bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 );
+ bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 );
+ }
+ }
+
+ fprintf ( stderr, "%s: finished\n", progName );
+ return 0;
+}
+
+
+
+/*-----------------------------------------------------------*/
+/*--- end bzip2recover.c ---*/
+/*-----------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.c
new file mode 100644
index 000000000..21786551b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.c
@@ -0,0 +1,1572 @@
+
+/*-------------------------------------------------------------*/
+/*--- Library top-level functions. ---*/
+/*--- bzlib.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+/* CHANGES
+ 0.9.0 -- original version.
+ 0.9.0a/b -- no changes in this file.
+ 0.9.0c -- made zero-length BZ_FLUSH work correctly in bzCompress().
+ fixed bzWrite/bzRead to ignore zero-length requests.
+ fixed bzread to correctly handle read requests after EOF.
+ wrong parameter order in call to bzDecompressInit in
+ bzBuffToBuffDecompress. Fixed.
+*/
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+/*--- Compression stuff ---*/
+/*---------------------------------------------------*/
+
+
+/*---------------------------------------------------*/
+#ifndef BZ_NO_STDIO
+void BZ2_bz__AssertH__fail ( int errcode )
+{
+ fprintf(stderr,
+ "\n\nbzip2/libbzip2: internal error number %d.\n"
+ "This is a bug in bzip2/libbzip2, %s.\n"
+ "Please report it to: bzip2-devel@sourceware.org. If this happened\n"
+ "when you were using some program which uses libbzip2 as a\n"
+ "component, you should also report this bug to the author(s)\n"
+ "of that program. Please make an effort to report this bug;\n"
+ "timely and accurate bug reports eventually lead to higher\n"
+ "quality software. Thanks.\n\n",
+ errcode,
+ BZ2_bzlibVersion()
+ );
+
+ if (errcode == 1007) {
+ fprintf(stderr,
+ "\n*** A special note about internal error number 1007 ***\n"
+ "\n"
+ "Experience suggests that a common cause of i.e. 1007\n"
+ "is unreliable memory or other hardware. The 1007 assertion\n"
+ "just happens to cross-check the results of huge numbers of\n"
+ "memory reads/writes, and so acts (unintendedly) as a stress\n"
+ "test of your memory system.\n"
+ "\n"
+ "I suggest the following: try compressing the file again,\n"
+ "possibly monitoring progress in detail with the -vv flag.\n"
+ "\n"
+ "* If the error cannot be reproduced, and/or happens at different\n"
+ " points in compression, you may have a flaky memory system.\n"
+ " Try a memory-test program. I have used Memtest86\n"
+ " (www.memtest86.com). At the time of writing it is free (GPLd).\n"
+ " Memtest86 tests memory much more thorougly than your BIOSs\n"
+ " power-on test, and may find failures that the BIOS doesn't.\n"
+ "\n"
+ "* If the error can be repeatably reproduced, this is a bug in\n"
+ " bzip2, and I would very much like to hear about it. Please\n"
+ " let me know, and, ideally, save a copy of the file causing the\n"
+ " problem -- without which I will be unable to investigate it.\n"
+ "\n"
+ );
+ }
+
+ exit(3);
+}
+#endif
+
+
+/*---------------------------------------------------*/
+static
+int bz_config_ok ( void )
+{
+ if (sizeof(int) != 4) return 0;
+ if (sizeof(short) != 2) return 0;
+ if (sizeof(char) != 1) return 0;
+ return 1;
+}
+
+
+/*---------------------------------------------------*/
+static
+void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
+{
+ void* v = malloc ( items * size );
+ return v;
+}
+
+static
+void default_bzfree ( void* opaque, void* addr )
+{
+ if (addr != NULL) free ( addr );
+}
+
+
+/*---------------------------------------------------*/
+static
+void prepare_new_block ( EState* s )
+{
+ Int32 i;
+ s->nblock = 0;
+ s->numZ = 0;
+ s->state_out_pos = 0;
+ BZ_INITIALISE_CRC ( s->blockCRC );
+ for (i = 0; i < 256; i++) s->inUse[i] = False;
+ s->blockNo++;
+}
+
+
+/*---------------------------------------------------*/
+static
+void init_RL ( EState* s )
+{
+ s->state_in_ch = 256;
+ s->state_in_len = 0;
+}
+
+
+static
+Bool isempty_RL ( EState* s )
+{
+ if (s->state_in_ch < 256 && s->state_in_len > 0)
+ return False; else
+ return True;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressInit)
+ ( bz_stream* strm,
+ int blockSize100k,
+ int verbosity,
+ int workFactor )
+{
+ Int32 n;
+ EState* s;
+
+ if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+ if (strm == NULL ||
+ blockSize100k < 1 || blockSize100k > 9 ||
+ workFactor < 0 || workFactor > 250)
+ return BZ_PARAM_ERROR;
+
+ if (workFactor == 0) workFactor = 30;
+ if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+ if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+ s = BZALLOC( sizeof(EState) );
+ if (s == NULL) return BZ_MEM_ERROR;
+ s->strm = strm;
+
+ s->arr1 = NULL;
+ s->arr2 = NULL;
+ s->ftab = NULL;
+
+ n = 100000 * blockSize100k;
+ s->arr1 = BZALLOC( n * sizeof(UInt32) );
+ s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
+ s->ftab = BZALLOC( 65537 * sizeof(UInt32) );
+
+ if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
+ if (s->arr1 != NULL) BZFREE(s->arr1);
+ if (s->arr2 != NULL) BZFREE(s->arr2);
+ if (s->ftab != NULL) BZFREE(s->ftab);
+ if (s != NULL) BZFREE(s);
+ return BZ_MEM_ERROR;
+ }
+
+ s->blockNo = 0;
+ s->state = BZ_S_INPUT;
+ s->mode = BZ_M_RUNNING;
+ s->combinedCRC = 0;
+ s->blockSize100k = blockSize100k;
+ s->nblockMAX = 100000 * blockSize100k - 19;
+ s->verbosity = verbosity;
+ s->workFactor = workFactor;
+
+ s->block = (UChar*)s->arr2;
+ s->mtfv = (UInt16*)s->arr1;
+ s->zbits = NULL;
+ s->ptr = (UInt32*)s->arr1;
+
+ strm->state = s;
+ strm->total_in_lo32 = 0;
+ strm->total_in_hi32 = 0;
+ strm->total_out_lo32 = 0;
+ strm->total_out_hi32 = 0;
+ init_RL ( s );
+ prepare_new_block ( s );
+ return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+static
+void add_pair_to_block ( EState* s )
+{
+ Int32 i;
+ UChar ch = (UChar)(s->state_in_ch);
+ for (i = 0; i < s->state_in_len; i++) {
+ BZ_UPDATE_CRC( s->blockCRC, ch );
+ }
+ s->inUse[s->state_in_ch] = True;
+ switch (s->state_in_len) {
+ case 1:
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ break;
+ case 2:
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ break;
+ case 3:
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ break;
+ default:
+ s->inUse[s->state_in_len-4] = True;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = (UChar)ch; s->nblock++;
+ s->block[s->nblock] = ((UChar)(s->state_in_len-4));
+ s->nblock++;
+ break;
+ }
+}
+
+
+/*---------------------------------------------------*/
+static
+void flush_RL ( EState* s )
+{
+ if (s->state_in_ch < 256) add_pair_to_block ( s );
+ init_RL ( s );
+}
+
+
+/*---------------------------------------------------*/
+#define ADD_CHAR_TO_BLOCK(zs,zchh0) \
+{ \
+ UInt32 zchh = (UInt32)(zchh0); \
+ /*-- fast track the common case --*/ \
+ if (zchh != zs->state_in_ch && \
+ zs->state_in_len == 1) { \
+ UChar ch = (UChar)(zs->state_in_ch); \
+ BZ_UPDATE_CRC( zs->blockCRC, ch ); \
+ zs->inUse[zs->state_in_ch] = True; \
+ zs->block[zs->nblock] = (UChar)ch; \
+ zs->nblock++; \
+ zs->state_in_ch = zchh; \
+ } \
+ else \
+ /*-- general, uncommon cases --*/ \
+ if (zchh != zs->state_in_ch || \
+ zs->state_in_len == 255) { \
+ if (zs->state_in_ch < 256) \
+ add_pair_to_block ( zs ); \
+ zs->state_in_ch = zchh; \
+ zs->state_in_len = 1; \
+ } else { \
+ zs->state_in_len++; \
+ } \
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_input_until_stop ( EState* s )
+{
+ Bool progress_in = False;
+
+ if (s->mode == BZ_M_RUNNING) {
+
+ /*-- fast track the common case --*/
+ while (True) {
+ /*-- block full? --*/
+ if (s->nblock >= s->nblockMAX) break;
+ /*-- no input? --*/
+ if (s->strm->avail_in == 0) break;
+ progress_in = True;
+ ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
+ s->strm->next_in++;
+ s->strm->avail_in--;
+ s->strm->total_in_lo32++;
+ if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+ }
+
+ } else {
+
+ /*-- general, uncommon case --*/
+ while (True) {
+ /*-- block full? --*/
+ if (s->nblock >= s->nblockMAX) break;
+ /*-- no input? --*/
+ if (s->strm->avail_in == 0) break;
+ /*-- flush/finish end? --*/
+ if (s->avail_in_expect == 0) break;
+ progress_in = True;
+ ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
+ s->strm->next_in++;
+ s->strm->avail_in--;
+ s->strm->total_in_lo32++;
+ if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
+ s->avail_in_expect--;
+ }
+ }
+ return progress_in;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool copy_output_until_stop ( EState* s )
+{
+ Bool progress_out = False;
+
+ while (True) {
+
+ /*-- no output space? --*/
+ if (s->strm->avail_out == 0) break;
+
+ /*-- block done? --*/
+ if (s->state_out_pos >= s->numZ) break;
+
+ progress_out = True;
+ *(s->strm->next_out) = s->zbits[s->state_out_pos];
+ s->state_out_pos++;
+ s->strm->avail_out--;
+ s->strm->next_out++;
+ s->strm->total_out_lo32++;
+ if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+ }
+
+ return progress_out;
+}
+
+
+/*---------------------------------------------------*/
+static
+Bool handle_compress ( bz_stream* strm )
+{
+ Bool progress_in = False;
+ Bool progress_out = False;
+ EState* s = strm->state;
+
+ while (True) {
+
+ if (s->state == BZ_S_OUTPUT) {
+ progress_out |= copy_output_until_stop ( s );
+ if (s->state_out_pos < s->numZ) break;
+ if (s->mode == BZ_M_FINISHING &&
+ s->avail_in_expect == 0 &&
+ isempty_RL(s)) break;
+ prepare_new_block ( s );
+ s->state = BZ_S_INPUT;
+ if (s->mode == BZ_M_FLUSHING &&
+ s->avail_in_expect == 0 &&
+ isempty_RL(s)) break;
+ }
+
+ if (s->state == BZ_S_INPUT) {
+ progress_in |= copy_input_until_stop ( s );
+ if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
+ flush_RL ( s );
+ BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
+ s->state = BZ_S_OUTPUT;
+ }
+ else
+ if (s->nblock >= s->nblockMAX) {
+ BZ2_compressBlock ( s, False );
+ s->state = BZ_S_OUTPUT;
+ }
+ else
+ if (s->strm->avail_in == 0) {
+ break;
+ }
+ }
+
+ }
+
+ return progress_in || progress_out;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
+{
+ Bool progress;
+ EState* s;
+ if (strm == NULL) return BZ_PARAM_ERROR;
+ s = strm->state;
+ if (s == NULL) return BZ_PARAM_ERROR;
+ if (s->strm != strm) return BZ_PARAM_ERROR;
+
+ preswitch:
+ switch (s->mode) {
+
+ case BZ_M_IDLE:
+ return BZ_SEQUENCE_ERROR;
+
+ case BZ_M_RUNNING:
+ if (action == BZ_RUN) {
+ progress = handle_compress ( strm );
+ return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
+ }
+ else
+ if (action == BZ_FLUSH) {
+ s->avail_in_expect = strm->avail_in;
+ s->mode = BZ_M_FLUSHING;
+ goto preswitch;
+ }
+ else
+ if (action == BZ_FINISH) {
+ s->avail_in_expect = strm->avail_in;
+ s->mode = BZ_M_FINISHING;
+ goto preswitch;
+ }
+ else
+ return BZ_PARAM_ERROR;
+
+ case BZ_M_FLUSHING:
+ if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
+ if (s->avail_in_expect != s->strm->avail_in)
+ return BZ_SEQUENCE_ERROR;
+ progress = handle_compress ( strm );
+ if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+ s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
+ s->mode = BZ_M_RUNNING;
+ return BZ_RUN_OK;
+
+ case BZ_M_FINISHING:
+ if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
+ if (s->avail_in_expect != s->strm->avail_in)
+ return BZ_SEQUENCE_ERROR;
+ progress = handle_compress ( strm );
+ if (!progress) return BZ_SEQUENCE_ERROR;
+ if (s->avail_in_expect > 0 || !isempty_RL(s) ||
+ s->state_out_pos < s->numZ) return BZ_FINISH_OK;
+ s->mode = BZ_M_IDLE;
+ return BZ_STREAM_END;
+ }
+ return BZ_OK; /*--not reached--*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm )
+{
+ EState* s;
+ if (strm == NULL) return BZ_PARAM_ERROR;
+ s = strm->state;
+ if (s == NULL) return BZ_PARAM_ERROR;
+ if (s->strm != strm) return BZ_PARAM_ERROR;
+
+ if (s->arr1 != NULL) BZFREE(s->arr1);
+ if (s->arr2 != NULL) BZFREE(s->arr2);
+ if (s->ftab != NULL) BZFREE(s->ftab);
+ BZFREE(strm->state);
+
+ strm->state = NULL;
+
+ return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/*--- Decompression stuff ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressInit)
+ ( bz_stream* strm,
+ int verbosity,
+ int small )
+{
+ DState* s;
+
+ if (!bz_config_ok()) return BZ_CONFIG_ERROR;
+
+ if (strm == NULL) return BZ_PARAM_ERROR;
+ if (small != 0 && small != 1) return BZ_PARAM_ERROR;
+ if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
+
+ if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
+ if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
+
+ s = BZALLOC( sizeof(DState) );
+ if (s == NULL) return BZ_MEM_ERROR;
+ s->strm = strm;
+ strm->state = s;
+ s->state = BZ_X_MAGIC_1;
+ s->bsLive = 0;
+ s->bsBuff = 0;
+ s->calculatedCombinedCRC = 0;
+ strm->total_in_lo32 = 0;
+ strm->total_in_hi32 = 0;
+ strm->total_out_lo32 = 0;
+ strm->total_out_hi32 = 0;
+ s->smallDecompress = (Bool)small;
+ s->ll4 = NULL;
+ s->ll16 = NULL;
+ s->tt = NULL;
+ s->currBlockNo = 0;
+ s->verbosity = verbosity;
+
+ return BZ_OK;
+}
+
+
+/*---------------------------------------------------*/
+/* Return True iff data corruption is discovered.
+ Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_FAST ( DState* s )
+{
+ UChar k1;
+
+ if (s->blockRandomised) {
+
+ while (True) {
+ /* try to finish existing run */
+ while (True) {
+ if (s->strm->avail_out == 0) return False;
+ if (s->state_out_len == 0) break;
+ *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+ BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+ s->state_out_len--;
+ s->strm->next_out++;
+ s->strm->avail_out--;
+ s->strm->total_out_lo32++;
+ if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+ }
+
+ /* can a new run be started? */
+ if (s->nblock_used == s->save_nblock+1) return False;
+
+ /* Only caused by corrupt data stream? */
+ if (s->nblock_used > s->save_nblock+1)
+ return True;
+
+ s->state_out_len = 1;
+ s->state_out_ch = s->k0;
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 2;
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 3;
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ s->state_out_len = ((Int32)k1) + 4;
+ BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
+ s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+ }
+
+ } else {
+
+ /* restore */
+ UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC;
+ UChar c_state_out_ch = s->state_out_ch;
+ Int32 c_state_out_len = s->state_out_len;
+ Int32 c_nblock_used = s->nblock_used;
+ Int32 c_k0 = s->k0;
+ UInt32* c_tt = s->tt;
+ UInt32 c_tPos = s->tPos;
+ char* cs_next_out = s->strm->next_out;
+ unsigned int cs_avail_out = s->strm->avail_out;
+ Int32 ro_blockSize100k = s->blockSize100k;
+ /* end restore */
+
+ UInt32 avail_out_INIT = cs_avail_out;
+ Int32 s_save_nblockPP = s->save_nblock+1;
+ unsigned int total_out_lo32_old;
+
+ while (True) {
+
+ /* try to finish existing run */
+ if (c_state_out_len > 0) {
+ while (True) {
+ if (cs_avail_out == 0) goto return_notr;
+ if (c_state_out_len == 1) break;
+ *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+ BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+ c_state_out_len--;
+ cs_next_out++;
+ cs_avail_out--;
+ }
+ s_state_out_len_eq_one:
+ {
+ if (cs_avail_out == 0) {
+ c_state_out_len = 1; goto return_notr;
+ };
+ *( (UChar*)(cs_next_out) ) = c_state_out_ch;
+ BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
+ cs_next_out++;
+ cs_avail_out--;
+ }
+ }
+ /* Only caused by corrupt data stream? */
+ if (c_nblock_used > s_save_nblockPP)
+ return True;
+
+ /* can a new run be started? */
+ if (c_nblock_used == s_save_nblockPP) {
+ c_state_out_len = 0; goto return_notr;
+ };
+ c_state_out_ch = c_k0;
+ BZ_GET_FAST_C(k1); c_nblock_used++;
+ if (k1 != c_k0) {
+ c_k0 = k1; goto s_state_out_len_eq_one;
+ };
+ if (c_nblock_used == s_save_nblockPP)
+ goto s_state_out_len_eq_one;
+
+ c_state_out_len = 2;
+ BZ_GET_FAST_C(k1); c_nblock_used++;
+ if (c_nblock_used == s_save_nblockPP) continue;
+ if (k1 != c_k0) { c_k0 = k1; continue; };
+
+ c_state_out_len = 3;
+ BZ_GET_FAST_C(k1); c_nblock_used++;
+ if (c_nblock_used == s_save_nblockPP) continue;
+ if (k1 != c_k0) { c_k0 = k1; continue; };
+
+ BZ_GET_FAST_C(k1); c_nblock_used++;
+ c_state_out_len = ((Int32)k1) + 4;
+ BZ_GET_FAST_C(c_k0); c_nblock_used++;
+ }
+
+ return_notr:
+ total_out_lo32_old = s->strm->total_out_lo32;
+ s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
+ if (s->strm->total_out_lo32 < total_out_lo32_old)
+ s->strm->total_out_hi32++;
+
+ /* save */
+ s->calculatedBlockCRC = c_calculatedBlockCRC;
+ s->state_out_ch = c_state_out_ch;
+ s->state_out_len = c_state_out_len;
+ s->nblock_used = c_nblock_used;
+ s->k0 = c_k0;
+ s->tt = c_tt;
+ s->tPos = c_tPos;
+ s->strm->next_out = cs_next_out;
+ s->strm->avail_out = cs_avail_out;
+ /* end save */
+ }
+ return False;
+}
+
+
+
+/*---------------------------------------------------*/
+__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
+{
+ Int32 nb, na, mid;
+ nb = 0;
+ na = 256;
+ do {
+ mid = (nb + na) >> 1;
+ if (indx >= cftab[mid]) nb = mid; else na = mid;
+ }
+ while (na - nb != 1);
+ return nb;
+}
+
+
+/*---------------------------------------------------*/
+/* Return True iff data corruption is discovered.
+ Returns False if there is no problem.
+*/
+static
+Bool unRLE_obuf_to_output_SMALL ( DState* s )
+{
+ UChar k1;
+
+ if (s->blockRandomised) {
+
+ while (True) {
+ /* try to finish existing run */
+ while (True) {
+ if (s->strm->avail_out == 0) return False;
+ if (s->state_out_len == 0) break;
+ *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+ BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+ s->state_out_len--;
+ s->strm->next_out++;
+ s->strm->avail_out--;
+ s->strm->total_out_lo32++;
+ if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+ }
+
+ /* can a new run be started? */
+ if (s->nblock_used == s->save_nblock+1) return False;
+
+ /* Only caused by corrupt data stream? */
+ if (s->nblock_used > s->save_nblock+1)
+ return True;
+
+ s->state_out_len = 1;
+ s->state_out_ch = s->k0;
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 2;
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 3;
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
+ k1 ^= BZ_RAND_MASK; s->nblock_used++;
+ s->state_out_len = ((Int32)k1) + 4;
+ BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
+ s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
+ }
+
+ } else {
+
+ while (True) {
+ /* try to finish existing run */
+ while (True) {
+ if (s->strm->avail_out == 0) return False;
+ if (s->state_out_len == 0) break;
+ *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
+ BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
+ s->state_out_len--;
+ s->strm->next_out++;
+ s->strm->avail_out--;
+ s->strm->total_out_lo32++;
+ if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
+ }
+
+ /* can a new run be started? */
+ if (s->nblock_used == s->save_nblock+1) return False;
+
+ /* Only caused by corrupt data stream? */
+ if (s->nblock_used > s->save_nblock+1)
+ return True;
+
+ s->state_out_len = 1;
+ s->state_out_ch = s->k0;
+ BZ_GET_SMALL(k1); s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 2;
+ BZ_GET_SMALL(k1); s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ s->state_out_len = 3;
+ BZ_GET_SMALL(k1); s->nblock_used++;
+ if (s->nblock_used == s->save_nblock+1) continue;
+ if (k1 != s->k0) { s->k0 = k1; continue; };
+
+ BZ_GET_SMALL(k1); s->nblock_used++;
+ s->state_out_len = ((Int32)k1) + 4;
+ BZ_GET_SMALL(s->k0); s->nblock_used++;
+ }
+
+ }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
+{
+ Bool corrupt;
+ DState* s;
+ if (strm == NULL) return BZ_PARAM_ERROR;
+ s = strm->state;
+ if (s == NULL) return BZ_PARAM_ERROR;
+ if (s->strm != strm) return BZ_PARAM_ERROR;
+
+ while (True) {
+ if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
+ if (s->state == BZ_X_OUTPUT) {
+ if (s->smallDecompress)
+ corrupt = unRLE_obuf_to_output_SMALL ( s ); else
+ corrupt = unRLE_obuf_to_output_FAST ( s );
+ if (corrupt) return BZ_DATA_ERROR;
+ if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
+ BZ_FINALISE_CRC ( s->calculatedBlockCRC );
+ if (s->verbosity >= 3)
+ VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC,
+ s->calculatedBlockCRC );
+ if (s->verbosity >= 2) VPrintf0 ( "]" );
+ if (s->calculatedBlockCRC != s->storedBlockCRC)
+ return BZ_DATA_ERROR;
+ s->calculatedCombinedCRC
+ = (s->calculatedCombinedCRC << 1) |
+ (s->calculatedCombinedCRC >> 31);
+ s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
+ s->state = BZ_X_BLKHDR_1;
+ } else {
+ return BZ_OK;
+ }
+ }
+ if (s->state >= BZ_X_MAGIC_1) {
+ Int32 r = BZ2_decompress ( s );
+ if (r == BZ_STREAM_END) {
+ if (s->verbosity >= 3)
+ VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x",
+ s->storedCombinedCRC, s->calculatedCombinedCRC );
+ if (s->calculatedCombinedCRC != s->storedCombinedCRC)
+ return BZ_DATA_ERROR;
+ return r;
+ }
+ if (s->state != BZ_X_OUTPUT) return r;
+ }
+ }
+
+ AssertH ( 0, 6001 );
+
+ return 0; /*NOTREACHED*/
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm )
+{
+ DState* s;
+ if (strm == NULL) return BZ_PARAM_ERROR;
+ s = strm->state;
+ if (s == NULL) return BZ_PARAM_ERROR;
+ if (s->strm != strm) return BZ_PARAM_ERROR;
+
+ if (s->tt != NULL) BZFREE(s->tt);
+ if (s->ll16 != NULL) BZFREE(s->ll16);
+ if (s->ll4 != NULL) BZFREE(s->ll4);
+
+ BZFREE(strm->state);
+ strm->state = NULL;
+
+ return BZ_OK;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+/*--- File I/O stuff ---*/
+/*---------------------------------------------------*/
+
+#define BZ_SETERR(eee) \
+{ \
+ if (bzerror != NULL) *bzerror = eee; \
+ if (bzf != NULL) bzf->lastErr = eee; \
+}
+
+typedef
+ struct {
+ FILE* handle;
+ Char buf[BZ_MAX_UNUSED];
+ Int32 bufN;
+ Bool writing;
+ bz_stream strm;
+ Int32 lastErr;
+ Bool initialisedOk;
+ }
+ bzFile;
+
+
+/*---------------------------------------------*/
+static Bool myfeof ( FILE* f )
+{
+ Int32 c = fgetc ( f );
+ if (c == EOF) return True;
+ ungetc ( c, f );
+ return False;
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzWriteOpen)
+ ( int* bzerror,
+ FILE* f,
+ int blockSize100k,
+ int verbosity,
+ int workFactor )
+{
+ Int32 ret;
+ bzFile* bzf = NULL;
+
+ BZ_SETERR(BZ_OK);
+
+ if (f == NULL ||
+ (blockSize100k < 1 || blockSize100k > 9) ||
+ (workFactor < 0 || workFactor > 250) ||
+ (verbosity < 0 || verbosity > 4))
+ { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+ if (ferror(f))
+ { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+ bzf = malloc ( sizeof(bzFile) );
+ if (bzf == NULL)
+ { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+ BZ_SETERR(BZ_OK);
+ bzf->initialisedOk = False;
+ bzf->bufN = 0;
+ bzf->handle = f;
+ bzf->writing = True;
+ bzf->strm.bzalloc = NULL;
+ bzf->strm.bzfree = NULL;
+ bzf->strm.opaque = NULL;
+
+ if (workFactor == 0) workFactor = 30;
+ ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
+ verbosity, workFactor );
+ if (ret != BZ_OK)
+ { BZ_SETERR(ret); free(bzf); return NULL; };
+
+ bzf->strm.avail_in = 0;
+ bzf->initialisedOk = True;
+ return bzf;
+}
+
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWrite)
+ ( int* bzerror,
+ BZFILE* b,
+ void* buf,
+ int len )
+{
+ Int32 n, n2, ret;
+ bzFile* bzf = (bzFile*)b;
+
+ BZ_SETERR(BZ_OK);
+ if (bzf == NULL || buf == NULL || len < 0)
+ { BZ_SETERR(BZ_PARAM_ERROR); return; };
+ if (!(bzf->writing))
+ { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+ if (ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return; };
+
+ if (len == 0)
+ { BZ_SETERR(BZ_OK); return; };
+
+ bzf->strm.avail_in = len;
+ bzf->strm.next_in = buf;
+
+ while (True) {
+ bzf->strm.avail_out = BZ_MAX_UNUSED;
+ bzf->strm.next_out = bzf->buf;
+ ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
+ if (ret != BZ_RUN_OK)
+ { BZ_SETERR(ret); return; };
+
+ if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+ n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+ n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
+ n, bzf->handle );
+ if (n != n2 || ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return; };
+ }
+
+ if (bzf->strm.avail_in == 0)
+ { BZ_SETERR(BZ_OK); return; };
+ }
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzWriteClose)
+ ( int* bzerror,
+ BZFILE* b,
+ int abandon,
+ unsigned int* nbytes_in,
+ unsigned int* nbytes_out )
+{
+ BZ2_bzWriteClose64 ( bzerror, b, abandon,
+ nbytes_in, NULL, nbytes_out, NULL );
+}
+
+
+void BZ_API(BZ2_bzWriteClose64)
+ ( int* bzerror,
+ BZFILE* b,
+ int abandon,
+ unsigned int* nbytes_in_lo32,
+ unsigned int* nbytes_in_hi32,
+ unsigned int* nbytes_out_lo32,
+ unsigned int* nbytes_out_hi32 )
+{
+ Int32 n, n2, ret;
+ bzFile* bzf = (bzFile*)b;
+
+ if (bzf == NULL)
+ { BZ_SETERR(BZ_OK); return; };
+ if (!(bzf->writing))
+ { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+ if (ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return; };
+
+ if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
+ if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
+ if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
+ if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
+
+ if ((!abandon) && bzf->lastErr == BZ_OK) {
+ while (True) {
+ bzf->strm.avail_out = BZ_MAX_UNUSED;
+ bzf->strm.next_out = bzf->buf;
+ ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
+ if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
+ { BZ_SETERR(ret); return; };
+
+ if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
+ n = BZ_MAX_UNUSED - bzf->strm.avail_out;
+ n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
+ n, bzf->handle );
+ if (n != n2 || ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return; };
+ }
+
+ if (ret == BZ_STREAM_END) break;
+ }
+ }
+
+ if ( !abandon && !ferror ( bzf->handle ) ) {
+ fflush ( bzf->handle );
+ if (ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return; };
+ }
+
+ if (nbytes_in_lo32 != NULL)
+ *nbytes_in_lo32 = bzf->strm.total_in_lo32;
+ if (nbytes_in_hi32 != NULL)
+ *nbytes_in_hi32 = bzf->strm.total_in_hi32;
+ if (nbytes_out_lo32 != NULL)
+ *nbytes_out_lo32 = bzf->strm.total_out_lo32;
+ if (nbytes_out_hi32 != NULL)
+ *nbytes_out_hi32 = bzf->strm.total_out_hi32;
+
+ BZ_SETERR(BZ_OK);
+ BZ2_bzCompressEnd ( &(bzf->strm) );
+ free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+BZFILE* BZ_API(BZ2_bzReadOpen)
+ ( int* bzerror,
+ FILE* f,
+ int verbosity,
+ int small,
+ void* unused,
+ int nUnused )
+{
+ bzFile* bzf = NULL;
+ int ret;
+
+ BZ_SETERR(BZ_OK);
+
+ if (f == NULL ||
+ (small != 0 && small != 1) ||
+ (verbosity < 0 || verbosity > 4) ||
+ (unused == NULL && nUnused != 0) ||
+ (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
+ { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
+
+ if (ferror(f))
+ { BZ_SETERR(BZ_IO_ERROR); return NULL; };
+
+ bzf = malloc ( sizeof(bzFile) );
+ if (bzf == NULL)
+ { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
+
+ BZ_SETERR(BZ_OK);
+
+ bzf->initialisedOk = False;
+ bzf->handle = f;
+ bzf->bufN = 0;
+ bzf->writing = False;
+ bzf->strm.bzalloc = NULL;
+ bzf->strm.bzfree = NULL;
+ bzf->strm.opaque = NULL;
+
+ while (nUnused > 0) {
+ bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
+ unused = ((void*)( 1 + ((UChar*)(unused)) ));
+ nUnused--;
+ }
+
+ ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
+ if (ret != BZ_OK)
+ { BZ_SETERR(ret); free(bzf); return NULL; };
+
+ bzf->strm.avail_in = bzf->bufN;
+ bzf->strm.next_in = bzf->buf;
+
+ bzf->initialisedOk = True;
+ return bzf;
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
+{
+ bzFile* bzf = (bzFile*)b;
+
+ BZ_SETERR(BZ_OK);
+ if (bzf == NULL)
+ { BZ_SETERR(BZ_OK); return; };
+
+ if (bzf->writing)
+ { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+
+ if (bzf->initialisedOk)
+ (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
+ free ( bzf );
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzRead)
+ ( int* bzerror,
+ BZFILE* b,
+ void* buf,
+ int len )
+{
+ Int32 n, ret;
+ bzFile* bzf = (bzFile*)b;
+
+ BZ_SETERR(BZ_OK);
+
+ if (bzf == NULL || buf == NULL || len < 0)
+ { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
+
+ if (bzf->writing)
+ { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
+
+ if (len == 0)
+ { BZ_SETERR(BZ_OK); return 0; };
+
+ bzf->strm.avail_out = len;
+ bzf->strm.next_out = buf;
+
+ while (True) {
+
+ if (ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return 0; };
+
+ if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
+ n = fread ( bzf->buf, sizeof(UChar),
+ BZ_MAX_UNUSED, bzf->handle );
+ if (ferror(bzf->handle))
+ { BZ_SETERR(BZ_IO_ERROR); return 0; };
+ bzf->bufN = n;
+ bzf->strm.avail_in = bzf->bufN;
+ bzf->strm.next_in = bzf->buf;
+ }
+
+ ret = BZ2_bzDecompress ( &(bzf->strm) );
+
+ if (ret != BZ_OK && ret != BZ_STREAM_END)
+ { BZ_SETERR(ret); return 0; };
+
+ if (ret == BZ_OK && myfeof(bzf->handle) &&
+ bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
+ { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
+
+ if (ret == BZ_STREAM_END)
+ { BZ_SETERR(BZ_STREAM_END);
+ return len - bzf->strm.avail_out; };
+ if (bzf->strm.avail_out == 0)
+ { BZ_SETERR(BZ_OK); return len; };
+
+ }
+
+ return 0; /*not reached*/
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzReadGetUnused)
+ ( int* bzerror,
+ BZFILE* b,
+ void** unused,
+ int* nUnused )
+{
+ bzFile* bzf = (bzFile*)b;
+ if (bzf == NULL)
+ { BZ_SETERR(BZ_PARAM_ERROR); return; };
+ if (bzf->lastErr != BZ_STREAM_END)
+ { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
+ if (unused == NULL || nUnused == NULL)
+ { BZ_SETERR(BZ_PARAM_ERROR); return; };
+
+ BZ_SETERR(BZ_OK);
+ *nUnused = bzf->strm.avail_in;
+ *unused = bzf->strm.next_in;
+}
+#endif
+
+
+/*---------------------------------------------------*/
+/*--- Misc convenience stuff ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffCompress)
+ ( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int blockSize100k,
+ int verbosity,
+ int workFactor )
+{
+ bz_stream strm;
+ int ret;
+
+ if (dest == NULL || destLen == NULL ||
+ source == NULL ||
+ blockSize100k < 1 || blockSize100k > 9 ||
+ verbosity < 0 || verbosity > 4 ||
+ workFactor < 0 || workFactor > 250)
+ return BZ_PARAM_ERROR;
+
+ if (workFactor == 0) workFactor = 30;
+ strm.bzalloc = NULL;
+ strm.bzfree = NULL;
+ strm.opaque = NULL;
+ ret = BZ2_bzCompressInit ( &strm, blockSize100k,
+ verbosity, workFactor );
+ if (ret != BZ_OK) return ret;
+
+ strm.next_in = source;
+ strm.next_out = dest;
+ strm.avail_in = sourceLen;
+ strm.avail_out = *destLen;
+
+ ret = BZ2_bzCompress ( &strm, BZ_FINISH );
+ if (ret == BZ_FINISH_OK) goto output_overflow;
+ if (ret != BZ_STREAM_END) goto errhandler;
+
+ /* normal termination */
+ *destLen -= strm.avail_out;
+ BZ2_bzCompressEnd ( &strm );
+ return BZ_OK;
+
+ output_overflow:
+ BZ2_bzCompressEnd ( &strm );
+ return BZ_OUTBUFF_FULL;
+
+ errhandler:
+ BZ2_bzCompressEnd ( &strm );
+ return ret;
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzBuffToBuffDecompress)
+ ( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int small,
+ int verbosity )
+{
+ bz_stream strm;
+ int ret;
+
+ if (dest == NULL || destLen == NULL ||
+ source == NULL ||
+ (small != 0 && small != 1) ||
+ verbosity < 0 || verbosity > 4)
+ return BZ_PARAM_ERROR;
+
+ strm.bzalloc = NULL;
+ strm.bzfree = NULL;
+ strm.opaque = NULL;
+ ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
+ if (ret != BZ_OK) return ret;
+
+ strm.next_in = source;
+ strm.next_out = dest;
+ strm.avail_in = sourceLen;
+ strm.avail_out = *destLen;
+
+ ret = BZ2_bzDecompress ( &strm );
+ if (ret == BZ_OK) goto output_overflow_or_eof;
+ if (ret != BZ_STREAM_END) goto errhandler;
+
+ /* normal termination */
+ *destLen -= strm.avail_out;
+ BZ2_bzDecompressEnd ( &strm );
+ return BZ_OK;
+
+ output_overflow_or_eof:
+ if (strm.avail_out > 0) {
+ BZ2_bzDecompressEnd ( &strm );
+ return BZ_UNEXPECTED_EOF;
+ } else {
+ BZ2_bzDecompressEnd ( &strm );
+ return BZ_OUTBUFF_FULL;
+ };
+
+ errhandler:
+ BZ2_bzDecompressEnd ( &strm );
+ return ret;
+}
+
+
+/*---------------------------------------------------*/
+/*--
+ Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+ to support better zlib compatibility.
+ This code is not _officially_ part of libbzip2 (yet);
+ I haven't tested it, documented it, or considered the
+ threading-safeness of it.
+ If this code breaks, please contact both Yoshioka and me.
+--*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+/*--
+ return version like "0.9.5d, 4-Sept-1999".
+--*/
+const char * BZ_API(BZ2_bzlibVersion)(void)
+{
+ return BZ_VERSION;
+}
+
+
+#ifndef BZ_NO_STDIO
+/*---------------------------------------------------*/
+
+#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
+# include <fcntl.h>
+# include <io.h>
+# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+static
+BZFILE * bzopen_or_bzdopen
+ ( const char *path, /* no use when bzdopen */
+ int fd, /* no use when bzdopen */
+ const char *mode,
+ int open_mode) /* bzopen: 0, bzdopen:1 */
+{
+ int bzerr;
+ char unused[BZ_MAX_UNUSED];
+ int blockSize100k = 9;
+ int writing = 0;
+ char mode2[10] = "";
+ FILE *fp = NULL;
+ BZFILE *bzfp = NULL;
+ int verbosity = 0;
+ int workFactor = 30;
+ int smallMode = 0;
+ int nUnused = 0;
+
+ if (mode == NULL) return NULL;
+ while (*mode) {
+ switch (*mode) {
+ case 'r':
+ writing = 0; break;
+ case 'w':
+ writing = 1; break;
+ case 's':
+ smallMode = 1; break;
+ default:
+ if (isdigit((int)(*mode))) {
+ blockSize100k = *mode-BZ_HDR_0;
+ }
+ }
+ mode++;
+ }
+ strcat(mode2, writing ? "w" : "r" );
+ strcat(mode2,"b"); /* binary mode */
+
+ if (open_mode==0) {
+ if (path==NULL || strcmp(path,"")==0) {
+ fp = (writing ? stdout : stdin);
+ SET_BINARY_MODE(fp);
+ } else {
+ fp = fopen(path,mode2);
+ }
+ } else {
+#ifdef BZ_STRICT_ANSI
+ fp = NULL;
+#else
+ fp = fdopen(fd,mode2);
+#endif
+ }
+ if (fp == NULL) return NULL;
+
+ if (writing) {
+ /* Guard against total chaos and anarchy -- JRS */
+ if (blockSize100k < 1) blockSize100k = 1;
+ if (blockSize100k > 9) blockSize100k = 9;
+ bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
+ verbosity,workFactor);
+ } else {
+ bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
+ unused,nUnused);
+ }
+ if (bzfp == NULL) {
+ if (fp != stdin && fp != stdout) fclose(fp);
+ return NULL;
+ }
+ return bzfp;
+}
+
+
+/*---------------------------------------------------*/
+/*--
+ open file for read or write.
+ ex) bzopen("file","w9")
+ case path="" or NULL => use stdin or stdout.
+--*/
+BZFILE * BZ_API(BZ2_bzopen)
+ ( const char *path,
+ const char *mode )
+{
+ return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
+}
+
+
+/*---------------------------------------------------*/
+BZFILE * BZ_API(BZ2_bzdopen)
+ ( int fd,
+ const char *mode )
+{
+ return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
+{
+ int bzerr, nread;
+ if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
+ nread = BZ2_bzRead(&bzerr,b,buf,len);
+ if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
+ return nread;
+ } else {
+ return -1;
+ }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
+{
+ int bzerr;
+
+ BZ2_bzWrite(&bzerr,b,buf,len);
+ if(bzerr == BZ_OK){
+ return len;
+ }else{
+ return -1;
+ }
+}
+
+
+/*---------------------------------------------------*/
+int BZ_API(BZ2_bzflush) (BZFILE *b)
+{
+ /* do nothing now... */
+ return 0;
+}
+
+
+/*---------------------------------------------------*/
+void BZ_API(BZ2_bzclose) (BZFILE* b)
+{
+ int bzerr;
+ FILE *fp;
+
+ if (b==NULL) {return;}
+ fp = ((bzFile *)b)->handle;
+ if(((bzFile*)b)->writing){
+ BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
+ if(bzerr != BZ_OK){
+ BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
+ }
+ }else{
+ BZ2_bzReadClose(&bzerr,b);
+ }
+ if(fp!=stdin && fp!=stdout){
+ fclose(fp);
+ }
+}
+
+
+/*---------------------------------------------------*/
+/*--
+ return last error code
+--*/
+static const char *bzerrorstrings[] = {
+ "OK"
+ ,"SEQUENCE_ERROR"
+ ,"PARAM_ERROR"
+ ,"MEM_ERROR"
+ ,"DATA_ERROR"
+ ,"DATA_ERROR_MAGIC"
+ ,"IO_ERROR"
+ ,"UNEXPECTED_EOF"
+ ,"OUTBUFF_FULL"
+ ,"CONFIG_ERROR"
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+};
+
+
+const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
+{
+ int err = ((bzFile *)b)->lastErr;
+
+ if(err>0) err = 0;
+ *errnum = err;
+ return bzerrorstrings[err*-1];
+}
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end bzlib.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.h b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.h
new file mode 100644
index 000000000..8966a6c58
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib.h
@@ -0,0 +1,282 @@
+
+/*-------------------------------------------------------------*/
+/*--- Public header file for the library. ---*/
+/*--- bzlib.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_H
+#define _BZLIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BZ_RUN 0
+#define BZ_FLUSH 1
+#define BZ_FINISH 2
+
+#define BZ_OK 0
+#define BZ_RUN_OK 1
+#define BZ_FLUSH_OK 2
+#define BZ_FINISH_OK 3
+#define BZ_STREAM_END 4
+#define BZ_SEQUENCE_ERROR (-1)
+#define BZ_PARAM_ERROR (-2)
+#define BZ_MEM_ERROR (-3)
+#define BZ_DATA_ERROR (-4)
+#define BZ_DATA_ERROR_MAGIC (-5)
+#define BZ_IO_ERROR (-6)
+#define BZ_UNEXPECTED_EOF (-7)
+#define BZ_OUTBUFF_FULL (-8)
+#define BZ_CONFIG_ERROR (-9)
+
+typedef
+ struct {
+ char *next_in;
+ unsigned int avail_in;
+ unsigned int total_in_lo32;
+ unsigned int total_in_hi32;
+
+ char *next_out;
+ unsigned int avail_out;
+ unsigned int total_out_lo32;
+ unsigned int total_out_hi32;
+
+ void *state;
+
+ void *(*bzalloc)(void *,int,int);
+ void (*bzfree)(void *,void *);
+ void *opaque;
+ }
+ bz_stream;
+
+
+#ifndef BZ_IMPORT
+#define BZ_EXPORT
+#endif
+
+#ifndef BZ_NO_STDIO
+/* Need a definitition for FILE */
+#include <stdio.h>
+#endif
+
+#ifdef _WIN32
+# include <windows.h>
+# ifdef small
+ /* windows.h define small to char */
+# undef small
+# endif
+# ifdef BZ_EXPORT
+# define BZ_API(func) WINAPI func
+# define BZ_EXTERN extern
+# else
+ /* import windows dll dynamically */
+# define BZ_API(func) (WINAPI * func)
+# define BZ_EXTERN
+# endif
+#else
+# define BZ_API(func) func
+# define BZ_EXTERN extern
+#endif
+
+
+/*-- Core (low-level) library functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
+ bz_stream* strm,
+ int blockSize100k,
+ int verbosity,
+ int workFactor
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompress) (
+ bz_stream* strm,
+ int action
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
+ bz_stream* strm
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
+ bz_stream *strm,
+ int verbosity,
+ int small
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
+ bz_stream* strm
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
+ bz_stream *strm
+ );
+
+
+
+/*-- High(er) level library functions --*/
+
+#ifndef BZ_NO_STDIO
+#define BZ_MAX_UNUSED 5000
+
+typedef void BZFILE;
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
+ int* bzerror,
+ FILE* f,
+ int verbosity,
+ int small,
+ void* unused,
+ int nUnused
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
+ int* bzerror,
+ BZFILE* b
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
+ int* bzerror,
+ BZFILE* b,
+ void** unused,
+ int* nUnused
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzRead) (
+ int* bzerror,
+ BZFILE* b,
+ void* buf,
+ int len
+ );
+
+BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
+ int* bzerror,
+ FILE* f,
+ int blockSize100k,
+ int verbosity,
+ int workFactor
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzWrite) (
+ int* bzerror,
+ BZFILE* b,
+ void* buf,
+ int len
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
+ int* bzerror,
+ BZFILE* b,
+ int abandon,
+ unsigned int* nbytes_in,
+ unsigned int* nbytes_out
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
+ int* bzerror,
+ BZFILE* b,
+ int abandon,
+ unsigned int* nbytes_in_lo32,
+ unsigned int* nbytes_in_hi32,
+ unsigned int* nbytes_out_lo32,
+ unsigned int* nbytes_out_hi32
+ );
+#endif
+
+
+/*-- Utility functions --*/
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
+ char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int blockSize100k,
+ int verbosity,
+ int workFactor
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
+ char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int small,
+ int verbosity
+ );
+
+
+/*--
+ Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+ to support better zlib compatibility.
+ This code is not _officially_ part of libbzip2 (yet);
+ I haven't tested it, documented it, or considered the
+ threading-safeness of it.
+ If this code breaks, please contact both Yoshioka and me.
+--*/
+
+BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
+ void
+ );
+
+#ifndef BZ_NO_STDIO
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
+ const char *path,
+ const char *mode
+ );
+
+BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
+ int fd,
+ const char *mode
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzread) (
+ BZFILE* b,
+ void* buf,
+ int len
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzwrite) (
+ BZFILE* b,
+ void* buf,
+ int len
+ );
+
+BZ_EXTERN int BZ_API(BZ2_bzflush) (
+ BZFILE* b
+ );
+
+BZ_EXTERN void BZ_API(BZ2_bzclose) (
+ BZFILE* b
+ );
+
+BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
+ BZFILE *b,
+ int *errnum
+ );
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/*-------------------------------------------------------------*/
+/*--- end bzlib.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib_private.h b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib_private.h
new file mode 100644
index 000000000..3755a6f70
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzlib_private.h
@@ -0,0 +1,509 @@
+
+/*-------------------------------------------------------------*/
+/*--- Private header file for the library. ---*/
+/*--- bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#ifndef _BZLIB_PRIVATE_H
+#define _BZLIB_PRIVATE_H
+
+#include <stdlib.h>
+
+#ifndef BZ_NO_STDIO
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#endif
+
+#include "bzlib.h"
+
+
+
+/*-- General stuff. --*/
+
+#define BZ_VERSION "1.0.8, 13-Jul-2019"
+
+typedef char Char;
+typedef unsigned char Bool;
+typedef unsigned char UChar;
+typedef int Int32;
+typedef unsigned int UInt32;
+typedef short Int16;
+typedef unsigned short UInt16;
+
+#define True ((Bool)1)
+#define False ((Bool)0)
+
+#ifndef __GNUC__
+#define __inline__ /* */
+#endif
+
+#ifndef BZ_NO_STDIO
+
+extern void BZ2_bz__AssertH__fail ( int errcode );
+#define AssertH(cond,errcode) \
+ { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
+
+#if BZ_DEBUG
+#define AssertD(cond,msg) \
+ { if (!(cond)) { \
+ fprintf ( stderr, \
+ "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
+ exit(1); \
+ }}
+#else
+#define AssertD(cond,msg) /* */
+#endif
+
+#define VPrintf0(zf) \
+ fprintf(stderr,zf)
+#define VPrintf1(zf,za1) \
+ fprintf(stderr,zf,za1)
+#define VPrintf2(zf,za1,za2) \
+ fprintf(stderr,zf,za1,za2)
+#define VPrintf3(zf,za1,za2,za3) \
+ fprintf(stderr,zf,za1,za2,za3)
+#define VPrintf4(zf,za1,za2,za3,za4) \
+ fprintf(stderr,zf,za1,za2,za3,za4)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) \
+ fprintf(stderr,zf,za1,za2,za3,za4,za5)
+
+#else
+
+extern void bz_internal_error ( int errcode );
+#define AssertH(cond,errcode) \
+ { if (!(cond)) bz_internal_error ( errcode ); }
+#define AssertD(cond,msg) do { } while (0)
+#define VPrintf0(zf) do { } while (0)
+#define VPrintf1(zf,za1) do { } while (0)
+#define VPrintf2(zf,za1,za2) do { } while (0)
+#define VPrintf3(zf,za1,za2,za3) do { } while (0)
+#define VPrintf4(zf,za1,za2,za3,za4) do { } while (0)
+#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0)
+
+#endif
+
+
+#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
+#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp))
+
+
+/*-- Header bytes. --*/
+
+#define BZ_HDR_B 0x42 /* 'B' */
+#define BZ_HDR_Z 0x5a /* 'Z' */
+#define BZ_HDR_h 0x68 /* 'h' */
+#define BZ_HDR_0 0x30 /* '0' */
+
+/*-- Constants for the back end. --*/
+
+#define BZ_MAX_ALPHA_SIZE 258
+#define BZ_MAX_CODE_LEN 23
+
+#define BZ_RUNA 0
+#define BZ_RUNB 1
+
+#define BZ_N_GROUPS 6
+#define BZ_G_SIZE 50
+#define BZ_N_ITERS 4
+
+#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
+
+
+
+/*-- Stuff for randomising repetitive blocks. --*/
+
+extern Int32 BZ2_rNums[512];
+
+#define BZ_RAND_DECLS \
+ Int32 rNToGo; \
+ Int32 rTPos \
+
+#define BZ_RAND_INIT_MASK \
+ s->rNToGo = 0; \
+ s->rTPos = 0 \
+
+#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
+
+#define BZ_RAND_UPD_MASK \
+ if (s->rNToGo == 0) { \
+ s->rNToGo = BZ2_rNums[s->rTPos]; \
+ s->rTPos++; \
+ if (s->rTPos == 512) s->rTPos = 0; \
+ } \
+ s->rNToGo--;
+
+
+
+/*-- Stuff for doing CRCs. --*/
+
+extern UInt32 BZ2_crc32Table[256];
+
+#define BZ_INITIALISE_CRC(crcVar) \
+{ \
+ crcVar = 0xffffffffL; \
+}
+
+#define BZ_FINALISE_CRC(crcVar) \
+{ \
+ crcVar = ~(crcVar); \
+}
+
+#define BZ_UPDATE_CRC(crcVar,cha) \
+{ \
+ crcVar = (crcVar << 8) ^ \
+ BZ2_crc32Table[(crcVar >> 24) ^ \
+ ((UChar)cha)]; \
+}
+
+
+
+/*-- States and modes for compression. --*/
+
+#define BZ_M_IDLE 1
+#define BZ_M_RUNNING 2
+#define BZ_M_FLUSHING 3
+#define BZ_M_FINISHING 4
+
+#define BZ_S_OUTPUT 1
+#define BZ_S_INPUT 2
+
+#define BZ_N_RADIX 2
+#define BZ_N_QSORT 12
+#define BZ_N_SHELL 18
+#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
+
+
+
+
+/*-- Structure holding all the compression-side stuff. --*/
+
+typedef
+ struct {
+ /* pointer back to the struct bz_stream */
+ bz_stream* strm;
+
+ /* mode this stream is in, and whether inputting */
+ /* or outputting data */
+ Int32 mode;
+ Int32 state;
+
+ /* remembers avail_in when flush/finish requested */
+ UInt32 avail_in_expect;
+
+ /* for doing the block sorting */
+ UInt32* arr1;
+ UInt32* arr2;
+ UInt32* ftab;
+ Int32 origPtr;
+
+ /* aliases for arr1 and arr2 */
+ UInt32* ptr;
+ UChar* block;
+ UInt16* mtfv;
+ UChar* zbits;
+
+ /* for deciding when to use the fallback sorting algorithm */
+ Int32 workFactor;
+
+ /* run-length-encoding of the input */
+ UInt32 state_in_ch;
+ Int32 state_in_len;
+ BZ_RAND_DECLS;
+
+ /* input and output limits and current posns */
+ Int32 nblock;
+ Int32 nblockMAX;
+ Int32 numZ;
+ Int32 state_out_pos;
+
+ /* map of bytes used in block */
+ Int32 nInUse;
+ Bool inUse[256];
+ UChar unseqToSeq[256];
+
+ /* the buffer for bit stream creation */
+ UInt32 bsBuff;
+ Int32 bsLive;
+
+ /* block and combined CRCs */
+ UInt32 blockCRC;
+ UInt32 combinedCRC;
+
+ /* misc administratium */
+ Int32 verbosity;
+ Int32 blockNo;
+ Int32 blockSize100k;
+
+ /* stuff for coding the MTF values */
+ Int32 nMTF;
+ Int32 mtfFreq [BZ_MAX_ALPHA_SIZE];
+ UChar selector [BZ_MAX_SELECTORS];
+ UChar selectorMtf[BZ_MAX_SELECTORS];
+
+ UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ /* second dimension: only 3 needed; 4 makes index calculations faster */
+ UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4];
+
+ }
+ EState;
+
+
+
+/*-- externs for compression. --*/
+
+extern void
+BZ2_blockSort ( EState* );
+
+extern void
+BZ2_compressBlock ( EState*, Bool );
+
+extern void
+BZ2_bsInitWrite ( EState* );
+
+extern void
+BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
+
+extern void
+BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
+
+
+
+/*-- states for decompression. --*/
+
+#define BZ_X_IDLE 1
+#define BZ_X_OUTPUT 2
+
+#define BZ_X_MAGIC_1 10
+#define BZ_X_MAGIC_2 11
+#define BZ_X_MAGIC_3 12
+#define BZ_X_MAGIC_4 13
+#define BZ_X_BLKHDR_1 14
+#define BZ_X_BLKHDR_2 15
+#define BZ_X_BLKHDR_3 16
+#define BZ_X_BLKHDR_4 17
+#define BZ_X_BLKHDR_5 18
+#define BZ_X_BLKHDR_6 19
+#define BZ_X_BCRC_1 20
+#define BZ_X_BCRC_2 21
+#define BZ_X_BCRC_3 22
+#define BZ_X_BCRC_4 23
+#define BZ_X_RANDBIT 24
+#define BZ_X_ORIGPTR_1 25
+#define BZ_X_ORIGPTR_2 26
+#define BZ_X_ORIGPTR_3 27
+#define BZ_X_MAPPING_1 28
+#define BZ_X_MAPPING_2 29
+#define BZ_X_SELECTOR_1 30
+#define BZ_X_SELECTOR_2 31
+#define BZ_X_SELECTOR_3 32
+#define BZ_X_CODING_1 33
+#define BZ_X_CODING_2 34
+#define BZ_X_CODING_3 35
+#define BZ_X_MTF_1 36
+#define BZ_X_MTF_2 37
+#define BZ_X_MTF_3 38
+#define BZ_X_MTF_4 39
+#define BZ_X_MTF_5 40
+#define BZ_X_MTF_6 41
+#define BZ_X_ENDHDR_2 42
+#define BZ_X_ENDHDR_3 43
+#define BZ_X_ENDHDR_4 44
+#define BZ_X_ENDHDR_5 45
+#define BZ_X_ENDHDR_6 46
+#define BZ_X_CCRC_1 47
+#define BZ_X_CCRC_2 48
+#define BZ_X_CCRC_3 49
+#define BZ_X_CCRC_4 50
+
+
+
+/*-- Constants for the fast MTF decoder. --*/
+
+#define MTFA_SIZE 4096
+#define MTFL_SIZE 16
+
+
+
+/*-- Structure holding all the decompression-side stuff. --*/
+
+typedef
+ struct {
+ /* pointer back to the struct bz_stream */
+ bz_stream* strm;
+
+ /* state indicator for this stream */
+ Int32 state;
+
+ /* for doing the final run-length decoding */
+ UChar state_out_ch;
+ Int32 state_out_len;
+ Bool blockRandomised;
+ BZ_RAND_DECLS;
+
+ /* the buffer for bit stream reading */
+ UInt32 bsBuff;
+ Int32 bsLive;
+
+ /* misc administratium */
+ Int32 blockSize100k;
+ Bool smallDecompress;
+ Int32 currBlockNo;
+ Int32 verbosity;
+
+ /* for undoing the Burrows-Wheeler transform */
+ Int32 origPtr;
+ UInt32 tPos;
+ Int32 k0;
+ Int32 unzftab[256];
+ Int32 nblock_used;
+ Int32 cftab[257];
+ Int32 cftabCopy[257];
+
+ /* for undoing the Burrows-Wheeler transform (FAST) */
+ UInt32 *tt;
+
+ /* for undoing the Burrows-Wheeler transform (SMALL) */
+ UInt16 *ll16;
+ UChar *ll4;
+
+ /* stored and calculated CRCs */
+ UInt32 storedBlockCRC;
+ UInt32 storedCombinedCRC;
+ UInt32 calculatedBlockCRC;
+ UInt32 calculatedCombinedCRC;
+
+ /* map of bytes used in block */
+ Int32 nInUse;
+ Bool inUse[256];
+ Bool inUse16[16];
+ UChar seqToUnseq[256];
+
+ /* for decoding the MTF values */
+ UChar mtfa [MTFA_SIZE];
+ Int32 mtfbase[256 / MTFL_SIZE];
+ UChar selector [BZ_MAX_SELECTORS];
+ UChar selectorMtf[BZ_MAX_SELECTORS];
+ UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+
+ Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 minLens[BZ_N_GROUPS];
+
+ /* save area for scalars in the main decompress code */
+ Int32 save_i;
+ Int32 save_j;
+ Int32 save_t;
+ Int32 save_alphaSize;
+ Int32 save_nGroups;
+ Int32 save_nSelectors;
+ Int32 save_EOB;
+ Int32 save_groupNo;
+ Int32 save_groupPos;
+ Int32 save_nextSym;
+ Int32 save_nblockMAX;
+ Int32 save_nblock;
+ Int32 save_es;
+ Int32 save_N;
+ Int32 save_curr;
+ Int32 save_zt;
+ Int32 save_zn;
+ Int32 save_zvec;
+ Int32 save_zj;
+ Int32 save_gSel;
+ Int32 save_gMinlen;
+ Int32* save_gLimit;
+ Int32* save_gBase;
+ Int32* save_gPerm;
+
+ }
+ DState;
+
+
+
+/*-- Macros for decompression. --*/
+
+#define BZ_GET_FAST(cccc) \
+ /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+ if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+ s->tPos = s->tt[s->tPos]; \
+ cccc = (UChar)(s->tPos & 0xff); \
+ s->tPos >>= 8;
+
+#define BZ_GET_FAST_C(cccc) \
+ /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+ if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \
+ c_tPos = c_tt[c_tPos]; \
+ cccc = (UChar)(c_tPos & 0xff); \
+ c_tPos >>= 8;
+
+#define SET_LL4(i,n) \
+ { if (((i) & 0x1) == 0) \
+ s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \
+ s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \
+ }
+
+#define GET_LL4(i) \
+ ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
+
+#define SET_LL(i,n) \
+ { s->ll16[i] = (UInt16)(n & 0x0000ffff); \
+ SET_LL4(i, n >> 16); \
+ }
+
+#define GET_LL(i) \
+ (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
+
+#define BZ_GET_SMALL(cccc) \
+ /* c_tPos is unsigned, hence test < 0 is pointless. */ \
+ if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
+ cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \
+ s->tPos = GET_LL(s->tPos);
+
+
+/*-- externs for decompression. --*/
+
+extern Int32
+BZ2_indexIntoF ( Int32, Int32* );
+
+extern Int32
+BZ2_decompress ( DState* );
+
+extern void
+BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
+ Int32, Int32, Int32 );
+
+
+#endif
+
+
+/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
+
+#ifdef BZ_NO_STDIO
+#ifndef NULL
+#define NULL 0
+#endif
+#endif
+
+
+/*-------------------------------------------------------------*/
+/*--- end bzlib_private.h ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore
new file mode 100644
index 000000000..d31404340
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Bzmore wrapped for bzip2,
+# adapted from zmore by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
+
+PATH="/usr/bin:$PATH"; export PATH
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+ *less) more=less ;;
+ *) more=more ;;
+esac
+
+if test "`echo -n a`" = "-n a"; then
+ # looks like a SysV system:
+ n1=''; n2='\c'
+else
+ n1='-n'; n2=''
+fi
+oldtty=`stty -g 2>/dev/null`
+if stty -cbreak 2>/dev/null; then
+ cb='cbreak'; ncb='-cbreak'
+else
+ # 'stty min 1' resets eof to ^a on both SunOS and SysV!
+ cb='min 1 -icanon'; ncb='icanon eof ^d'
+fi
+if test $? -eq 0 -a -n "$oldtty"; then
+ trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
+else
+ trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
+fi
+
+if test $# = 0; then
+ if test -t 0; then
+ echo usage: $prog files...
+ else
+ bzip2 -cdfq | eval $more
+ fi
+else
+ FIRST=1
+ for FILE
+ do
+ if test $FIRST -eq 0; then
+ echo $n1 "--More--(Next file: $FILE)$n2"
+ stty $cb -echo 2>/dev/null
+ ANS=`dd bs=1 count=1 2>/dev/null`
+ stty $ncb echo 2>/dev/null
+ echo " "
+ if test "$ANS" = 'e' -o "$ANS" = 'q'; then
+ exit
+ fi
+ fi
+ if test "$ANS" != 's'; then
+ echo "------> $FILE <------"
+ bzip2 -cdfq "$FILE" | eval $more
+ fi
+ if test -t; then
+ FIRST=0
+ fi
+ done
+fi
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore.1 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore.1
new file mode 100644
index 000000000..b437d3b03
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/bzmore.1
@@ -0,0 +1,152 @@
+.\"Shamelessly copied from zmore.1 by Philippe Troin <phil@fifi.org>
+.\"for Debian GNU/Linux
+.TH BZMORE 1
+.SH NAME
+bzmore, bzless \- file perusal filter for crt viewing of bzip2 compressed text
+.SH SYNOPSIS
+.B bzmore
+[ name ... ]
+.br
+.B bzless
+[ name ... ]
+.SH NOTE
+In the following description,
+.I bzless
+and
+.I less
+can be used interchangeably with
+.I bzmore
+and
+.I more.
+.SH DESCRIPTION
+.I Bzmore
+is a filter which allows examination of compressed or plain text files
+one screenful at a time on a soft-copy terminal.
+.I bzmore
+works on files compressed with
+.I bzip2
+and also on uncompressed files.
+If a file does not exist,
+.I bzmore
+looks for a file of the same name with the addition of a .bz2 suffix.
+.PP
+.I Bzmore
+normally pauses after each screenful, printing --More--
+at the bottom of the screen.
+If the user then types a carriage return, one more line is displayed.
+If the user hits a space,
+another screenful is displayed. Other possibilities are enumerated later.
+.PP
+.I Bzmore
+looks in the file
+.I /etc/termcap
+to determine terminal characteristics,
+and to determine the default window size.
+On a terminal capable of displaying 24 lines,
+the default window size is 22 lines.
+Other sequences which may be typed when
+.I bzmore
+pauses, and their effects, are as follows (\fIi\fP is an optional integer
+argument, defaulting to 1) :
+.PP
+.IP \fIi\|\fP<space>
+display
+.I i
+more lines, (or another screenful if no argument is given)
+.PP
+.IP ^D
+display 11 more lines (a ``scroll'').
+If
+.I i
+is given, then the scroll size is set to \fIi\|\fP.
+.PP
+.IP d
+same as ^D (control-D)
+.PP
+.IP \fIi\|\fPz
+same as typing a space except that \fIi\|\fP, if present, becomes the new
+window size. Note that the window size reverts back to the default at the
+end of the current file.
+.PP
+.IP \fIi\|\fPs
+skip \fIi\|\fP lines and print a screenful of lines
+.PP
+.IP \fIi\|\fPf
+skip \fIi\fP screenfuls and print a screenful of lines
+.PP
+.IP "q or Q"
+quit reading the current file; go on to the next (if any)
+.PP
+.IP "e or q"
+When the prompt --More--(Next file:
+.IR file )
+is printed, this command causes bzmore to exit.
+.PP
+.IP s
+When the prompt --More--(Next file:
+.IR file )
+is printed, this command causes bzmore to skip the next file and continue.
+.PP
+.IP =
+Display the current line number.
+.PP
+.IP \fIi\|\fP/expr
+search for the \fIi\|\fP-th occurrence of the regular expression \fIexpr.\fP
+If the pattern is not found,
+.I bzmore
+goes on to the next file (if any).
+Otherwise, a screenful is displayed, starting two lines before the place
+where the expression was found.
+The user's erase and kill characters may be used to edit the regular
+expression.
+Erasing back past the first column cancels the search command.
+.PP
+.IP \fIi\|\fPn
+search for the \fIi\|\fP-th occurrence of the last regular expression entered.
+.PP
+.IP !command
+invoke a shell with \fIcommand\|\fP.
+The character `!' in "command" are replaced with the
+previous shell command. The sequence "\\!" is replaced by "!".
+.PP
+.IP ":q or :Q"
+quit reading the current file; go on to the next (if any)
+(same as q or Q).
+.PP
+.IP .
+(dot) repeat the previous command.
+.PP
+The commands take effect immediately, i.e., it is not necessary to
+type a carriage return.
+Up to the time when the command character itself is given,
+the user may hit the line kill character to cancel the numerical
+argument being formed.
+In addition, the user may hit the erase character to redisplay the
+--More-- message.
+.PP
+At any time when output is being sent to the terminal, the user can
+hit the quit key (normally control\-\\).
+.I Bzmore
+will stop sending output, and will display the usual --More--
+prompt.
+The user may then enter one of the above commands in the normal manner.
+Unfortunately, some output is lost when this is done, due to the
+fact that any characters waiting in the terminal's output queue
+are flushed when the quit signal occurs.
+.PP
+The terminal is set to
+.I noecho
+mode by this program so that the output can be continuous.
+What you type will thus not show on your terminal, except for the / and !
+commands.
+.PP
+If the standard output is not a teletype, then
+.I bzmore
+acts just like
+.I bzcat,
+except that a header is printed before each file.
+.SH FILES
+.DT
+/etc/termcap Terminal data base
+.SH "SEE ALSO"
+more(1), less(1), bzip2(1), bzdiff(1), bzgrep(1)
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/compress.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/compress.c
new file mode 100644
index 000000000..5dfa00231
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/compress.c
@@ -0,0 +1,672 @@
+
+/*-------------------------------------------------------------*/
+/*--- Compression machinery (not incl block sorting) ---*/
+/*--- compress.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+/* CHANGES
+ 0.9.0 -- original version.
+ 0.9.0a/b -- no changes in this file.
+ 0.9.0c -- changed setting of nGroups in sendMTFValues()
+ so as to do a bit better on small files
+*/
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+/*--- Bit stream I/O ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+void BZ2_bsInitWrite ( EState* s )
+{
+ s->bsLive = 0;
+ s->bsBuff = 0;
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsFinishWrite ( EState* s )
+{
+ while (s->bsLive > 0) {
+ s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);
+ s->numZ++;
+ s->bsBuff <<= 8;
+ s->bsLive -= 8;
+ }
+}
+
+
+/*---------------------------------------------------*/
+#define bsNEEDW(nz) \
+{ \
+ while (s->bsLive >= 8) { \
+ s->zbits[s->numZ] \
+ = (UChar)(s->bsBuff >> 24); \
+ s->numZ++; \
+ s->bsBuff <<= 8; \
+ s->bsLive -= 8; \
+ } \
+}
+
+
+/*---------------------------------------------------*/
+static
+__inline__
+void bsW ( EState* s, Int32 n, UInt32 v )
+{
+ bsNEEDW ( n );
+ s->bsBuff |= (v << (32 - s->bsLive - n));
+ s->bsLive += n;
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsPutUInt32 ( EState* s, UInt32 u )
+{
+ bsW ( s, 8, (u >> 24) & 0xffL );
+ bsW ( s, 8, (u >> 16) & 0xffL );
+ bsW ( s, 8, (u >> 8) & 0xffL );
+ bsW ( s, 8, u & 0xffL );
+}
+
+
+/*---------------------------------------------------*/
+static
+void bsPutUChar ( EState* s, UChar c )
+{
+ bsW( s, 8, (UInt32)c );
+}
+
+
+/*---------------------------------------------------*/
+/*--- The back end proper ---*/
+/*---------------------------------------------------*/
+
+/*---------------------------------------------------*/
+static
+void makeMaps_e ( EState* s )
+{
+ Int32 i;
+ s->nInUse = 0;
+ for (i = 0; i < 256; i++)
+ if (s->inUse[i]) {
+ s->unseqToSeq[i] = s->nInUse;
+ s->nInUse++;
+ }
+}
+
+
+/*---------------------------------------------------*/
+static
+void generateMTFValues ( EState* s )
+{
+ UChar yy[256];
+ Int32 i, j;
+ Int32 zPend;
+ Int32 wr;
+ Int32 EOB;
+
+ /*
+ After sorting (eg, here),
+ s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
+ and
+ ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]
+ holds the original block data.
+
+ The first thing to do is generate the MTF values,
+ and put them in
+ ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].
+ Because there are strictly fewer or equal MTF values
+ than block values, ptr values in this area are overwritten
+ with MTF values only when they are no longer needed.
+
+ The final compressed bitstream is generated into the
+ area starting at
+ (UChar*) (&((UChar*)s->arr2)[s->nblock])
+
+ These storage aliases are set up in bzCompressInit(),
+ except for the last one, which is arranged in
+ compressBlock().
+ */
+ UInt32* ptr = s->ptr;
+ UChar* block = s->block;
+ UInt16* mtfv = s->mtfv;
+
+ makeMaps_e ( s );
+ EOB = s->nInUse+1;
+
+ for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;
+
+ wr = 0;
+ zPend = 0;
+ for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;
+
+ for (i = 0; i < s->nblock; i++) {
+ UChar ll_i;
+ AssertD ( wr <= i, "generateMTFValues(1)" );
+ j = ptr[i]-1; if (j < 0) j += s->nblock;
+ ll_i = s->unseqToSeq[block[j]];
+ AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
+
+ if (yy[0] == ll_i) {
+ zPend++;
+ } else {
+
+ if (zPend > 0) {
+ zPend--;
+ while (True) {
+ if (zPend & 1) {
+ mtfv[wr] = BZ_RUNB; wr++;
+ s->mtfFreq[BZ_RUNB]++;
+ } else {
+ mtfv[wr] = BZ_RUNA; wr++;
+ s->mtfFreq[BZ_RUNA]++;
+ }
+ if (zPend < 2) break;
+ zPend = (zPend - 2) / 2;
+ };
+ zPend = 0;
+ }
+ {
+ register UChar rtmp;
+ register UChar* ryy_j;
+ register UChar rll_i;
+ rtmp = yy[1];
+ yy[1] = yy[0];
+ ryy_j = &(yy[1]);
+ rll_i = ll_i;
+ while ( rll_i != rtmp ) {
+ register UChar rtmp2;
+ ryy_j++;
+ rtmp2 = rtmp;
+ rtmp = *ryy_j;
+ *ryy_j = rtmp2;
+ };
+ yy[0] = rtmp;
+ j = ryy_j - &(yy[0]);
+ mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;
+ }
+
+ }
+ }
+
+ if (zPend > 0) {
+ zPend--;
+ while (True) {
+ if (zPend & 1) {
+ mtfv[wr] = BZ_RUNB; wr++;
+ s->mtfFreq[BZ_RUNB]++;
+ } else {
+ mtfv[wr] = BZ_RUNA; wr++;
+ s->mtfFreq[BZ_RUNA]++;
+ }
+ if (zPend < 2) break;
+ zPend = (zPend - 2) / 2;
+ };
+ zPend = 0;
+ }
+
+ mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;
+
+ s->nMTF = wr;
+}
+
+
+/*---------------------------------------------------*/
+#define BZ_LESSER_ICOST 0
+#define BZ_GREATER_ICOST 15
+
+static
+void sendMTFValues ( EState* s )
+{
+ Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;
+ Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;
+ Int32 nGroups, nBytes;
+
+ /*--
+ UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ is a global since the decoder also needs it.
+
+ Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
+ are also globals only used in this proc.
+ Made global to keep stack frame size small.
+ --*/
+
+
+ UInt16 cost[BZ_N_GROUPS];
+ Int32 fave[BZ_N_GROUPS];
+
+ UInt16* mtfv = s->mtfv;
+
+ if (s->verbosity >= 3)
+ VPrintf3( " %d in block, %d after MTF & 1-2 coding, "
+ "%d+2 syms in use\n",
+ s->nblock, s->nMTF, s->nInUse );
+
+ alphaSize = s->nInUse+2;
+ for (t = 0; t < BZ_N_GROUPS; t++)
+ for (v = 0; v < alphaSize; v++)
+ s->len[t][v] = BZ_GREATER_ICOST;
+
+ /*--- Decide how many coding tables to use ---*/
+ AssertH ( s->nMTF > 0, 3001 );
+ if (s->nMTF < 200) nGroups = 2; else
+ if (s->nMTF < 600) nGroups = 3; else
+ if (s->nMTF < 1200) nGroups = 4; else
+ if (s->nMTF < 2400) nGroups = 5; else
+ nGroups = 6;
+
+ /*--- Generate an initial set of coding tables ---*/
+ {
+ Int32 nPart, remF, tFreq, aFreq;
+
+ nPart = nGroups;
+ remF = s->nMTF;
+ gs = 0;
+ while (nPart > 0) {
+ tFreq = remF / nPart;
+ ge = gs-1;
+ aFreq = 0;
+ while (aFreq < tFreq && ge < alphaSize-1) {
+ ge++;
+ aFreq += s->mtfFreq[ge];
+ }
+
+ if (ge > gs
+ && nPart != nGroups && nPart != 1
+ && ((nGroups-nPart) % 2 == 1)) {
+ aFreq -= s->mtfFreq[ge];
+ ge--;
+ }
+
+ if (s->verbosity >= 3)
+ VPrintf5( " initial group %d, [%d .. %d], "
+ "has %d syms (%4.1f%%)\n",
+ nPart, gs, ge, aFreq,
+ (100.0 * (float)aFreq) / (float)(s->nMTF) );
+
+ for (v = 0; v < alphaSize; v++)
+ if (v >= gs && v <= ge)
+ s->len[nPart-1][v] = BZ_LESSER_ICOST; else
+ s->len[nPart-1][v] = BZ_GREATER_ICOST;
+
+ nPart--;
+ gs = ge+1;
+ remF -= aFreq;
+ }
+ }
+
+ /*---
+ Iterate up to BZ_N_ITERS times to improve the tables.
+ ---*/
+ for (iter = 0; iter < BZ_N_ITERS; iter++) {
+
+ for (t = 0; t < nGroups; t++) fave[t] = 0;
+
+ for (t = 0; t < nGroups; t++)
+ for (v = 0; v < alphaSize; v++)
+ s->rfreq[t][v] = 0;
+
+ /*---
+ Set up an auxiliary length table which is used to fast-track
+ the common case (nGroups == 6).
+ ---*/
+ if (nGroups == 6) {
+ for (v = 0; v < alphaSize; v++) {
+ s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
+ s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
+ s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
+ }
+ }
+
+ nSelectors = 0;
+ totc = 0;
+ gs = 0;
+ while (True) {
+
+ /*--- Set group start & end marks. --*/
+ if (gs >= s->nMTF) break;
+ ge = gs + BZ_G_SIZE - 1;
+ if (ge >= s->nMTF) ge = s->nMTF-1;
+
+ /*--
+ Calculate the cost of this group as coded
+ by each of the coding tables.
+ --*/
+ for (t = 0; t < nGroups; t++) cost[t] = 0;
+
+ if (nGroups == 6 && 50 == ge-gs+1) {
+ /*--- fast track the common case ---*/
+ register UInt32 cost01, cost23, cost45;
+ register UInt16 icv;
+ cost01 = cost23 = cost45 = 0;
+
+# define BZ_ITER(nn) \
+ icv = mtfv[gs+(nn)]; \
+ cost01 += s->len_pack[icv][0]; \
+ cost23 += s->len_pack[icv][1]; \
+ cost45 += s->len_pack[icv][2]; \
+
+ BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4);
+ BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9);
+ BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14);
+ BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19);
+ BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24);
+ BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29);
+ BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34);
+ BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39);
+ BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44);
+ BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49);
+
+# undef BZ_ITER
+
+ cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16;
+ cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16;
+ cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
+
+ } else {
+ /*--- slow version which correctly handles all situations ---*/
+ for (i = gs; i <= ge; i++) {
+ UInt16 icv = mtfv[i];
+ for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
+ }
+ }
+
+ /*--
+ Find the coding table which is best for this group,
+ and record its identity in the selector table.
+ --*/
+ bc = 999999999; bt = -1;
+ for (t = 0; t < nGroups; t++)
+ if (cost[t] < bc) { bc = cost[t]; bt = t; };
+ totc += bc;
+ fave[bt]++;
+ s->selector[nSelectors] = bt;
+ nSelectors++;
+
+ /*--
+ Increment the symbol frequencies for the selected table.
+ --*/
+ if (nGroups == 6 && 50 == ge-gs+1) {
+ /*--- fast track the common case ---*/
+
+# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++
+
+ BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4);
+ BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9);
+ BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14);
+ BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19);
+ BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24);
+ BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29);
+ BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34);
+ BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39);
+ BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44);
+ BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49);
+
+# undef BZ_ITUR
+
+ } else {
+ /*--- slow version which correctly handles all situations ---*/
+ for (i = gs; i <= ge; i++)
+ s->rfreq[bt][ mtfv[i] ]++;
+ }
+
+ gs = ge+1;
+ }
+ if (s->verbosity >= 3) {
+ VPrintf2 ( " pass %d: size is %d, grp uses are ",
+ iter+1, totc/8 );
+ for (t = 0; t < nGroups; t++)
+ VPrintf1 ( "%d ", fave[t] );
+ VPrintf0 ( "\n" );
+ }
+
+ /*--
+ Recompute the tables based on the accumulated frequencies.
+ --*/
+ /* maxLen was changed from 20 to 17 in bzip2-1.0.3. See
+ comment in huffman.c for details. */
+ for (t = 0; t < nGroups; t++)
+ BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]),
+ alphaSize, 17 /*20*/ );
+ }
+
+
+ AssertH( nGroups < 8, 3002 );
+ AssertH( nSelectors < 32768 &&
+ nSelectors <= BZ_MAX_SELECTORS,
+ 3003 );
+
+
+ /*--- Compute MTF values for the selectors. ---*/
+ {
+ UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp;
+ for (i = 0; i < nGroups; i++) pos[i] = i;
+ for (i = 0; i < nSelectors; i++) {
+ ll_i = s->selector[i];
+ j = 0;
+ tmp = pos[j];
+ while ( ll_i != tmp ) {
+ j++;
+ tmp2 = tmp;
+ tmp = pos[j];
+ pos[j] = tmp2;
+ };
+ pos[0] = tmp;
+ s->selectorMtf[i] = j;
+ }
+ };
+
+ /*--- Assign actual codes for the tables. --*/
+ for (t = 0; t < nGroups; t++) {
+ minLen = 32;
+ maxLen = 0;
+ for (i = 0; i < alphaSize; i++) {
+ if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
+ if (s->len[t][i] < minLen) minLen = s->len[t][i];
+ }
+ AssertH ( !(maxLen > 17 /*20*/ ), 3004 );
+ AssertH ( !(minLen < 1), 3005 );
+ BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
+ minLen, maxLen, alphaSize );
+ }
+
+ /*--- Transmit the mapping table. ---*/
+ {
+ Bool inUse16[16];
+ for (i = 0; i < 16; i++) {
+ inUse16[i] = False;
+ for (j = 0; j < 16; j++)
+ if (s->inUse[i * 16 + j]) inUse16[i] = True;
+ }
+
+ nBytes = s->numZ;
+ for (i = 0; i < 16; i++)
+ if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
+
+ for (i = 0; i < 16; i++)
+ if (inUse16[i])
+ for (j = 0; j < 16; j++) {
+ if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
+ }
+
+ if (s->verbosity >= 3)
+ VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes );
+ }
+
+ /*--- Now the selectors. ---*/
+ nBytes = s->numZ;
+ bsW ( s, 3, nGroups );
+ bsW ( s, 15, nSelectors );
+ for (i = 0; i < nSelectors; i++) {
+ for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
+ bsW(s,1,0);
+ }
+ if (s->verbosity >= 3)
+ VPrintf1( "selectors %d, ", s->numZ-nBytes );
+
+ /*--- Now the coding tables. ---*/
+ nBytes = s->numZ;
+
+ for (t = 0; t < nGroups; t++) {
+ Int32 curr = s->len[t][0];
+ bsW ( s, 5, curr );
+ for (i = 0; i < alphaSize; i++) {
+ while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ };
+ while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ };
+ bsW ( s, 1, 0 );
+ }
+ }
+
+ if (s->verbosity >= 3)
+ VPrintf1 ( "code lengths %d, ", s->numZ-nBytes );
+
+ /*--- And finally, the block data proper ---*/
+ nBytes = s->numZ;
+ selCtr = 0;
+ gs = 0;
+ while (True) {
+ if (gs >= s->nMTF) break;
+ ge = gs + BZ_G_SIZE - 1;
+ if (ge >= s->nMTF) ge = s->nMTF-1;
+ AssertH ( s->selector[selCtr] < nGroups, 3006 );
+
+ if (nGroups == 6 && 50 == ge-gs+1) {
+ /*--- fast track the common case ---*/
+ UInt16 mtfv_i;
+ UChar* s_len_sel_selCtr
+ = &(s->len[s->selector[selCtr]][0]);
+ Int32* s_code_sel_selCtr
+ = &(s->code[s->selector[selCtr]][0]);
+
+# define BZ_ITAH(nn) \
+ mtfv_i = mtfv[gs+(nn)]; \
+ bsW ( s, \
+ s_len_sel_selCtr[mtfv_i], \
+ s_code_sel_selCtr[mtfv_i] )
+
+ BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4);
+ BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9);
+ BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14);
+ BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19);
+ BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24);
+ BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29);
+ BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34);
+ BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39);
+ BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44);
+ BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49);
+
+# undef BZ_ITAH
+
+ } else {
+ /*--- slow version which correctly handles all situations ---*/
+ for (i = gs; i <= ge; i++) {
+ bsW ( s,
+ s->len [s->selector[selCtr]] [mtfv[i]],
+ s->code [s->selector[selCtr]] [mtfv[i]] );
+ }
+ }
+
+
+ gs = ge+1;
+ selCtr++;
+ }
+ AssertH( selCtr == nSelectors, 3007 );
+
+ if (s->verbosity >= 3)
+ VPrintf1( "codes %d\n", s->numZ-nBytes );
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_compressBlock ( EState* s, Bool is_last_block )
+{
+ if (s->nblock > 0) {
+
+ BZ_FINALISE_CRC ( s->blockCRC );
+ s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
+ s->combinedCRC ^= s->blockCRC;
+ if (s->blockNo > 1) s->numZ = 0;
+
+ if (s->verbosity >= 2)
+ VPrintf4( " block %d: crc = 0x%08x, "
+ "combined CRC = 0x%08x, size = %d\n",
+ s->blockNo, s->blockCRC, s->combinedCRC, s->nblock );
+
+ BZ2_blockSort ( s );
+ }
+
+ s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]);
+
+ /*-- If this is the first block, create the stream header. --*/
+ if (s->blockNo == 1) {
+ BZ2_bsInitWrite ( s );
+ bsPutUChar ( s, BZ_HDR_B );
+ bsPutUChar ( s, BZ_HDR_Z );
+ bsPutUChar ( s, BZ_HDR_h );
+ bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) );
+ }
+
+ if (s->nblock > 0) {
+
+ bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 );
+ bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 );
+ bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 );
+
+ /*-- Now the block's CRC, so it is in a known place. --*/
+ bsPutUInt32 ( s, s->blockCRC );
+
+ /*--
+ Now a single bit indicating (non-)randomisation.
+ As of version 0.9.5, we use a better sorting algorithm
+ which makes randomisation unnecessary. So always set
+ the randomised bit to 'no'. Of course, the decoder
+ still needs to be able to handle randomised blocks
+ so as to maintain backwards compatibility with
+ older versions of bzip2.
+ --*/
+ bsW(s,1,0);
+
+ bsW ( s, 24, s->origPtr );
+ generateMTFValues ( s );
+ sendMTFValues ( s );
+ }
+
+
+ /*-- If this is the last block, add the stream trailer. --*/
+ if (is_last_block) {
+
+ bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 );
+ bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 );
+ bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 );
+ bsPutUInt32 ( s, s->combinedCRC );
+ if (s->verbosity >= 2)
+ VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC );
+ bsFinishWrite ( s );
+ }
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end compress.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/crctable.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/crctable.c
new file mode 100644
index 000000000..2b33c2535
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/crctable.c
@@ -0,0 +1,104 @@
+
+/*-------------------------------------------------------------*/
+/*--- Table for doing CRCs ---*/
+/*--- crctable.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*--
+ I think this is an implementation of the AUTODIN-II,
+ Ethernet & FDDI 32-bit CRC standard. Vaguely derived
+ from code by Rob Warnock, in Section 51 of the
+ comp.compression FAQ.
+--*/
+
+UInt32 BZ2_crc32Table[256] = {
+
+ /*-- Ugly, innit? --*/
+
+ 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
+ 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
+ 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
+ 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
+ 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
+ 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
+ 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
+ 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
+ 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
+ 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
+ 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
+ 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
+ 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
+ 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
+ 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
+ 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
+ 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
+ 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
+ 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
+ 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
+ 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
+ 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
+ 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
+ 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
+ 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
+ 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
+ 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
+ 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
+ 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
+ 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
+ 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
+ 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
+ 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
+ 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
+ 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
+ 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
+ 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
+ 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
+ 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
+ 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
+ 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
+ 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
+ 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
+ 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
+ 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
+ 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
+ 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
+ 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
+ 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
+ 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
+ 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
+ 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
+ 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
+ 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
+ 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
+ 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
+ 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
+ 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
+ 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
+ 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
+ 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
+ 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
+ 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
+ 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
+};
+
+
+/*-------------------------------------------------------------*/
+/*--- end crctable.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/decompress.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/decompress.c
new file mode 100644
index 000000000..a1a0bac89
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/decompress.c
@@ -0,0 +1,652 @@
+
+/*-------------------------------------------------------------*/
+/*--- Decompression machinery ---*/
+/*--- decompress.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------------*/
+static
+void makeMaps_d ( DState* s )
+{
+ Int32 i;
+ s->nInUse = 0;
+ for (i = 0; i < 256; i++)
+ if (s->inUse[i]) {
+ s->seqToUnseq[s->nInUse] = i;
+ s->nInUse++;
+ }
+}
+
+
+/*---------------------------------------------------*/
+#define RETURN(rrr) \
+ { retVal = rrr; goto save_state_and_return; };
+
+#define GET_BITS(lll,vvv,nnn) \
+ case lll: s->state = lll; \
+ while (True) { \
+ if (s->bsLive >= nnn) { \
+ UInt32 v; \
+ v = (s->bsBuff >> \
+ (s->bsLive-nnn)) & ((1 << nnn)-1); \
+ s->bsLive -= nnn; \
+ vvv = v; \
+ break; \
+ } \
+ if (s->strm->avail_in == 0) RETURN(BZ_OK); \
+ s->bsBuff \
+ = (s->bsBuff << 8) | \
+ ((UInt32) \
+ (*((UChar*)(s->strm->next_in)))); \
+ s->bsLive += 8; \
+ s->strm->next_in++; \
+ s->strm->avail_in--; \
+ s->strm->total_in_lo32++; \
+ if (s->strm->total_in_lo32 == 0) \
+ s->strm->total_in_hi32++; \
+ }
+
+#define GET_UCHAR(lll,uuu) \
+ GET_BITS(lll,uuu,8)
+
+#define GET_BIT(lll,uuu) \
+ GET_BITS(lll,uuu,1)
+
+/*---------------------------------------------------*/
+#define GET_MTF_VAL(label1,label2,lval) \
+{ \
+ if (groupPos == 0) { \
+ groupNo++; \
+ if (groupNo >= nSelectors) \
+ RETURN(BZ_DATA_ERROR); \
+ groupPos = BZ_G_SIZE; \
+ gSel = s->selector[groupNo]; \
+ gMinlen = s->minLens[gSel]; \
+ gLimit = &(s->limit[gSel][0]); \
+ gPerm = &(s->perm[gSel][0]); \
+ gBase = &(s->base[gSel][0]); \
+ } \
+ groupPos--; \
+ zn = gMinlen; \
+ GET_BITS(label1, zvec, zn); \
+ while (1) { \
+ if (zn > 20 /* the longest code */) \
+ RETURN(BZ_DATA_ERROR); \
+ if (zvec <= gLimit[zn]) break; \
+ zn++; \
+ GET_BIT(label2, zj); \
+ zvec = (zvec << 1) | zj; \
+ }; \
+ if (zvec - gBase[zn] < 0 \
+ || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \
+ RETURN(BZ_DATA_ERROR); \
+ lval = gPerm[zvec - gBase[zn]]; \
+}
+
+
+/*---------------------------------------------------*/
+Int32 BZ2_decompress ( DState* s )
+{
+ UChar uc;
+ Int32 retVal;
+ Int32 minLen, maxLen;
+ bz_stream* strm = s->strm;
+
+ /* stuff that needs to be saved/restored */
+ Int32 i;
+ Int32 j;
+ Int32 t;
+ Int32 alphaSize;
+ Int32 nGroups;
+ Int32 nSelectors;
+ Int32 EOB;
+ Int32 groupNo;
+ Int32 groupPos;
+ Int32 nextSym;
+ Int32 nblockMAX;
+ Int32 nblock;
+ Int32 es;
+ Int32 N;
+ Int32 curr;
+ Int32 zt;
+ Int32 zn;
+ Int32 zvec;
+ Int32 zj;
+ Int32 gSel;
+ Int32 gMinlen;
+ Int32* gLimit;
+ Int32* gBase;
+ Int32* gPerm;
+
+ if (s->state == BZ_X_MAGIC_1) {
+ /*initialise the save area*/
+ s->save_i = 0;
+ s->save_j = 0;
+ s->save_t = 0;
+ s->save_alphaSize = 0;
+ s->save_nGroups = 0;
+ s->save_nSelectors = 0;
+ s->save_EOB = 0;
+ s->save_groupNo = 0;
+ s->save_groupPos = 0;
+ s->save_nextSym = 0;
+ s->save_nblockMAX = 0;
+ s->save_nblock = 0;
+ s->save_es = 0;
+ s->save_N = 0;
+ s->save_curr = 0;
+ s->save_zt = 0;
+ s->save_zn = 0;
+ s->save_zvec = 0;
+ s->save_zj = 0;
+ s->save_gSel = 0;
+ s->save_gMinlen = 0;
+ s->save_gLimit = NULL;
+ s->save_gBase = NULL;
+ s->save_gPerm = NULL;
+ }
+
+ /*restore from the save area*/
+ i = s->save_i;
+ j = s->save_j;
+ t = s->save_t;
+ alphaSize = s->save_alphaSize;
+ nGroups = s->save_nGroups;
+ nSelectors = s->save_nSelectors;
+ EOB = s->save_EOB;
+ groupNo = s->save_groupNo;
+ groupPos = s->save_groupPos;
+ nextSym = s->save_nextSym;
+ nblockMAX = s->save_nblockMAX;
+ nblock = s->save_nblock;
+ es = s->save_es;
+ N = s->save_N;
+ curr = s->save_curr;
+ zt = s->save_zt;
+ zn = s->save_zn;
+ zvec = s->save_zvec;
+ zj = s->save_zj;
+ gSel = s->save_gSel;
+ gMinlen = s->save_gMinlen;
+ gLimit = s->save_gLimit;
+ gBase = s->save_gBase;
+ gPerm = s->save_gPerm;
+
+ retVal = BZ_OK;
+
+ switch (s->state) {
+
+ GET_UCHAR(BZ_X_MAGIC_1, uc);
+ if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC);
+
+ GET_UCHAR(BZ_X_MAGIC_2, uc);
+ if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC);
+
+ GET_UCHAR(BZ_X_MAGIC_3, uc)
+ if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC);
+
+ GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
+ if (s->blockSize100k < (BZ_HDR_0 + 1) ||
+ s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);
+ s->blockSize100k -= BZ_HDR_0;
+
+ if (s->smallDecompress) {
+ s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
+ s->ll4 = BZALLOC(
+ ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
+ );
+ if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
+ } else {
+ s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
+ if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
+ }
+
+ GET_UCHAR(BZ_X_BLKHDR_1, uc);
+
+ if (uc == 0x17) goto endhdr_2;
+ if (uc != 0x31) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_BLKHDR_2, uc);
+ if (uc != 0x41) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_BLKHDR_3, uc);
+ if (uc != 0x59) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_BLKHDR_4, uc);
+ if (uc != 0x26) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_BLKHDR_5, uc);
+ if (uc != 0x53) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_BLKHDR_6, uc);
+ if (uc != 0x59) RETURN(BZ_DATA_ERROR);
+
+ s->currBlockNo++;
+ if (s->verbosity >= 2)
+ VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo );
+
+ s->storedBlockCRC = 0;
+ GET_UCHAR(BZ_X_BCRC_1, uc);
+ s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_BCRC_2, uc);
+ s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_BCRC_3, uc);
+ s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_BCRC_4, uc);
+ s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
+
+ GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
+
+ s->origPtr = 0;
+ GET_UCHAR(BZ_X_ORIGPTR_1, uc);
+ s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+ GET_UCHAR(BZ_X_ORIGPTR_2, uc);
+ s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+ GET_UCHAR(BZ_X_ORIGPTR_3, uc);
+ s->origPtr = (s->origPtr << 8) | ((Int32)uc);
+
+ if (s->origPtr < 0)
+ RETURN(BZ_DATA_ERROR);
+ if (s->origPtr > 10 + 100000*s->blockSize100k)
+ RETURN(BZ_DATA_ERROR);
+
+ /*--- Receive the mapping table ---*/
+ for (i = 0; i < 16; i++) {
+ GET_BIT(BZ_X_MAPPING_1, uc);
+ if (uc == 1)
+ s->inUse16[i] = True; else
+ s->inUse16[i] = False;
+ }
+
+ for (i = 0; i < 256; i++) s->inUse[i] = False;
+
+ for (i = 0; i < 16; i++)
+ if (s->inUse16[i])
+ for (j = 0; j < 16; j++) {
+ GET_BIT(BZ_X_MAPPING_2, uc);
+ if (uc == 1) s->inUse[i * 16 + j] = True;
+ }
+ makeMaps_d ( s );
+ if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
+ alphaSize = s->nInUse+2;
+
+ /*--- Now the selectors ---*/
+ GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
+ if (nGroups < 2 || nGroups > BZ_N_GROUPS) RETURN(BZ_DATA_ERROR);
+ GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
+ if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
+ for (i = 0; i < nSelectors; i++) {
+ j = 0;
+ while (True) {
+ GET_BIT(BZ_X_SELECTOR_3, uc);
+ if (uc == 0) break;
+ j++;
+ if (j >= nGroups) RETURN(BZ_DATA_ERROR);
+ }
+ /* Having more than BZ_MAX_SELECTORS doesn't make much sense
+ since they will never be used, but some implementations might
+ "round up" the number of selectors, so just ignore those. */
+ if (i < BZ_MAX_SELECTORS)
+ s->selectorMtf[i] = j;
+ }
+ if (nSelectors > BZ_MAX_SELECTORS)
+ nSelectors = BZ_MAX_SELECTORS;
+
+ /*--- Undo the MTF values for the selectors. ---*/
+ {
+ UChar pos[BZ_N_GROUPS], tmp, v;
+ for (v = 0; v < nGroups; v++) pos[v] = v;
+
+ for (i = 0; i < nSelectors; i++) {
+ v = s->selectorMtf[i];
+ tmp = pos[v];
+ while (v > 0) { pos[v] = pos[v-1]; v--; }
+ pos[0] = tmp;
+ s->selector[i] = tmp;
+ }
+ }
+
+ /*--- Now the coding tables ---*/
+ for (t = 0; t < nGroups; t++) {
+ GET_BITS(BZ_X_CODING_1, curr, 5);
+ for (i = 0; i < alphaSize; i++) {
+ while (True) {
+ if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
+ GET_BIT(BZ_X_CODING_2, uc);
+ if (uc == 0) break;
+ GET_BIT(BZ_X_CODING_3, uc);
+ if (uc == 0) curr++; else curr--;
+ }
+ s->len[t][i] = curr;
+ }
+ }
+
+ /*--- Create the Huffman decoding tables ---*/
+ for (t = 0; t < nGroups; t++) {
+ minLen = 32;
+ maxLen = 0;
+ for (i = 0; i < alphaSize; i++) {
+ if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
+ if (s->len[t][i] < minLen) minLen = s->len[t][i];
+ }
+ BZ2_hbCreateDecodeTables (
+ &(s->limit[t][0]),
+ &(s->base[t][0]),
+ &(s->perm[t][0]),
+ &(s->len[t][0]),
+ minLen, maxLen, alphaSize
+ );
+ s->minLens[t] = minLen;
+ }
+
+ /*--- Now the MTF values ---*/
+
+ EOB = s->nInUse+1;
+ nblockMAX = 100000 * s->blockSize100k;
+ groupNo = -1;
+ groupPos = 0;
+
+ for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
+
+ /*-- MTF init --*/
+ {
+ Int32 ii, jj, kk;
+ kk = MTFA_SIZE-1;
+ for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
+ for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
+ s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
+ kk--;
+ }
+ s->mtfbase[ii] = kk + 1;
+ }
+ }
+ /*-- end MTF init --*/
+
+ nblock = 0;
+ GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
+
+ while (True) {
+
+ if (nextSym == EOB) break;
+
+ if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
+
+ es = -1;
+ N = 1;
+ do {
+ /* Check that N doesn't get too big, so that es doesn't
+ go negative. The maximum value that can be
+ RUNA/RUNB encoded is equal to the block size (post
+ the initial RLE), viz, 900k, so bounding N at 2
+ million should guard against overflow without
+ rejecting any legitimate inputs. */
+ if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR);
+ if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
+ if (nextSym == BZ_RUNB) es = es + (1+1) * N;
+ N = N * 2;
+ GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
+ }
+ while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
+
+ es++;
+ uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
+ s->unzftab[uc] += es;
+
+ if (s->smallDecompress)
+ while (es > 0) {
+ if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+ s->ll16[nblock] = (UInt16)uc;
+ nblock++;
+ es--;
+ }
+ else
+ while (es > 0) {
+ if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+ s->tt[nblock] = (UInt32)uc;
+ nblock++;
+ es--;
+ };
+
+ continue;
+
+ } else {
+
+ if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
+
+ /*-- uc = MTF ( nextSym-1 ) --*/
+ {
+ Int32 ii, jj, kk, pp, lno, off;
+ UInt32 nn;
+ nn = (UInt32)(nextSym - 1);
+
+ if (nn < MTFL_SIZE) {
+ /* avoid general-case expense */
+ pp = s->mtfbase[0];
+ uc = s->mtfa[pp+nn];
+ while (nn > 3) {
+ Int32 z = pp+nn;
+ s->mtfa[(z) ] = s->mtfa[(z)-1];
+ s->mtfa[(z)-1] = s->mtfa[(z)-2];
+ s->mtfa[(z)-2] = s->mtfa[(z)-3];
+ s->mtfa[(z)-3] = s->mtfa[(z)-4];
+ nn -= 4;
+ }
+ while (nn > 0) {
+ s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
+ };
+ s->mtfa[pp] = uc;
+ } else {
+ /* general case */
+ lno = nn / MTFL_SIZE;
+ off = nn % MTFL_SIZE;
+ pp = s->mtfbase[lno] + off;
+ uc = s->mtfa[pp];
+ while (pp > s->mtfbase[lno]) {
+ s->mtfa[pp] = s->mtfa[pp-1]; pp--;
+ };
+ s->mtfbase[lno]++;
+ while (lno > 0) {
+ s->mtfbase[lno]--;
+ s->mtfa[s->mtfbase[lno]]
+ = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
+ lno--;
+ }
+ s->mtfbase[0]--;
+ s->mtfa[s->mtfbase[0]] = uc;
+ if (s->mtfbase[0] == 0) {
+ kk = MTFA_SIZE-1;
+ for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
+ for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
+ s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
+ kk--;
+ }
+ s->mtfbase[ii] = kk + 1;
+ }
+ }
+ }
+ }
+ /*-- end uc = MTF ( nextSym-1 ) --*/
+
+ s->unzftab[s->seqToUnseq[uc]]++;
+ if (s->smallDecompress)
+ s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
+ s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]);
+ nblock++;
+
+ GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
+ continue;
+ }
+ }
+
+ /* Now we know what nblock is, we can do a better sanity
+ check on s->origPtr.
+ */
+ if (s->origPtr < 0 || s->origPtr >= nblock)
+ RETURN(BZ_DATA_ERROR);
+
+ /*-- Set up cftab to facilitate generation of T^(-1) --*/
+ /* Check: unzftab entries in range. */
+ for (i = 0; i <= 255; i++) {
+ if (s->unzftab[i] < 0 || s->unzftab[i] > nblock)
+ RETURN(BZ_DATA_ERROR);
+ }
+ /* Actually generate cftab. */
+ s->cftab[0] = 0;
+ for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
+ for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
+ /* Check: cftab entries in range. */
+ for (i = 0; i <= 256; i++) {
+ if (s->cftab[i] < 0 || s->cftab[i] > nblock) {
+ /* s->cftab[i] can legitimately be == nblock */
+ RETURN(BZ_DATA_ERROR);
+ }
+ }
+ /* Check: cftab entries non-descending. */
+ for (i = 1; i <= 256; i++) {
+ if (s->cftab[i-1] > s->cftab[i]) {
+ RETURN(BZ_DATA_ERROR);
+ }
+ }
+
+ s->state_out_len = 0;
+ s->state_out_ch = 0;
+ BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
+ s->state = BZ_X_OUTPUT;
+ if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
+
+ if (s->smallDecompress) {
+
+ /*-- Make a copy of cftab, used in generation of T --*/
+ for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
+
+ /*-- compute the T vector --*/
+ for (i = 0; i < nblock; i++) {
+ uc = (UChar)(s->ll16[i]);
+ SET_LL(i, s->cftabCopy[uc]);
+ s->cftabCopy[uc]++;
+ }
+
+ /*-- Compute T^(-1) by pointer reversal on T --*/
+ i = s->origPtr;
+ j = GET_LL(i);
+ do {
+ Int32 tmp = GET_LL(j);
+ SET_LL(j, i);
+ i = j;
+ j = tmp;
+ }
+ while (i != s->origPtr);
+
+ s->tPos = s->origPtr;
+ s->nblock_used = 0;
+ if (s->blockRandomised) {
+ BZ_RAND_INIT_MASK;
+ BZ_GET_SMALL(s->k0); s->nblock_used++;
+ BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
+ } else {
+ BZ_GET_SMALL(s->k0); s->nblock_used++;
+ }
+
+ } else {
+
+ /*-- compute the T^(-1) vector --*/
+ for (i = 0; i < nblock; i++) {
+ uc = (UChar)(s->tt[i] & 0xff);
+ s->tt[s->cftab[uc]] |= (i << 8);
+ s->cftab[uc]++;
+ }
+
+ s->tPos = s->tt[s->origPtr] >> 8;
+ s->nblock_used = 0;
+ if (s->blockRandomised) {
+ BZ_RAND_INIT_MASK;
+ BZ_GET_FAST(s->k0); s->nblock_used++;
+ BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
+ } else {
+ BZ_GET_FAST(s->k0); s->nblock_used++;
+ }
+
+ }
+
+ RETURN(BZ_OK);
+
+
+
+ endhdr_2:
+
+ GET_UCHAR(BZ_X_ENDHDR_2, uc);
+ if (uc != 0x72) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_ENDHDR_3, uc);
+ if (uc != 0x45) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_ENDHDR_4, uc);
+ if (uc != 0x38) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_ENDHDR_5, uc);
+ if (uc != 0x50) RETURN(BZ_DATA_ERROR);
+ GET_UCHAR(BZ_X_ENDHDR_6, uc);
+ if (uc != 0x90) RETURN(BZ_DATA_ERROR);
+
+ s->storedCombinedCRC = 0;
+ GET_UCHAR(BZ_X_CCRC_1, uc);
+ s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_CCRC_2, uc);
+ s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_CCRC_3, uc);
+ s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+ GET_UCHAR(BZ_X_CCRC_4, uc);
+ s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
+
+ s->state = BZ_X_IDLE;
+ RETURN(BZ_STREAM_END);
+
+ default: AssertH ( False, 4001 );
+ }
+
+ AssertH ( False, 4002 );
+
+ save_state_and_return:
+
+ s->save_i = i;
+ s->save_j = j;
+ s->save_t = t;
+ s->save_alphaSize = alphaSize;
+ s->save_nGroups = nGroups;
+ s->save_nSelectors = nSelectors;
+ s->save_EOB = EOB;
+ s->save_groupNo = groupNo;
+ s->save_groupPos = groupPos;
+ s->save_nextSym = nextSym;
+ s->save_nblockMAX = nblockMAX;
+ s->save_nblock = nblock;
+ s->save_es = es;
+ s->save_N = N;
+ s->save_curr = curr;
+ s->save_zt = zt;
+ s->save_zn = zn;
+ s->save_zvec = zvec;
+ s->save_zj = zj;
+ s->save_gSel = gSel;
+ s->save_gMinlen = gMinlen;
+ s->save_gLimit = gLimit;
+ s->save_gBase = gBase;
+ s->save_gPerm = gPerm;
+
+ return retVal;
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end decompress.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.c
new file mode 100644
index 000000000..4e27da280
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.c
@@ -0,0 +1,175 @@
+/*
+ minibz2
+ libbz2.dll test program.
+ by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
+ This file is Public Domain. Welcome any email to me.
+
+ usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]
+*/
+
+#define BZ_IMPORT
+#include <stdio.h>
+#include <stdlib.h>
+#include "bzlib.h"
+#ifdef _WIN32
+#include <io.h>
+#endif
+
+
+#ifdef _WIN32
+
+#define BZ2_LIBNAME "libbz2-1.0.2.DLL"
+
+#include <windows.h>
+static int BZ2DLLLoaded = 0;
+static HINSTANCE BZ2DLLhLib;
+int BZ2DLLLoadLibrary(void)
+{
+ HINSTANCE hLib;
+
+ if(BZ2DLLLoaded==1){return 0;}
+ hLib=LoadLibrary(BZ2_LIBNAME);
+ if(hLib == NULL){
+ fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME);
+ return -1;
+ }
+ BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");
+ BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen");
+ BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen");
+ BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread");
+ BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite");
+ BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush");
+ BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose");
+ BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror");
+
+ if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen
+ || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush
+ || !BZ2_bzclose || !BZ2_bzerror) {
+ fprintf(stderr,"GetProcAddress failed.\n");
+ return -1;
+ }
+ BZ2DLLLoaded=1;
+ BZ2DLLhLib=hLib;
+ return 0;
+
+}
+int BZ2DLLFreeLibrary(void)
+{
+ if(BZ2DLLLoaded==0){return 0;}
+ FreeLibrary(BZ2DLLhLib);
+ BZ2DLLLoaded=0;
+}
+#endif /* WIN32 */
+
+void usage(void)
+{
+ puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]");
+}
+
+int main(int argc,char *argv[])
+{
+ int decompress = 0;
+ int level = 9;
+ char *fn_r = NULL;
+ char *fn_w = NULL;
+
+#ifdef _WIN32
+ if(BZ2DLLLoadLibrary()<0){
+ fprintf(stderr,"Loading of %s failed. Giving up.\n", BZ2_LIBNAME);
+ exit(1);
+ }
+ printf("Loading of %s succeeded. Library version is %s.\n",
+ BZ2_LIBNAME, BZ2_bzlibVersion() );
+#endif
+ while(++argv,--argc){
+ if(**argv =='-' || **argv=='/'){
+ char *p;
+
+ for(p=*argv+1;*p;p++){
+ if(*p=='d'){
+ decompress = 1;
+ }else if('1'<=*p && *p<='9'){
+ level = *p - '0';
+ }else{
+ usage();
+ exit(1);
+ }
+ }
+ }else{
+ break;
+ }
+ }
+ if(argc>=1){
+ fn_r = *argv;
+ argc--;argv++;
+ }else{
+ fn_r = NULL;
+ }
+ if(argc>=1){
+ fn_w = *argv;
+ argc--;argv++;
+ }else{
+ fn_w = NULL;
+ }
+ {
+ int len;
+ char buff[0x1000];
+ char mode[10];
+
+ if(decompress){
+ BZFILE *BZ2fp_r = NULL;
+ FILE *fp_w = NULL;
+
+ if(fn_w){
+ if((fp_w = fopen(fn_w,"wb"))==NULL){
+ printf("can't open [%s]\n",fn_w);
+ perror("reason:");
+ exit(1);
+ }
+ }else{
+ fp_w = stdout;
+ }
+ if((fn_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL)
+ || (fn_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){
+ printf("can't bz2openstream\n");
+ exit(1);
+ }
+ while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){
+ fwrite(buff,1,len,fp_w);
+ }
+ BZ2_bzclose(BZ2fp_r);
+ if(fp_w != stdout) fclose(fp_w);
+ }else{
+ BZFILE *BZ2fp_w = NULL;
+ FILE *fp_r = NULL;
+
+ if(fn_r){
+ if((fp_r = fopen(fn_r,"rb"))==NULL){
+ printf("can't open [%s]\n",fn_r);
+ perror("reason:");
+ exit(1);
+ }
+ }else{
+ fp_r = stdin;
+ }
+ mode[0]='w';
+ mode[1] = '0' + level;
+ mode[2] = '\0';
+
+ if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL)
+ || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){
+ printf("can't bz2openstream\n");
+ exit(1);
+ }
+ while((len=fread(buff,1,0x1000,fp_r))>0){
+ BZ2_bzwrite(BZ2fp_w,buff,len);
+ }
+ BZ2_bzclose(BZ2fp_w);
+ if(fp_r!=stdin)fclose(fp_r);
+ }
+ }
+#ifdef _WIN32
+ BZ2DLLFreeLibrary();
+#endif
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.dsp b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.dsp
new file mode 100644
index 000000000..04819a495
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/dlltest.dsp
@@ -0,0 +1,93 @@
+# Microsoft Developer Studio Project File - Name="dlltest" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=dlltest - Win32 Debug
+!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄÞ‚·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄÞ‚ðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢
+!MESSAGE
+!MESSAGE NMAKE /f "dlltest.mak".
+!MESSAGE
+!MESSAGE NMAKE ‚ÌŽÀsŽž‚É\¬‚ðŽw’è‚Å‚«‚Ü‚·
+!MESSAGE ºÏÝÄÞ ×²Ýã‚ÅϸۂÌÝ’è‚ð’è‹`‚µ‚Ü‚·B—á:
+!MESSAGE
+!MESSAGE NMAKE /f "dlltest.mak" CFG="dlltest - Win32 Debug"
+!MESSAGE
+!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE
+!MESSAGE "dlltest - Win32 Release" ("Win32 (x86) Console Application" —p)
+!MESSAGE "dlltest - Win32 Debug" ("Win32 (x86) Console Application" —p)
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "dlltest - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"minibz2.exe"
+
+!ELSEIF "$(CFG)" == "dlltest - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "dlltest_"
+# PROP BASE Intermediate_Dir "dlltest_"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "dlltest_"
+# PROP Intermediate_Dir "dlltest_"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"minibz2.exe" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "dlltest - Win32 Release"
+# Name "dlltest - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\bzlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\dlltest.c
+# End Source File
+# End Target
+# End Project
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/entities.xml b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/entities.xml
new file mode 100644
index 000000000..dd699246f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/entities.xml
@@ -0,0 +1,10 @@
+<!-- misc. strings -->
+<!ENTITY bz-url "https://sourceware.org/bzip2/">
+<!ENTITY bz-author "jseward@acm.org">
+<!ENTITY bz-email "bzip2-devel@sourceware.org">
+<!ENTITY bz-lifespan "1996-2019">
+
+<!ENTITY bz-version "1.0.8">
+<!ENTITY bz-date "13 July 2019">
+
+<!ENTITY manual-title "bzip2 Manual">
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/format.pl b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/format.pl
new file mode 100644
index 000000000..2734dede1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/format.pl
@@ -0,0 +1,68 @@
+#!/usr/bin/perl -w
+#
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.8 of 13 July 2019
+# Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+#
+use strict;
+
+# get command line values:
+if ( $#ARGV !=1 ) {
+ die "Usage: $0 xml_infile xml_outfile\n";
+}
+
+my $infile = shift;
+# check infile exists
+die "Can't find file \"$infile\""
+ unless -f $infile;
+# check we can read infile
+if (! -r $infile) {
+ die "Can't read input $infile\n";
+}
+# check we can open infile
+open( INFILE,"<$infile" ) or
+ die "Can't input $infile $!";
+
+#my $outfile = 'fmt-manual.xml';
+my $outfile = shift;
+#print "Infile: $infile, Outfile: $outfile\n";
+# check we can write to outfile
+open( OUTFILE,">$outfile" ) or
+ die "Can't output $outfile $! for writing";
+
+my ($prev, $curr, $str);
+$prev = ''; $curr = '';
+while ( <INFILE> ) {
+
+ print OUTFILE $prev;
+ $prev = $curr;
+ $curr = $_;
+ $str = '';
+
+ if ( $prev =~ /<programlisting>$|<screen>$/ ) {
+ chomp $prev;
+ $curr = join( '', $prev, "<![CDATA[", $curr );
+ $prev = '';
+ next;
+ }
+ elsif ( $curr =~ /<\/programlisting>|<\/screen>/ ) {
+ chomp $prev;
+ $curr = join( '', $prev, "]]>", $curr );
+ $prev = '';
+ next;
+ }
+}
+print OUTFILE $curr;
+close INFILE;
+close OUTFILE;
+exit;
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/huffman.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/huffman.c
new file mode 100644
index 000000000..43a1899e4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/huffman.c
@@ -0,0 +1,205 @@
+
+/*-------------------------------------------------------------*/
+/*--- Huffman coding low-level stuff ---*/
+/*--- huffman.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+/*---------------------------------------------------*/
+#define WEIGHTOF(zz0) ((zz0) & 0xffffff00)
+#define DEPTHOF(zz1) ((zz1) & 0x000000ff)
+#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3))
+
+#define ADDWEIGHTS(zw1,zw2) \
+ (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \
+ (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2)))
+
+#define UPHEAP(z) \
+{ \
+ Int32 zz, tmp; \
+ zz = z; tmp = heap[zz]; \
+ while (weight[tmp] < weight[heap[zz >> 1]]) { \
+ heap[zz] = heap[zz >> 1]; \
+ zz >>= 1; \
+ } \
+ heap[zz] = tmp; \
+}
+
+#define DOWNHEAP(z) \
+{ \
+ Int32 zz, yy, tmp; \
+ zz = z; tmp = heap[zz]; \
+ while (True) { \
+ yy = zz << 1; \
+ if (yy > nHeap) break; \
+ if (yy < nHeap && \
+ weight[heap[yy+1]] < weight[heap[yy]]) \
+ yy++; \
+ if (weight[tmp] < weight[heap[yy]]) break; \
+ heap[zz] = heap[yy]; \
+ zz = yy; \
+ } \
+ heap[zz] = tmp; \
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbMakeCodeLengths ( UChar *len,
+ Int32 *freq,
+ Int32 alphaSize,
+ Int32 maxLen )
+{
+ /*--
+ Nodes and heap entries run from 1. Entry 0
+ for both the heap and nodes is a sentinel.
+ --*/
+ Int32 nNodes, nHeap, n1, n2, i, j, k;
+ Bool tooLong;
+
+ Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ];
+ Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
+ Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ];
+
+ for (i = 0; i < alphaSize; i++)
+ weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
+
+ while (True) {
+
+ nNodes = alphaSize;
+ nHeap = 0;
+
+ heap[0] = 0;
+ weight[0] = 0;
+ parent[0] = -2;
+
+ for (i = 1; i <= alphaSize; i++) {
+ parent[i] = -1;
+ nHeap++;
+ heap[nHeap] = i;
+ UPHEAP(nHeap);
+ }
+
+ AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
+
+ while (nHeap > 1) {
+ n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
+ n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
+ nNodes++;
+ parent[n1] = parent[n2] = nNodes;
+ weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]);
+ parent[nNodes] = -1;
+ nHeap++;
+ heap[nHeap] = nNodes;
+ UPHEAP(nHeap);
+ }
+
+ AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 );
+
+ tooLong = False;
+ for (i = 1; i <= alphaSize; i++) {
+ j = 0;
+ k = i;
+ while (parent[k] >= 0) { k = parent[k]; j++; }
+ len[i-1] = j;
+ if (j > maxLen) tooLong = True;
+ }
+
+ if (! tooLong) break;
+
+ /* 17 Oct 04: keep-going condition for the following loop used
+ to be 'i < alphaSize', which missed the last element,
+ theoretically leading to the possibility of the compressor
+ looping. However, this count-scaling step is only needed if
+ one of the generated Huffman code words is longer than
+ maxLen, which up to and including version 1.0.2 was 20 bits,
+ which is extremely unlikely. In version 1.0.3 maxLen was
+ changed to 17 bits, which has minimal effect on compression
+ ratio, but does mean this scaling step is used from time to
+ time, enough to verify that it works.
+
+ This means that bzip2-1.0.3 and later will only produce
+ Huffman codes with a maximum length of 17 bits. However, in
+ order to preserve backwards compatibility with bitstreams
+ produced by versions pre-1.0.3, the decompressor must still
+ handle lengths of up to 20. */
+
+ for (i = 1; i <= alphaSize; i++) {
+ j = weight[i] >> 8;
+ j = 1 + (j / 2);
+ weight[i] = j << 8;
+ }
+ }
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbAssignCodes ( Int32 *code,
+ UChar *length,
+ Int32 minLen,
+ Int32 maxLen,
+ Int32 alphaSize )
+{
+ Int32 n, vec, i;
+
+ vec = 0;
+ for (n = minLen; n <= maxLen; n++) {
+ for (i = 0; i < alphaSize; i++)
+ if (length[i] == n) { code[i] = vec; vec++; };
+ vec <<= 1;
+ }
+}
+
+
+/*---------------------------------------------------*/
+void BZ2_hbCreateDecodeTables ( Int32 *limit,
+ Int32 *base,
+ Int32 *perm,
+ UChar *length,
+ Int32 minLen,
+ Int32 maxLen,
+ Int32 alphaSize )
+{
+ Int32 pp, i, j, vec;
+
+ pp = 0;
+ for (i = minLen; i <= maxLen; i++)
+ for (j = 0; j < alphaSize; j++)
+ if (length[j] == i) { perm[pp] = j; pp++; };
+
+ for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0;
+ for (i = 0; i < alphaSize; i++) base[length[i]+1]++;
+
+ for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];
+
+ for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0;
+ vec = 0;
+
+ for (i = minLen; i <= maxLen; i++) {
+ vec += (base[i+1] - base[i]);
+ limit[i] = vec-1;
+ vec <<= 1;
+ }
+ for (i = minLen + 1; i <= maxLen; i++)
+ base[i] = ((limit[i-1] + 1) << 1) - base[i];
+}
+
+
+/*-------------------------------------------------------------*/
+/*--- end huffman.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.def b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.def
new file mode 100644
index 000000000..4f83fcc61
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.def
@@ -0,0 +1,27 @@
+LIBRARY LIBBZ2
+DESCRIPTION "libbzip2: library for data compression"
+EXPORTS
+ BZ2_bzCompressInit
+ BZ2_bzCompress
+ BZ2_bzCompressEnd
+ BZ2_bzDecompressInit
+ BZ2_bzDecompress
+ BZ2_bzDecompressEnd
+ BZ2_bzReadOpen
+ BZ2_bzReadClose
+ BZ2_bzReadGetUnused
+ BZ2_bzRead
+ BZ2_bzWriteOpen
+ BZ2_bzWrite
+ BZ2_bzWriteClose
+ BZ2_bzWriteClose64
+ BZ2_bzBuffToBuffCompress
+ BZ2_bzBuffToBuffDecompress
+ BZ2_bzlibVersion
+ BZ2_bzopen
+ BZ2_bzdopen
+ BZ2_bzread
+ BZ2_bzwrite
+ BZ2_bzflush
+ BZ2_bzclose
+ BZ2_bzerror
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.dsp b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.dsp
new file mode 100644
index 000000000..06c1d3762
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/libbz2.dsp
@@ -0,0 +1,130 @@
+# Microsoft Developer Studio Project File - Name="libbz2" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=libbz2 - Win32 Debug
+!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄÞ‚·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B
+!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄÞ‚ðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢
+!MESSAGE
+!MESSAGE NMAKE /f "libbz2.mak".
+!MESSAGE
+!MESSAGE NMAKE ‚ÌŽÀsŽž‚É\¬‚ðŽw’è‚Å‚«‚Ü‚·
+!MESSAGE ºÏÝÄÞ ×²Ýã‚ÅϸۂÌÝ’è‚ð’è‹`‚µ‚Ü‚·B—á:
+!MESSAGE
+!MESSAGE NMAKE /f "libbz2.mak" CFG="libbz2 - Win32 Debug"
+!MESSAGE
+!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE
+!MESSAGE "libbz2 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE "libbz2 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "libbz2 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"libbz2.dll"
+
+!ELSEIF "$(CFG)" == "libbz2 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"libbz2.dll" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "libbz2 - Win32 Release"
+# Name "libbz2 - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\blocksort.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\bzlib_private.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\compress.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\crctable.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\decompress.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\huffman.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\libbz2.def
+# End Source File
+# Begin Source File
+
+SOURCE=.\randtable.c
+# End Source File
+# End Target
+# End Project
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/makefile.msc b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/makefile.msc
new file mode 100644
index 000000000..6a628a753
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/makefile.msc
@@ -0,0 +1,63 @@
+# Makefile for Microsoft Visual C++ 6.0
+# usage: nmake -f makefile.msc
+# K.M. Syring (syring@gsf.de)
+# Fixed up by JRS for bzip2-0.9.5d release.
+
+CC=cl
+CFLAGS= -DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 -nologo
+
+OBJS= blocksort.obj \
+ huffman.obj \
+ crctable.obj \
+ randtable.obj \
+ compress.obj \
+ decompress.obj \
+ bzlib.obj
+
+all: lib bzip2 test
+
+bzip2: lib
+ $(CC) $(CFLAGS) -o bzip2 bzip2.c libbz2.lib setargv.obj
+ $(CC) $(CFLAGS) -o bzip2recover bzip2recover.c
+
+lib: $(OBJS)
+ lib /out:libbz2.lib $(OBJS)
+
+test: bzip2
+ type words1
+ .\\bzip2 -1 < sample1.ref > sample1.rb2
+ .\\bzip2 -2 < sample2.ref > sample2.rb2
+ .\\bzip2 -3 < sample3.ref > sample3.rb2
+ .\\bzip2 -d < sample1.bz2 > sample1.tst
+ .\\bzip2 -d < sample2.bz2 > sample2.tst
+ .\\bzip2 -ds < sample3.bz2 > sample3.tst
+ @echo All six of the fc's should find no differences.
+ @echo If fc finds an error on sample3.bz2, this could be
+ @echo because WinZip's 'TAR file smart CR/LF conversion'
+ @echo is too clever for its own good. Disable this option.
+ @echo The correct size for sample3.ref is 120,244. If it
+ @echo is 150,251, WinZip has messed it up.
+ fc sample1.bz2 sample1.rb2
+ fc sample2.bz2 sample2.rb2
+ fc sample3.bz2 sample3.rb2
+ fc sample1.tst sample1.ref
+ fc sample2.tst sample2.ref
+ fc sample3.tst sample3.ref
+
+
+
+clean:
+ del *.obj
+ del libbz2.lib
+ del bzip2.exe
+ del bzip2recover.exe
+ del sample1.rb2
+ del sample2.rb2
+ del sample3.rb2
+ del sample1.tst
+ del sample2.tst
+ del sample3.tst
+
+.c.obj:
+ $(CC) $(CFLAGS) -c $*.c -o $*.obj
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.html b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.html
new file mode 100644
index 000000000..2afa6780b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.html
@@ -0,0 +1,2541 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>bzip2 and libbzip2, version 1.0.8</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="stylesheet" type="text/css" href="bzip.css" />
+ <style type="text/css" media="screen">/* Colours:
+#74240f dark brown h1, h2, h3, h4
+#336699 medium blue links
+#339999 turquoise link hover colour
+#202020 almost black general text
+#761596 purple md5sum text
+#626262 dark gray pre border
+#eeeeee very light gray pre background
+#f2f2f9 very light blue nav table background
+#3366cc medium blue nav table border
+*/
+
+a, a:link, a:visited, a:active { color: #336699; }
+a:hover { color: #339999; }
+
+body { font: 80%/126% sans-serif; }
+h1, h2, h3, h4 { color: #74240f; }
+
+dt { color: #336699; font-weight: bold }
+dd {
+ margin-left: 1.5em;
+ padding-bottom: 0.8em;
+}
+
+/* -- ruler -- */
+div.hr_blue {
+ height: 3px;
+ background:#ffffff url("../images/hr_blue.png") repeat-x; }
+div.hr_blue hr { display:none; }
+
+/* release styles */
+#release p { margin-top: 0.4em; }
+#release .md5sum { color: #761596; }
+
+
+/* ------ styles for docs|manuals|howto ------ */
+/* -- lists -- */
+ul {
+ margin: 0px 4px 16px 16px;
+ padding: 0px;
+ list-style: url("../images/li-blue.png");
+}
+ul li {
+ margin-bottom: 10px;
+}
+ul ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin-left: 0px;
+}
+
+/* header / footer nav tables */
+table.nav {
+ border: solid 1px #3366cc;
+ background: #f2f2f9;
+ background-color: #f2f2f9;
+ margin-bottom: 0.5em;
+}
+/* don't have underlined links in chunked nav menus */
+table.nav a { text-decoration: none; }
+table.nav a:hover { text-decoration: underline; }
+table.nav td { font-size: 85%; }
+
+code, tt, pre { font-size: 120%; }
+code, tt { color: #761596; }
+
+div.literallayout, pre.programlisting, pre.screen {
+ color: #000000;
+ padding: 0.5em;
+ background: #eeeeee;
+ border: 1px solid #626262;
+ background-color: #eeeeee;
+ margin: 4px 0px 4px 0px;
+}
+</style>
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book">
+<div class="titlepage">
+<div>
+<div><h1 class="title">
+<a name="userman"></a>bzip2 and libbzip2, version 1.0.8</h1></div>
+<div><h2 class="subtitle">A program and library for data compression</h2></div>
+<div><div class="authorgroup"><div class="author">
+<h3 class="author">
+<span class="firstname">Julian</span> <span class="surname">Seward</span>
+</h3>
+<div class="affiliation"><span class="orgname">https://sourceware.org/bzip2/<br></span></div>
+</div></div></div>
+<div><p class="releaseinfo">Version 1.0.8 of 13 July 2019</p></div>
+<div><p class="copyright">Copyright © 1996-2019 Julian Seward</p></div>
+<div><div class="legalnotice">
+<a name="legal"></a><p>This program, <code class="computeroutput">bzip2</code>, the
+ associated library <code class="computeroutput">libbzip2</code>, and
+ all documentation, are copyright © 1996-2019 Julian Seward.
+ All rights reserved.</p>
+<p>Redistribution and use in source and binary forms, with
+ or without modification, are permitted provided that the
+ following conditions are met:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p>Redistributions of source code must retain the
+ above copyright notice, this list of conditions and the
+ following disclaimer.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The origin of this software must not be
+ misrepresented; you must not claim that you wrote the original
+ software. If you use this software in a product, an
+ acknowledgment in the product documentation would be
+ appreciated but is not required.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Altered source versions must be plainly marked
+ as such, and must not be misrepresented as being the original
+ software.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.</p></li>
+</ul></div>
+<p>THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.</p>
+<p>PATENTS: To the best of my knowledge,
+ <code class="computeroutput">bzip2</code> and
+ <code class="computeroutput">libbzip2</code> do not use any patented
+ algorithms. However, I do not have the resources to carry
+ out a patent search. Therefore I cannot give any guarantee of
+ the above statement.
+ </p>
+</div></div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="chapter"><a href="#intro">1. Introduction</a></span></dt>
+<dt><span class="chapter"><a href="#using">2. How to use bzip2</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#name">2.1. NAME</a></span></dt>
+<dt><span class="sect1"><a href="#synopsis">2.2. SYNOPSIS</a></span></dt>
+<dt><span class="sect1"><a href="#description">2.3. DESCRIPTION</a></span></dt>
+<dt><span class="sect1"><a href="#options">2.4. OPTIONS</a></span></dt>
+<dt><span class="sect1"><a href="#memory-management">2.5. MEMORY MANAGEMENT</a></span></dt>
+<dt><span class="sect1"><a href="#recovering">2.6. RECOVERING DATA FROM DAMAGED FILES</a></span></dt>
+<dt><span class="sect1"><a href="#performance">2.7. PERFORMANCE NOTES</a></span></dt>
+<dt><span class="sect1"><a href="#caveats">2.8. CAVEATS</a></span></dt>
+<dt><span class="sect1"><a href="#author">2.9. AUTHOR</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="#libprog">3.
+Programming with <code class="computeroutput">libbzip2</code>
+</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#top-level">3.1. Top-level structure</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#ll-summary">3.1.1. Low-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#hl-summary">3.1.2. High-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#util-fns-summary">3.1.3. Utility functions summary</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#err-handling">3.2. Error handling</a></span></dt>
+<dt><span class="sect1"><a href="#low-level">3.3. Low-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzcompress-init">3.3.1. BZ2_bzCompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress">3.3.2. BZ2_bzCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress-end">3.3.3. BZ2_bzCompressEnd</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-init">3.3.4. BZ2_bzDecompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress">3.3.5. BZ2_bzDecompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-end">3.3.6. BZ2_bzDecompressEnd</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#hl-interface">3.4. High-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzreadopen">3.4.1. BZ2_bzReadOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzread">3.4.2. BZ2_bzRead</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadgetunused">3.4.3. BZ2_bzReadGetUnused</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadclose">3.4.4. BZ2_bzReadClose</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteopen">3.4.5. BZ2_bzWriteOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzwrite">3.4.6. BZ2_bzWrite</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteclose">3.4.7. BZ2_bzWriteClose</a></span></dt>
+<dt><span class="sect2"><a href="#embed">3.4.8. Handling embedded compressed data streams</a></span></dt>
+<dt><span class="sect2"><a href="#std-rdwr">3.4.9. Standard file-reading/writing code</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#util-fns">3.5. Utility functions</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzbufftobuffcompress">3.5.1. BZ2_bzBuffToBuffCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzbufftobuffdecompress">3.5.2. BZ2_bzBuffToBuffDecompress</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#zlib-compat">3.6. zlib compatibility functions</a></span></dt>
+<dt><span class="sect1"><a href="#stdio-free">3.7. Using the library in a stdio-free environment</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#stdio-bye">3.7.1. Getting rid of stdio</a></span></dt>
+<dt><span class="sect2"><a href="#critical-error">3.7.2. Critical error handling</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#win-dll">3.8. Making a Windows DLL</a></span></dt>
+</dl></dd>
+<dt><span class="chapter"><a href="#misc">4. Miscellanea</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="#limits">4.1. Limitations of the compressed file format</a></span></dt>
+<dt><span class="sect1"><a href="#port-issues">4.2. Portability issues</a></span></dt>
+<dt><span class="sect1"><a href="#bugs">4.3. Reporting bugs</a></span></dt>
+<dt><span class="sect1"><a href="#package">4.4. Did you get the right package?</a></span></dt>
+<dt><span class="sect1"><a href="#reading">4.5. Further Reading</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="intro"></a>1. Introduction</h1></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files
+using the Burrows-Wheeler block-sorting text compression
+algorithm, and Huffman coding. Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</p>
+<p><code class="computeroutput">bzip2</code> is built on top of
+<code class="computeroutput">libbzip2</code>, a flexible library for
+handling compressed data in the
+<code class="computeroutput">bzip2</code> format. This manual
+describes both how to use the program and how to work with the
+library interface. Most of the manual is devoted to this
+library, not the program, which is good news if your interest is
+only in the program.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a> describes how to use
+ <code class="computeroutput">bzip2</code>; this is the only part
+ you need to read if you just want to know how to operate the
+ program.</p></li>
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#libprog" title="3.  Programming with libbzip2">Programming with libbzip2</a> describes the
+ programming interfaces in detail, and</p></li>
+<li class="listitem" style="list-style-type: disc"><p><a class="xref" href="#misc" title="4. Miscellanea">Miscellanea</a> records some
+ miscellaneous notes which I thought ought to be recorded
+ somewhere.</p></li>
+</ul></div>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="using"></a>2. How to use bzip2</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="sect1"><a href="#name">2.1. NAME</a></span></dt>
+<dt><span class="sect1"><a href="#synopsis">2.2. SYNOPSIS</a></span></dt>
+<dt><span class="sect1"><a href="#description">2.3. DESCRIPTION</a></span></dt>
+<dt><span class="sect1"><a href="#options">2.4. OPTIONS</a></span></dt>
+<dt><span class="sect1"><a href="#memory-management">2.5. MEMORY MANAGEMENT</a></span></dt>
+<dt><span class="sect1"><a href="#recovering">2.6. RECOVERING DATA FROM DAMAGED FILES</a></span></dt>
+<dt><span class="sect1"><a href="#performance">2.7. PERFORMANCE NOTES</a></span></dt>
+<dt><span class="sect1"><a href="#caveats">2.8. CAVEATS</a></span></dt>
+<dt><span class="sect1"><a href="#author">2.9. AUTHOR</a></span></dt>
+</dl>
+</div>
+<p>This chapter contains a copy of the
+<code class="computeroutput">bzip2</code> man page, and nothing
+else.</p>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="name"></a>2.1. NAME</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2</code>,
+ <code class="computeroutput">bunzip2</code> - a block-sorting file
+ compressor, v1.0.8</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzcat</code> -
+ decompresses files to stdout</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2recover</code> -
+ recovers data from damaged bzip2 files</p></li>
+</ul></div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="synopsis"></a>2.2. SYNOPSIS</h2></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2</code> [
+ -cdfkqstvzVL123456789 ] [ filenames ... ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bunzip2</code> [
+ -fkvsVL ] [ filenames ... ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzcat</code> [ -s ] [
+ filenames ... ]</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2recover</code>
+ filename</p></li>
+</ul></div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="description"></a>2.3. DESCRIPTION</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files
+using the Burrows-Wheeler block sorting text compression
+algorithm, and Huffman coding. Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</p>
+<p>The command-line options are deliberately very similar to
+those of GNU <code class="computeroutput">gzip</code>, but they are
+not identical.</p>
+<p><code class="computeroutput">bzip2</code> expects a list of
+file names to accompany the command-line flags. Each file is
+replaced by a compressed version of itself, with the name
+<code class="computeroutput">original_name.bz2</code>. Each
+compressed file has the same modification date, permissions, and,
+when possible, ownership as the corresponding original, so that
+these properties can be correctly restored at decompression time.
+File name handling is naive in the sense that there is no
+mechanism for preserving original file names, permissions,
+ownerships or dates in filesystems which lack these concepts, or
+have serious file name length restrictions, such as
+MS-DOS.</p>
+<p><code class="computeroutput">bzip2</code> and
+<code class="computeroutput">bunzip2</code> will by default not
+overwrite existing files. If you want this to happen, specify
+the <code class="computeroutput">-f</code> flag.</p>
+<p>If no file names are specified,
+<code class="computeroutput">bzip2</code> compresses from standard
+input to standard output. In this case,
+<code class="computeroutput">bzip2</code> will decline to write
+compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.</p>
+<p><code class="computeroutput">bunzip2</code> (or
+<code class="computeroutput">bzip2 -d</code>) decompresses all
+specified files. Files which were not created by
+<code class="computeroutput">bzip2</code> will be detected and
+ignored, and a warning issued.
+<code class="computeroutput">bzip2</code> attempts to guess the
+filename for the decompressed file from that of the compressed
+file as follows:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.bz2 </code>
+ becomes
+ <code class="computeroutput">filename</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.bz </code>
+ becomes
+ <code class="computeroutput">filename</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.tbz2</code>
+ becomes
+ <code class="computeroutput">filename.tar</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">filename.tbz </code>
+ becomes
+ <code class="computeroutput">filename.tar</code></p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">anyothername </code>
+ becomes
+ <code class="computeroutput">anyothername.out</code></p></li>
+</ul></div>
+<p>If the file does not end in one of the recognised endings,
+<code class="computeroutput">.bz2</code>,
+<code class="computeroutput">.bz</code>,
+<code class="computeroutput">.tbz2</code> or
+<code class="computeroutput">.tbz</code>,
+<code class="computeroutput">bzip2</code> complains that it cannot
+guess the name of the original file, and uses the original name
+with <code class="computeroutput">.out</code> appended.</p>
+<p>As with compression, supplying no filenames causes
+decompression from standard input to standard output.</p>
+<p><code class="computeroutput">bunzip2</code> will correctly
+decompress a file which is the concatenation of two or more
+compressed files. The result is the concatenation of the
+corresponding uncompressed files. Integrity testing
+(<code class="computeroutput">-t</code>) of concatenated compressed
+files is also supported.</p>
+<p>You can also compress or decompress files to the standard
+output by giving the <code class="computeroutput">-c</code> flag.
+Multiple files may be compressed and decompressed like this. The
+resulting outputs are fed sequentially to stdout. Compression of
+multiple files in this manner generates a stream containing
+multiple compressed file representations. Such a stream can be
+decompressed correctly only by
+<code class="computeroutput">bzip2</code> version 0.9.0 or later.
+Earlier versions of <code class="computeroutput">bzip2</code> will
+stop after decompressing the first file in the stream.</p>
+<p><code class="computeroutput">bzcat</code> (or
+<code class="computeroutput">bzip2 -dc</code>) decompresses all
+specified files to the standard output.</p>
+<p><code class="computeroutput">bzip2</code> will read arguments
+from the environment variables
+<code class="computeroutput">BZIP2</code> and
+<code class="computeroutput">BZIP</code>, in that order, and will
+process them before any arguments read from the command line.
+This gives a convenient way to supply default arguments.</p>
+<p>Compression is always performed, even if the compressed
+file is slightly larger than the original. Files of less than
+about one hundred bytes tend to get larger, since the compression
+mechanism has a constant overhead in the region of 50 bytes.
+Random data (including the output of most file compressors) is
+coded at about 8.05 bits per byte, giving an expansion of around
+0.5%.</p>
+<p>As a self-check for your protection,
+<code class="computeroutput">bzip2</code> uses 32-bit CRCs to make
+sure that the decompressed version of a file is identical to the
+original. This guards against corruption of the compressed data,
+and against undetected bugs in
+<code class="computeroutput">bzip2</code> (hopefully very unlikely).
+The chances of data corruption going undetected is microscopic,
+about one chance in four billion for each file processed. Be
+aware, though, that the check occurs upon decompression, so it
+can only tell you that something is wrong. It can't help you
+recover the original uncompressed data. You can use
+<code class="computeroutput">bzip2recover</code> to try to recover
+data from damaged files.</p>
+<p>Return values: 0 for a normal exit, 1 for environmental
+problems (file not found, invalid flags, I/O errors, etc.), 2
+to indicate a corrupt compressed file, 3 for an internal
+consistency error (eg, bug) which caused
+<code class="computeroutput">bzip2</code> to panic.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="options"></a>2.4. OPTIONS</h2></div></div></div>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term"><code class="computeroutput">-c --stdout</code></span></dt>
+<dd><p>Compress or decompress to standard
+ output.</p></dd>
+<dt><span class="term"><code class="computeroutput">-d --decompress</code></span></dt>
+<dd><p>Force decompression.
+ <code class="computeroutput">bzip2</code>,
+ <code class="computeroutput">bunzip2</code> and
+ <code class="computeroutput">bzcat</code> are really the same
+ program, and the decision about what actions to take is done on
+ the basis of which name is used. This flag overrides that
+ mechanism, and forces bzip2 to decompress.</p></dd>
+<dt><span class="term"><code class="computeroutput">-z --compress</code></span></dt>
+<dd><p>The complement to
+ <code class="computeroutput">-d</code>: forces compression,
+ regardless of the invokation name.</p></dd>
+<dt><span class="term"><code class="computeroutput">-t --test</code></span></dt>
+<dd><p>Check integrity of the specified file(s), but
+ don't decompress them. This really performs a trial
+ decompression and throws away the result.</p></dd>
+<dt><span class="term"><code class="computeroutput">-f --force</code></span></dt>
+<dd>
+<p>Force overwrite of output files. Normally,
+ <code class="computeroutput">bzip2</code> will not overwrite
+ existing output files. Also forces
+ <code class="computeroutput">bzip2</code> to break hard links to
+ files, which it otherwise wouldn't do.</p>
+<p><code class="computeroutput">bzip2</code> normally declines
+ to decompress files which don't have the correct magic header
+ bytes. If forced (<code class="computeroutput">-f</code>),
+ however, it will pass such files through unmodified. This is
+ how GNU <code class="computeroutput">gzip</code> behaves.</p>
+</dd>
+<dt><span class="term"><code class="computeroutput">-k --keep</code></span></dt>
+<dd><p>Keep (don't delete) input files during
+ compression or decompression.</p></dd>
+<dt><span class="term"><code class="computeroutput">-s --small</code></span></dt>
+<dd>
+<p>Reduce memory usage, for compression,
+ decompression and testing. Files are decompressed and tested
+ using a modified algorithm which only requires 2.5 bytes per
+ block byte. This means any file can be decompressed in 2300k
+ of memory, albeit at about half the normal speed.</p>
+<p>During compression, <code class="computeroutput">-s</code>
+ selects a block size of 200k, which limits memory use to around
+ the same figure, at the expense of your compression ratio. In
+ short, if your machine is low on memory (8 megabytes or less),
+ use <code class="computeroutput">-s</code> for everything. See
+ <a class="xref" href="#memory-management" title="2.5. MEMORY MANAGEMENT">MEMORY MANAGEMENT</a> below.</p>
+</dd>
+<dt><span class="term"><code class="computeroutput">-q --quiet</code></span></dt>
+<dd><p>Suppress non-essential warning messages.
+ Messages pertaining to I/O errors and other critical events
+ will not be suppressed.</p></dd>
+<dt><span class="term"><code class="computeroutput">-v --verbose</code></span></dt>
+<dd><p>Verbose mode -- show the compression ratio for
+ each file processed. Further
+ <code class="computeroutput">-v</code>'s increase the verbosity
+ level, spewing out lots of information which is primarily of
+ interest for diagnostic purposes.</p></dd>
+<dt><span class="term"><code class="computeroutput">-L --license -V --version</code></span></dt>
+<dd><p>Display the software version, license terms and
+ conditions.</p></dd>
+<dt><span class="term"><code class="computeroutput">-1</code> (or
+ <code class="computeroutput">--fast</code>) to
+ <code class="computeroutput">-9</code> (or
+ <code class="computeroutput">-best</code>)</span></dt>
+<dd><p>Set the block size to 100 k, 200 k ... 900 k
+ when compressing. Has no effect when decompressing. See <a class="xref" href="#memory-management" title="2.5. MEMORY MANAGEMENT">MEMORY MANAGEMENT</a> below. The
+ <code class="computeroutput">--fast</code> and
+ <code class="computeroutput">--best</code> aliases are primarily
+ for GNU <code class="computeroutput">gzip</code> compatibility.
+ In particular, <code class="computeroutput">--fast</code> doesn't
+ make things significantly faster. And
+ <code class="computeroutput">--best</code> merely selects the
+ default behaviour.</p></dd>
+<dt><span class="term"><code class="computeroutput">--</code></span></dt>
+<dd><p>Treats all subsequent arguments as file names,
+ even if they start with a dash. This is so you can handle
+ files with names beginning with a dash, for example:
+ <code class="computeroutput">bzip2 --
+ -myfilename</code>.</p></dd>
+<dt>
+<span class="term"><code class="computeroutput">--repetitive-fast</code>, </span><span class="term"><code class="computeroutput">--repetitive-best</code></span>
+</dt>
+<dd><p>These flags are redundant in versions 0.9.5 and
+ above. They provided some coarse control over the behaviour of
+ the sorting algorithm in earlier versions, which was sometimes
+ useful. 0.9.5 and above have an improved algorithm which
+ renders these flags irrelevant.</p></dd>
+</dl></div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="memory-management"></a>2.5. MEMORY MANAGEMENT</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses large
+files in blocks. The block size affects both the compression
+ratio achieved, and the amount of memory needed for compression
+and decompression. The flags <code class="computeroutput">-1</code>
+through <code class="computeroutput">-9</code> specify the block
+size to be 100,000 bytes through 900,000 bytes (the default)
+respectively. At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+<code class="computeroutput">bunzip2</code> then allocates itself
+just enough memory to decompress the file. Since block sizes are
+stored in compressed files, it follows that the flags
+<code class="computeroutput">-1</code> to
+<code class="computeroutput">-9</code> are irrelevant to and so
+ignored during decompression.</p>
+<p>Compression and decompression requirements, in bytes, can be
+estimated as:</p>
+<pre class="programlisting">Compression: 400k + ( 8 x block size )
+
+Decompression: 100k + ( 4 x block size ), or
+ 100k + ( 2.5 x block size )</pre>
+<p>Larger block sizes give rapidly diminishing marginal
+returns. Most of the compression comes from the first two or
+three hundred k of block size, a fact worth bearing in mind when
+using <code class="computeroutput">bzip2</code> on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block
+size.</p>
+<p>For files compressed with the default 900k block size,
+<code class="computeroutput">bunzip2</code> will require about 3700
+kbytes to decompress. To support decompression of any file on a
+4 megabyte machine, <code class="computeroutput">bunzip2</code> has
+an option to decompress using approximately half this amount of
+memory, about 2300 kbytes. Decompression speed is also halved,
+so you should use this option only where necessary. The relevant
+flag is <code class="computeroutput">-s</code>.</p>
+<p>In general, try and use the largest block size memory
+constraints allow, since that maximises the compression achieved.
+Compression and decompression speed are virtually unaffected by
+block size.</p>
+<p>Another significant point applies to files which fit in a
+single block -- that means most files you'd encounter using a
+large block size. The amount of real memory touched is
+proportional to the size of the file, since the file is smaller
+than a block. For example, compressing a file 20,000 bytes long
+with the flag <code class="computeroutput">-9</code> will cause the
+compressor to allocate around 7600k of memory, but only touch
+400k + 20000 * 8 = 560 kbytes of it. Similarly, the decompressor
+will allocate 3700k but only touch 100k + 20000 * 4 = 180
+kbytes.</p>
+<p>Here is a table which summarises the maximum memory usage
+for different block sizes. Also recorded is the total compressed
+size for 14 files of the Calgary Text Compression Corpus
+totalling 3,141,622 bytes. This column gives some feel for how
+compression varies with block size. These figures tend to
+understate the advantage of larger block sizes for larger files,
+since the Corpus is dominated by smaller files.</p>
+<pre class="programlisting"> Compress Decompress Decompress Corpus
+Flag usage usage -s usage Size
+
+ -1 1200k 500k 350k 914704
+ -2 2000k 900k 600k 877703
+ -3 2800k 1300k 850k 860338
+ -4 3600k 1700k 1100k 846899
+ -5 4400k 2100k 1350k 845160
+ -6 5200k 2500k 1600k 838626
+ -7 6100k 2900k 1850k 834096
+ -8 6800k 3300k 2100k 828642
+ -9 7600k 3700k 2350k 828642</pre>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="recovering"></a>2.6. RECOVERING DATA FROM DAMAGED FILES</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> compresses files in
+blocks, usually 900kbytes long. Each block is handled
+independently. If a media or transmission error causes a
+multi-block <code class="computeroutput">.bz2</code> file to become
+damaged, it may be possible to recover data from the undamaged
+blocks in the file.</p>
+<p>The compressed representation of each block is delimited by
+a 48-bit pattern, which makes it possible to find the block
+boundaries with reasonable certainty. Each block also carries
+its own 32-bit CRC, so damaged blocks can be distinguished from
+undamaged ones.</p>
+<p><code class="computeroutput">bzip2recover</code> is a simple
+program whose purpose is to search for blocks in
+<code class="computeroutput">.bz2</code> files, and write each block
+out into its own <code class="computeroutput">.bz2</code> file. You
+can then use <code class="computeroutput">bzip2 -t</code> to test
+the integrity of the resulting files, and decompress those which
+are undamaged.</p>
+<p><code class="computeroutput">bzip2recover</code> takes a
+single argument, the name of the damaged file, and writes a
+number of files <code class="computeroutput">rec0001file.bz2</code>,
+<code class="computeroutput">rec0002file.bz2</code>, etc, containing
+the extracted blocks. The output filenames are designed so that
+the use of wildcards in subsequent processing -- for example,
+<code class="computeroutput">bzip2 -dc rec*file.bz2 &gt;
+recovered_data</code> -- lists the files in the correct
+order.</p>
+<p><code class="computeroutput">bzip2recover</code> should be of
+most use dealing with large <code class="computeroutput">.bz2</code>
+files, as these will contain many blocks. It is clearly futile
+to use it on damaged single-block files, since a damaged block
+cannot be recovered. If you wish to minimise any potential data
+loss through media or transmission errors, you might consider
+compressing with a smaller block size.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="performance"></a>2.7. PERFORMANCE NOTES</h2></div></div></div>
+<p>The sorting phase of compression gathers together similar
+strings in the file. Because of this, files containing very long
+runs of repeated symbols, like "aabaabaabaab ..." (repeated
+several hundred times) may compress more slowly than normal.
+Versions 0.9.5 and above fare much better than previous versions
+in this respect. The ratio between worst-case and average-case
+compression time is in the region of 10:1. For previous
+versions, this figure was more like 100:1. You can use the
+<code class="computeroutput">-vvvv</code> option to monitor progress
+in great detail, if you want.</p>
+<p>Decompression speed is unaffected by these
+phenomena.</p>
+<p><code class="computeroutput">bzip2</code> usually allocates
+several megabytes of memory to operate in, and then charges all
+over it in a fairly random fashion. This means that performance,
+both for compressing and decompressing, is largely determined by
+the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss
+rate have been observed to give disproportionately large
+performance improvements. I imagine
+<code class="computeroutput">bzip2</code> will perform best on
+machines with very large caches.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="caveats"></a>2.8. CAVEATS</h2></div></div></div>
+<p>I/O error messages are not as helpful as they could be.
+<code class="computeroutput">bzip2</code> tries hard to detect I/O
+errors and exit cleanly, but the details of what the problem is
+sometimes seem rather misleading.</p>
+<p>This manual page pertains to version 1.0.8 of
+<code class="computeroutput">bzip2</code>. Compressed data created by
+this version is entirely forwards and backwards compatible with the
+previous public releases, versions 0.1pl2, 0.9.0 and 0.9.5, 1.0.0,
+1.0.1, 1.0.2 and 1.0.3, but with the following exception: 0.9.0 and
+above can correctly decompress multiple concatenated compressed files.
+0.1pl2 cannot do this; it will stop after decompressing just the first
+file in the stream.</p>
+<p><code class="computeroutput">bzip2recover</code> versions
+prior to 1.0.2 used 32-bit integers to represent bit positions in
+compressed files, so it could not handle compressed files more
+than 512 megabytes long. Versions 1.0.2 and above use 64-bit ints
+on some platforms which support them (GNU supported targets, and
+Windows). To establish whether or not
+<code class="computeroutput">bzip2recover</code> was built with such
+a limitation, run it without arguments. In any event you can
+build yourself an unlimited version if you can recompile it with
+<code class="computeroutput">MaybeUInt64</code> set to be an
+unsigned 64-bit integer.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="author"></a>2.9. AUTHOR</h2></div></div></div>
+<p>Julian Seward,
+<code class="computeroutput">jseward@acm.org</code></p>
+<p>The ideas embodied in
+<code class="computeroutput">bzip2</code> are due to (at least) the
+following people: Michael Burrows and David Wheeler (for the
+block sorting transformation), David Wheeler (again, for the
+Huffman coder), Peter Fenwick (for the structured coding model in
+the original <code class="computeroutput">bzip</code>, and many
+refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+<code class="computeroutput">bzip</code>). I am much indebted for
+their help, support and advice. See the manual in the source
+distribution for pointers to sources of documentation. Christian
+von Roques encouraged me to look for faster sorting algorithms,
+so as to speed up compression. Bela Lubkin encouraged me to
+improve the worst-case compression performance.
+Donna Robinson XMLised the documentation.
+Many people sent
+patches, helped with portability problems, lent machines, gave
+advice and were generally helpful.</p>
+</div>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="libprog"></a>3. 
+Programming with <code class="computeroutput">libbzip2</code>
+</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="sect1"><a href="#top-level">3.1. Top-level structure</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#ll-summary">3.1.1. Low-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#hl-summary">3.1.2. High-level summary</a></span></dt>
+<dt><span class="sect2"><a href="#util-fns-summary">3.1.3. Utility functions summary</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#err-handling">3.2. Error handling</a></span></dt>
+<dt><span class="sect1"><a href="#low-level">3.3. Low-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzcompress-init">3.3.1. BZ2_bzCompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress">3.3.2. BZ2_bzCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzCompress-end">3.3.3. BZ2_bzCompressEnd</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-init">3.3.4. BZ2_bzDecompressInit</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress">3.3.5. BZ2_bzDecompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzDecompress-end">3.3.6. BZ2_bzDecompressEnd</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#hl-interface">3.4. High-level interface</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzreadopen">3.4.1. BZ2_bzReadOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzread">3.4.2. BZ2_bzRead</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadgetunused">3.4.3. BZ2_bzReadGetUnused</a></span></dt>
+<dt><span class="sect2"><a href="#bzreadclose">3.4.4. BZ2_bzReadClose</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteopen">3.4.5. BZ2_bzWriteOpen</a></span></dt>
+<dt><span class="sect2"><a href="#bzwrite">3.4.6. BZ2_bzWrite</a></span></dt>
+<dt><span class="sect2"><a href="#bzwriteclose">3.4.7. BZ2_bzWriteClose</a></span></dt>
+<dt><span class="sect2"><a href="#embed">3.4.8. Handling embedded compressed data streams</a></span></dt>
+<dt><span class="sect2"><a href="#std-rdwr">3.4.9. Standard file-reading/writing code</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#util-fns">3.5. Utility functions</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#bzbufftobuffcompress">3.5.1. BZ2_bzBuffToBuffCompress</a></span></dt>
+<dt><span class="sect2"><a href="#bzbufftobuffdecompress">3.5.2. BZ2_bzBuffToBuffDecompress</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#zlib-compat">3.6. zlib compatibility functions</a></span></dt>
+<dt><span class="sect1"><a href="#stdio-free">3.7. Using the library in a stdio-free environment</a></span></dt>
+<dd><dl>
+<dt><span class="sect2"><a href="#stdio-bye">3.7.1. Getting rid of stdio</a></span></dt>
+<dt><span class="sect2"><a href="#critical-error">3.7.2. Critical error handling</a></span></dt>
+</dl></dd>
+<dt><span class="sect1"><a href="#win-dll">3.8. Making a Windows DLL</a></span></dt>
+</dl>
+</div>
+<p>This chapter describes the programming interface to
+<code class="computeroutput">libbzip2</code>.</p>
+<p>For general background information, particularly about
+memory use and performance aspects, you'd be well advised to read
+<a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a> as well.</p>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="top-level"></a>3.1. Top-level structure</h2></div></div></div>
+<p><code class="computeroutput">libbzip2</code> is a flexible
+library for compressing and decompressing data in the
+<code class="computeroutput">bzip2</code> data format. Although
+packaged as a single entity, it helps to regard the library as
+three separate parts: the low level interface, and the high level
+interface, and some utility functions.</p>
+<p>The structure of
+<code class="computeroutput">libbzip2</code>'s interfaces is similar
+to that of Jean-loup Gailly's and Mark Adler's excellent
+<code class="computeroutput">zlib</code> library.</p>
+<p>All externally visible symbols have names beginning
+<code class="computeroutput">BZ2_</code>. This is new in version
+1.0. The intention is to minimise pollution of the namespaces of
+library clients.</p>
+<p>To use any part of the library, you need to
+<code class="computeroutput">#include &lt;bzlib.h&gt;</code>
+into your sources.</p>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="ll-summary"></a>3.1.1. Low-level summary</h3></div></div></div>
+<p>This interface provides services for compressing and
+decompressing data in memory. There's no provision for dealing
+with files, streams or any other I/O mechanisms, just straight
+memory-to-memory work. In fact, this part of the library can be
+compiled without inclusion of
+<code class="computeroutput">stdio.h</code>, which may be helpful
+for embedded applications.</p>
+<p>The low-level part of the library has no global variables
+and is therefore thread-safe.</p>
+<p>Six routines make up the low level interface:
+<code class="computeroutput">BZ2_bzCompressInit</code>,
+<code class="computeroutput">BZ2_bzCompress</code>, and
+<code class="computeroutput">BZ2_bzCompressEnd</code> for
+compression, and a corresponding trio
+<code class="computeroutput">BZ2_bzDecompressInit</code>,
+<code class="computeroutput">BZ2_bzDecompress</code> and
+<code class="computeroutput">BZ2_bzDecompressEnd</code> for
+decompression. The <code class="computeroutput">*Init</code>
+functions allocate memory for compression/decompression and do
+other initialisations, whilst the
+<code class="computeroutput">*End</code> functions close down
+operations and release memory.</p>
+<p>The real work is done by
+<code class="computeroutput">BZ2_bzCompress</code> and
+<code class="computeroutput">BZ2_bzDecompress</code>. These
+compress and decompress data from a user-supplied input buffer to
+a user-supplied output buffer. These buffers can be any size;
+arbitrary quantities of data are handled by making repeated calls
+to these functions. This is a flexible mechanism allowing a
+consumer-pull style of activity, or producer-push, or a mixture
+of both.</p>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="hl-summary"></a>3.1.2. High-level summary</h3></div></div></div>
+<p>This interface provides some handy wrappers around the
+low-level interface to facilitate reading and writing
+<code class="computeroutput">bzip2</code> format files
+(<code class="computeroutput">.bz2</code> files). The routines
+provide hooks to facilitate reading files in which the
+<code class="computeroutput">bzip2</code> data stream is embedded
+within some larger-scale file structure, or where there are
+multiple <code class="computeroutput">bzip2</code> data streams
+concatenated end-to-end.</p>
+<p>For reading files,
+<code class="computeroutput">BZ2_bzReadOpen</code>,
+<code class="computeroutput">BZ2_bzRead</code>,
+<code class="computeroutput">BZ2_bzReadClose</code> and
+<code class="computeroutput">BZ2_bzReadGetUnused</code> are
+supplied. For writing files,
+<code class="computeroutput">BZ2_bzWriteOpen</code>,
+<code class="computeroutput">BZ2_bzWrite</code> and
+<code class="computeroutput">BZ2_bzWriteFinish</code> are
+available.</p>
+<p>As with the low-level library, no global variables are used
+so the library is per se thread-safe. However, if I/O errors
+occur whilst reading or writing the underlying compressed files,
+you may have to consult <code class="computeroutput">errno</code> to
+determine the cause of the error. In that case, you'd need a C
+library which correctly supports
+<code class="computeroutput">errno</code> in a multithreaded
+environment.</p>
+<p>To make the library a little simpler and more portable,
+<code class="computeroutput">BZ2_bzReadOpen</code> and
+<code class="computeroutput">BZ2_bzWriteOpen</code> require you to
+pass them file handles (<code class="computeroutput">FILE*</code>s)
+which have previously been opened for reading or writing
+respectively. That avoids portability problems associated with
+file operations and file attributes, whilst not being much of an
+imposition on the programmer.</p>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="util-fns-summary"></a>3.1.3. Utility functions summary</h3></div></div></div>
+<p>For very simple needs,
+<code class="computeroutput">BZ2_bzBuffToBuffCompress</code> and
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> are
+provided. These compress data in memory from one buffer to
+another buffer in a single function call. You should assess
+whether these functions fulfill your memory-to-memory
+compression/decompression requirements before investing effort in
+understanding the more general but more complex low-level
+interface.</p>
+<p>Yoshioka Tsuneo
+(<code class="computeroutput">tsuneo@rr.iij4u.or.jp</code>) has
+contributed some functions to give better
+<code class="computeroutput">zlib</code> compatibility. These
+functions are <code class="computeroutput">BZ2_bzopen</code>,
+<code class="computeroutput">BZ2_bzread</code>,
+<code class="computeroutput">BZ2_bzwrite</code>,
+<code class="computeroutput">BZ2_bzflush</code>,
+<code class="computeroutput">BZ2_bzclose</code>,
+<code class="computeroutput">BZ2_bzerror</code> and
+<code class="computeroutput">BZ2_bzlibVersion</code>. You may find
+these functions more convenient for simple file reading and
+writing, than those in the high-level interface. These functions
+are not (yet) officially part of the library, and are minimally
+documented here. If they break, you get to keep all the pieces.
+I hope to document them properly when time permits.</p>
+<p>Yoshioka also contributed modifications to allow the
+library to be built as a Windows DLL.</p>
+</div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="err-handling"></a>3.2. Error handling</h2></div></div></div>
+<p>The library is designed to recover cleanly in all
+situations, including the worst-case situation of decompressing
+random data. I'm not 100% sure that it can always do this, so
+you might want to add a signal handler to catch segmentation
+violations during decompression if you are feeling especially
+paranoid. I would be interested in hearing more about the
+robustness of the library to corrupted compressed data.</p>
+<p>Version 1.0.3 more robust in this respect than any
+previous version. Investigations with Valgrind (a tool for detecting
+problems with memory management) indicate
+that, at least for the few files I tested, all single-bit errors
+in the decompressed data are caught properly, with no
+segmentation faults, no uses of uninitialised data, no out of
+range reads or writes, and no infinite looping in the decompressor.
+So it's certainly pretty robust, although
+I wouldn't claim it to be totally bombproof.</p>
+<p>The file <code class="computeroutput">bzlib.h</code> contains
+all definitions needed to use the library. In particular, you
+should definitely not include
+<code class="computeroutput">bzlib_private.h</code>.</p>
+<p>In <code class="computeroutput">bzlib.h</code>, the various
+return values are defined. The following list is not intended as
+an exhaustive description of the circumstances in which a given
+value may be returned -- those descriptions are given later.
+Rather, it is intended to convey the rough meaning of each return
+value. The first five actions are normal and not intended to
+denote an error situation.</p>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term"><code class="computeroutput">BZ_OK</code></span></dt>
+<dd><p>The requested action was completed
+ successfully.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_RUN_OK, BZ_FLUSH_OK,
+ BZ_FINISH_OK</code></span></dt>
+<dd><p>In
+ <code class="computeroutput">BZ2_bzCompress</code>, the requested
+ flush/finish/nothing-special action was completed
+ successfully.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_STREAM_END</code></span></dt>
+<dd><p>Compression of data was completed, or the
+ logical stream end was detected during
+ decompression.</p></dd>
+</dl></div>
+<p>The following return values indicate an error of some
+kind.</p>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term"><code class="computeroutput">BZ_CONFIG_ERROR</code></span></dt>
+<dd><p>Indicates that the library has been improperly
+ compiled on your platform -- a major configuration error.
+ Specifically, it means that
+ <code class="computeroutput">sizeof(char)</code>,
+ <code class="computeroutput">sizeof(short)</code> and
+ <code class="computeroutput">sizeof(int)</code> are not 1, 2 and
+ 4 respectively, as they should be. Note that the library
+ should still work properly on 64-bit platforms which follow
+ the LP64 programming model -- that is, where
+ <code class="computeroutput">sizeof(long)</code> and
+ <code class="computeroutput">sizeof(void*)</code> are 8. Under
+ LP64, <code class="computeroutput">sizeof(int)</code> is still 4,
+ so <code class="computeroutput">libbzip2</code>, which doesn't
+ use the <code class="computeroutput">long</code> type, is
+ OK.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_SEQUENCE_ERROR</code></span></dt>
+<dd><p>When using the library, it is important to call
+ the functions in the correct sequence and with data structures
+ (buffers etc) in the correct states.
+ <code class="computeroutput">libbzip2</code> checks as much as it
+ can to ensure this is happening, and returns
+ <code class="computeroutput">BZ_SEQUENCE_ERROR</code> if not.
+ Code which complies precisely with the function semantics, as
+ detailed below, should never receive this value; such an event
+ denotes buggy code which you should
+ investigate.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_PARAM_ERROR</code></span></dt>
+<dd><p>Returned when a parameter to a function call is
+ out of range or otherwise manifestly incorrect. As with
+ <code class="computeroutput">BZ_SEQUENCE_ERROR</code>, this
+ denotes a bug in the client code. The distinction between
+ <code class="computeroutput">BZ_PARAM_ERROR</code> and
+ <code class="computeroutput">BZ_SEQUENCE_ERROR</code> is a bit
+ hazy, but still worth making.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_MEM_ERROR</code></span></dt>
+<dd><p>Returned when a request to allocate memory
+ failed. Note that the quantity of memory needed to decompress
+ a stream cannot be determined until the stream's header has
+ been read. So
+ <code class="computeroutput">BZ2_bzDecompress</code> and
+ <code class="computeroutput">BZ2_bzRead</code> may return
+ <code class="computeroutput">BZ_MEM_ERROR</code> even though some
+ of the compressed data has been read. The same is not true
+ for compression; once
+ <code class="computeroutput">BZ2_bzCompressInit</code> or
+ <code class="computeroutput">BZ2_bzWriteOpen</code> have
+ successfully completed,
+ <code class="computeroutput">BZ_MEM_ERROR</code> cannot
+ occur.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_DATA_ERROR</code></span></dt>
+<dd><p>Returned when a data integrity error is
+ detected during decompression. Most importantly, this means
+ when stored and computed CRCs for the data do not match. This
+ value is also returned upon detection of any other anomaly in
+ the compressed data.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_DATA_ERROR_MAGIC</code></span></dt>
+<dd><p>As a special case of
+ <code class="computeroutput">BZ_DATA_ERROR</code>, it is
+ sometimes useful to know when the compressed stream does not
+ start with the correct magic bytes (<code class="computeroutput">'B' 'Z'
+ 'h'</code>).</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_IO_ERROR</code></span></dt>
+<dd><p>Returned by
+ <code class="computeroutput">BZ2_bzRead</code> and
+ <code class="computeroutput">BZ2_bzWrite</code> when there is an
+ error reading or writing in the compressed file, and by
+ <code class="computeroutput">BZ2_bzReadOpen</code> and
+ <code class="computeroutput">BZ2_bzWriteOpen</code> for attempts
+ to use a file for which the error indicator (viz,
+ <code class="computeroutput">ferror(f)</code>) is set. On
+ receipt of <code class="computeroutput">BZ_IO_ERROR</code>, the
+ caller should consult <code class="computeroutput">errno</code>
+ and/or <code class="computeroutput">perror</code> to acquire
+ operating-system specific information about the
+ problem.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_UNEXPECTED_EOF</code></span></dt>
+<dd><p>Returned by
+ <code class="computeroutput">BZ2_bzRead</code> when the
+ compressed file finishes before the logical end of stream is
+ detected.</p></dd>
+<dt><span class="term"><code class="computeroutput">BZ_OUTBUFF_FULL</code></span></dt>
+<dd><p>Returned by
+ <code class="computeroutput">BZ2_bzBuffToBuffCompress</code> and
+ <code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> to
+ indicate that the output data will not fit into the output
+ buffer provided.</p></dd>
+</dl></div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="low-level"></a>3.3. Low-level interface</h2></div></div></div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzcompress-init"></a>3.3.1. BZ2_bzCompressInit</h3></div></div></div>
+<pre class="programlisting">typedef struct {
+ char *next_in;
+ unsigned int avail_in;
+ unsigned int total_in_lo32;
+ unsigned int total_in_hi32;
+
+ char *next_out;
+ unsigned int avail_out;
+ unsigned int total_out_lo32;
+ unsigned int total_out_hi32;
+
+ void *state;
+
+ void *(*bzalloc)(void *,int,int);
+ void (*bzfree)(void *,void *);
+ void *opaque;
+} bz_stream;
+
+int BZ2_bzCompressInit ( bz_stream *strm,
+ int blockSize100k,
+ int verbosity,
+ int workFactor );</pre>
+<p>Prepares for compression. The
+<code class="computeroutput">bz_stream</code> structure holds all
+data pertaining to the compression activity. A
+<code class="computeroutput">bz_stream</code> structure should be
+allocated and initialised prior to the call. The fields of
+<code class="computeroutput">bz_stream</code> comprise the entirety
+of the user-visible data. <code class="computeroutput">state</code>
+is a pointer to the private data structures required for
+compression.</p>
+<p>Custom memory allocators are supported, via fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code>, and
+<code class="computeroutput">opaque</code>. The value
+<code class="computeroutput">opaque</code> is passed to as the first
+argument to all calls to <code class="computeroutput">bzalloc</code>
+and <code class="computeroutput">bzfree</code>, but is otherwise
+ignored by the library. The call <code class="computeroutput">bzalloc (
+opaque, n, m )</code> is expected to return a pointer
+<code class="computeroutput">p</code> to <code class="computeroutput">n *
+m</code> bytes of memory, and <code class="computeroutput">bzfree (
+opaque, p )</code> should free that memory.</p>
+<p>If you don't want to use a custom memory allocator, set
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> to
+<code class="computeroutput">NULL</code>, and the library will then
+use the standard <code class="computeroutput">malloc</code> /
+<code class="computeroutput">free</code> routines.</p>
+<p>Before calling
+<code class="computeroutput">BZ2_bzCompressInit</code>, fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> should be filled
+appropriately, as just described. Upon return, the internal
+state will have been allocated and initialised, and
+<code class="computeroutput">total_in_lo32</code>,
+<code class="computeroutput">total_in_hi32</code>,
+<code class="computeroutput">total_out_lo32</code> and
+<code class="computeroutput">total_out_hi32</code> will have been
+set to zero. These four fields are used by the library to inform
+the caller of the total amount of data passed into and out of the
+library, respectively. You should not try to change them. As of
+version 1.0, 64-bit counts are maintained, even on 32-bit
+platforms, using the <code class="computeroutput">_hi32</code>
+fields to store the upper 32 bits of the count. So, for example,
+the total amount of data in is <code class="computeroutput">(total_in_hi32
+&lt;&lt; 32) + total_in_lo32</code>.</p>
+<p>Parameter <code class="computeroutput">blockSize100k</code>
+specifies the block size to be used for compression. It should
+be a value between 1 and 9 inclusive, and the actual block size
+used is 100000 x this figure. 9 gives the best compression but
+takes most memory.</p>
+<p>Parameter <code class="computeroutput">verbosity</code> should
+be set to a number between 0 and 4 inclusive. 0 is silent, and
+greater numbers give increasingly verbose monitoring/debugging
+output. If the library has been compiled with
+<code class="computeroutput">-DBZ_NO_STDIO</code>, no such output
+will appear for any verbosity setting.</p>
+<p>Parameter <code class="computeroutput">workFactor</code>
+controls how the compression phase behaves when presented with
+worst case, highly repetitive, input data. If compression runs
+into difficulties caused by repetitive data, the library switches
+from the standard sorting algorithm to a fallback algorithm. The
+fallback is slower than the standard algorithm by perhaps a
+factor of three, but always behaves reasonably, no matter how bad
+the input.</p>
+<p>Lower values of <code class="computeroutput">workFactor</code>
+reduce the amount of effort the standard algorithm will expend
+before resorting to the fallback. You should set this parameter
+carefully; too low, and many inputs will be handled by the
+fallback algorithm and so compress rather slowly, too high, and
+your average-to-worst case compression times can become very
+large. The default value of 30 gives reasonable behaviour over a
+wide range of circumstances.</p>
+<p>Allowable values range from 0 to 250 inclusive. 0 is a
+special case, equivalent to using the default value of 30.</p>
+<p>Note that the compressed output generated is the same
+regardless of whether or not the fallback algorithm is
+used.</p>
+<p>Be aware also that this parameter may disappear entirely in
+future versions of the library. In principle it should be
+possible to devise a good way to automatically choose which
+algorithm to use. Such a mechanism would render the parameter
+obsolete.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if strm is NULL
+ or blockSize &lt; 1 or blockSize &gt; 9
+ or verbosity &lt; 0 or verbosity &gt; 4
+ or workFactor &lt; 0 or workFactor &gt; 250
+BZ_MEM_ERROR
+ if not enough memory is available
+BZ_OK
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzCompress
+ if BZ_OK is returned
+ no specific action needed in case of error</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzCompress"></a>3.3.2. BZ2_bzCompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzCompress ( bz_stream *strm, int action );</pre>
+<p>Provides more input and/or output buffer space for the
+library. The caller maintains input and output buffers, and
+calls <code class="computeroutput">BZ2_bzCompress</code> to transfer
+data between them.</p>
+<p>Before each call to
+<code class="computeroutput">BZ2_bzCompress</code>,
+<code class="computeroutput">next_in</code> should point at the data
+to be compressed, and <code class="computeroutput">avail_in</code>
+should indicate how many bytes the library may read.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_in</code>,
+<code class="computeroutput">avail_in</code> and
+<code class="computeroutput">total_in</code> to reflect the number
+of bytes it has read.</p>
+<p>Similarly, <code class="computeroutput">next_out</code> should
+point to a buffer in which the compressed data is to be placed,
+with <code class="computeroutput">avail_out</code> indicating how
+much output space is available.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_out</code>,
+<code class="computeroutput">avail_out</code> and
+<code class="computeroutput">total_out</code> to reflect the number
+of bytes output.</p>
+<p>You may provide and remove as little or as much data as you
+like on each call of
+<code class="computeroutput">BZ2_bzCompress</code>. In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient. You should always
+ensure that at least one byte of output space is available at
+each call.</p>
+<p>A second purpose of
+<code class="computeroutput">BZ2_bzCompress</code> is to request a
+change of mode of the compressed stream.</p>
+<p>Conceptually, a compressed stream can be in one of four
+states: IDLE, RUNNING, FLUSHING and FINISHING. Before
+initialisation
+(<code class="computeroutput">BZ2_bzCompressInit</code>) and after
+termination (<code class="computeroutput">BZ2_bzCompressEnd</code>),
+a stream is regarded as IDLE.</p>
+<p>Upon initialisation
+(<code class="computeroutput">BZ2_bzCompressInit</code>), the stream
+is placed in the RUNNING state. Subsequent calls to
+<code class="computeroutput">BZ2_bzCompress</code> should pass
+<code class="computeroutput">BZ_RUN</code> as the requested action;
+other actions are illegal and will result in
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>.</p>
+<p>At some point, the calling program will have provided all
+the input data it wants to. It will then want to finish up -- in
+effect, asking the library to process any data it might have
+buffered internally. In this state,
+<code class="computeroutput">BZ2_bzCompress</code> will no longer
+attempt to read data from
+<code class="computeroutput">next_in</code>, but it will want to
+write data to <code class="computeroutput">next_out</code>. Because
+the output buffer supplied by the user can be arbitrarily small,
+the finishing-up operation cannot necessarily be done with a
+single call of
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<p>Instead, the calling program passes
+<code class="computeroutput">BZ_FINISH</code> as an action to
+<code class="computeroutput">BZ2_bzCompress</code>. This changes
+the stream's state to FINISHING. Any remaining input (ie,
+<code class="computeroutput">next_in[0 .. avail_in-1]</code>) is
+compressed and transferred to the output buffer. To do this,
+<code class="computeroutput">BZ2_bzCompress</code> must be called
+repeatedly until all the output has been consumed. At that
+point, <code class="computeroutput">BZ2_bzCompress</code> returns
+<code class="computeroutput">BZ_STREAM_END</code>, and the stream's
+state is set back to IDLE.
+<code class="computeroutput">BZ2_bzCompressEnd</code> should then be
+called.</p>
+<p>Just to make sure the calling program does not cheat, the
+library makes a note of <code class="computeroutput">avail_in</code>
+at the time of the first call to
+<code class="computeroutput">BZ2_bzCompress</code> which has
+<code class="computeroutput">BZ_FINISH</code> as an action (ie, at
+the time the program has announced its intention to not supply
+any more input). By comparing this value with that of
+<code class="computeroutput">avail_in</code> over subsequent calls
+to <code class="computeroutput">BZ2_bzCompress</code>, the library
+can detect any attempts to slip in more data to compress. Any
+calls for which this is detected will return
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>. This
+indicates a programming mistake which should be corrected.</p>
+<p>Instead of asking to finish, the calling program may ask
+<code class="computeroutput">BZ2_bzCompress</code> to take all the
+remaining input, compress it and terminate the current
+(Burrows-Wheeler) compression block. This could be useful for
+error control purposes. The mechanism is analogous to that for
+finishing: call <code class="computeroutput">BZ2_bzCompress</code>
+with an action of <code class="computeroutput">BZ_FLUSH</code>,
+remove output data, and persist with the
+<code class="computeroutput">BZ_FLUSH</code> action until the value
+<code class="computeroutput">BZ_RUN</code> is returned. As with
+finishing, <code class="computeroutput">BZ2_bzCompress</code>
+detects any attempt to provide more input data once the flush has
+begun.</p>
+<p>Once the flush is complete, the stream returns to the
+normal RUNNING state.</p>
+<p>This all sounds pretty complex, but isn't really. Here's a
+table which shows which actions are allowable in each state, what
+action will be taken, what the next state is, and what the
+non-error return values are. Note that you can't explicitly ask
+what state the stream is in, but nor do you need to -- it can be
+inferred from the values returned by
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<pre class="programlisting">IDLE/any
+ Illegal. IDLE state only exists after BZ2_bzCompressEnd or
+ before BZ2_bzCompressInit.
+ Return value = BZ_SEQUENCE_ERROR
+
+RUNNING/BZ_RUN
+ Compress from next_in to next_out as much as possible.
+ Next state = RUNNING
+ Return value = BZ_RUN_OK
+
+RUNNING/BZ_FLUSH
+ Remember current value of next_in. Compress from next_in
+ to next_out as much as possible, but do not accept any more input.
+ Next state = FLUSHING
+ Return value = BZ_FLUSH_OK
+
+RUNNING/BZ_FINISH
+ Remember current value of next_in. Compress from next_in
+ to next_out as much as possible, but do not accept any more input.
+ Next state = FINISHING
+ Return value = BZ_FINISH_OK
+
+FLUSHING/BZ_FLUSH
+ Compress from next_in to next_out as much as possible,
+ but do not accept any more input.
+ If all the existing input has been used up and all compressed
+ output has been removed
+ Next state = RUNNING; Return value = BZ_RUN_OK
+ else
+ Next state = FLUSHING; Return value = BZ_FLUSH_OK
+
+FLUSHING/other
+ Illegal.
+ Return value = BZ_SEQUENCE_ERROR
+
+FINISHING/BZ_FINISH
+ Compress from next_in to next_out as much as possible,
+ but to not accept any more input.
+ If all the existing input has been used up and all compressed
+ output has been removed
+ Next state = IDLE; Return value = BZ_STREAM_END
+ else
+ Next state = FINISHING; Return value = BZ_FINISH_OK
+
+FINISHING/other
+ Illegal.
+ Return value = BZ_SEQUENCE_ERROR</pre>
+<p>That still looks complicated? Well, fair enough. The
+usual sequence of calls for compressing a load of data is:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>Get started with
+ <code class="computeroutput">BZ2_bzCompressInit</code>.</p></li>
+<li class="listitem"><p>Shovel data in and shlurp out its compressed form
+ using zero or more calls of
+ <code class="computeroutput">BZ2_bzCompress</code> with action =
+ <code class="computeroutput">BZ_RUN</code>.</p></li>
+<li class="listitem"><p>Finish up. Repeatedly call
+ <code class="computeroutput">BZ2_bzCompress</code> with action =
+ <code class="computeroutput">BZ_FINISH</code>, copying out the
+ compressed output, until
+ <code class="computeroutput">BZ_STREAM_END</code> is
+ returned.</p></li>
+<li class="listitem"><p>Close up and go home. Call
+ <code class="computeroutput">BZ2_bzCompressEnd</code>.</p></li>
+</ol></div>
+<p>If the data you want to compress fits into your input
+buffer all at once, you can skip the calls of
+<code class="computeroutput">BZ2_bzCompress ( ..., BZ_RUN )</code>
+and just do the <code class="computeroutput">BZ2_bzCompress ( ..., BZ_FINISH
+)</code> calls.</p>
+<p>All required memory is allocated by
+<code class="computeroutput">BZ2_bzCompressInit</code>. The
+compression library can accept any data at all (obviously). So
+you shouldn't get any error return values from the
+<code class="computeroutput">BZ2_bzCompress</code> calls. If you
+do, they will be
+<code class="computeroutput">BZ_SEQUENCE_ERROR</code>, and indicate
+a bug in your programming.</p>
+<p>Trivial other possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if strm is NULL, or strm-&gt;s is NULL</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzCompress-end"></a>3.3.3. BZ2_bzCompressEnd</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzCompressEnd ( bz_stream *strm );</pre>
+<p>Releases all memory associated with a compression
+stream.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR if strm is NULL or strm-&gt;s is NULL
+BZ_OK otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress-init"></a>3.3.4. BZ2_bzDecompressInit</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );</pre>
+<p>Prepares for decompression. As with
+<code class="computeroutput">BZ2_bzCompressInit</code>, a
+<code class="computeroutput">bz_stream</code> record should be
+allocated and initialised before the call. Fields
+<code class="computeroutput">bzalloc</code>,
+<code class="computeroutput">bzfree</code> and
+<code class="computeroutput">opaque</code> should be set if a custom
+memory allocator is required, or made
+<code class="computeroutput">NULL</code> for the normal
+<code class="computeroutput">malloc</code> /
+<code class="computeroutput">free</code> routines. Upon return, the
+internal state will have been initialised, and
+<code class="computeroutput">total_in</code> and
+<code class="computeroutput">total_out</code> will be zero.</p>
+<p>For the meaning of parameter
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>If <code class="computeroutput">small</code> is nonzero, the
+library will use an alternative decompression algorithm which
+uses less memory but at the cost of decompressing more slowly
+(roughly speaking, half the speed, but the maximum memory
+requirement drops to around 2300k). See <a class="xref" href="#using" title="2. How to use bzip2">How to use bzip2</a>
+for more information on memory management.</p>
+<p>Note that the amount of memory needed to decompress a
+stream cannot be determined until the stream's header has been
+read, so even if
+<code class="computeroutput">BZ2_bzDecompressInit</code> succeeds, a
+subsequent <code class="computeroutput">BZ2_bzDecompress</code>
+could fail with
+<code class="computeroutput">BZ_MEM_ERROR</code>.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if ( small != 0 &amp;&amp; small != 1 )
+ or (verbosity &lt;; 0 || verbosity &gt; 4)
+BZ_MEM_ERROR
+ if insufficient memory is available</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzDecompress
+ if BZ_OK was returned
+ no specific action required in case of error</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress"></a>3.3.5. BZ2_bzDecompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompress ( bz_stream *strm );</pre>
+<p>Provides more input and/out output buffer space for the
+library. The caller maintains input and output buffers, and uses
+<code class="computeroutput">BZ2_bzDecompress</code> to transfer
+data between them.</p>
+<p>Before each call to
+<code class="computeroutput">BZ2_bzDecompress</code>,
+<code class="computeroutput">next_in</code> should point at the
+compressed data, and <code class="computeroutput">avail_in</code>
+should indicate how many bytes the library may read.
+<code class="computeroutput">BZ2_bzDecompress</code> updates
+<code class="computeroutput">next_in</code>,
+<code class="computeroutput">avail_in</code> and
+<code class="computeroutput">total_in</code> to reflect the number
+of bytes it has read.</p>
+<p>Similarly, <code class="computeroutput">next_out</code> should
+point to a buffer in which the uncompressed output is to be
+placed, with <code class="computeroutput">avail_out</code>
+indicating how much output space is available.
+<code class="computeroutput">BZ2_bzCompress</code> updates
+<code class="computeroutput">next_out</code>,
+<code class="computeroutput">avail_out</code> and
+<code class="computeroutput">total_out</code> to reflect the number
+of bytes output.</p>
+<p>You may provide and remove as little or as much data as you
+like on each call of
+<code class="computeroutput">BZ2_bzDecompress</code>. In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient. You should always
+ensure that at least one byte of output space is available at
+each call.</p>
+<p>Use of <code class="computeroutput">BZ2_bzDecompress</code> is
+simpler than
+<code class="computeroutput">BZ2_bzCompress</code>.</p>
+<p>You should provide input and remove output as described
+above, and repeatedly call
+<code class="computeroutput">BZ2_bzDecompress</code> until
+<code class="computeroutput">BZ_STREAM_END</code> is returned.
+Appearance of <code class="computeroutput">BZ_STREAM_END</code>
+denotes that <code class="computeroutput">BZ2_bzDecompress</code>
+has detected the logical end of the compressed stream.
+<code class="computeroutput">BZ2_bzDecompress</code> will not
+produce <code class="computeroutput">BZ_STREAM_END</code> until all
+output data has been placed into the output buffer, so once
+<code class="computeroutput">BZ_STREAM_END</code> appears, you are
+guaranteed to have available all the decompressed output, and
+<code class="computeroutput">BZ2_bzDecompressEnd</code> can safely
+be called.</p>
+<p>If case of an error return value, you should call
+<code class="computeroutput">BZ2_bzDecompressEnd</code> to clean up
+and release memory.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if strm is NULL or strm-&gt;s is NULL
+ or strm-&gt;avail_out &lt; 1
+BZ_DATA_ERROR
+ if a data integrity error is detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+ if the compressed stream doesn't begin with the right magic bytes
+BZ_MEM_ERROR
+ if there wasn't enough memory available
+BZ_STREAM_END
+ if the logical end of the data stream was detected and all
+ output in has been consumed, eg s--&gt;avail_out &gt; 0
+BZ_OK
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzDecompress
+ if BZ_OK was returned
+BZ2_bzDecompressEnd
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzDecompress-end"></a>3.3.6. BZ2_bzDecompressEnd</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzDecompressEnd ( bz_stream *strm );</pre>
+<p>Releases all memory associated with a decompression
+stream.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if strm is NULL or strm-&gt;s is NULL
+BZ_OK
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting"> None.</pre>
+</div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="hl-interface"></a>3.4. High-level interface</h2></div></div></div>
+<p>This interface provides functions for reading and writing
+<code class="computeroutput">bzip2</code> format files. First, some
+general points.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p>All of the functions take an
+ <code class="computeroutput">int*</code> first argument,
+ <code class="computeroutput">bzerror</code>. After each call,
+ <code class="computeroutput">bzerror</code> should be consulted
+ first to determine the outcome of the call. If
+ <code class="computeroutput">bzerror</code> is
+ <code class="computeroutput">BZ_OK</code>, the call completed
+ successfully, and only then should the return value of the
+ function (if any) be consulted. If
+ <code class="computeroutput">bzerror</code> is
+ <code class="computeroutput">BZ_IO_ERROR</code>, there was an
+ error reading/writing the underlying compressed file, and you
+ should then consult <code class="computeroutput">errno</code> /
+ <code class="computeroutput">perror</code> to determine the cause
+ of the difficulty. <code class="computeroutput">bzerror</code>
+ may also be set to various other values; precise details are
+ given on a per-function basis below.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>If <code class="computeroutput">bzerror</code> indicates
+ an error (ie, anything except
+ <code class="computeroutput">BZ_OK</code> and
+ <code class="computeroutput">BZ_STREAM_END</code>), you should
+ immediately call
+ <code class="computeroutput">BZ2_bzReadClose</code> (or
+ <code class="computeroutput">BZ2_bzWriteClose</code>, depending on
+ whether you are attempting to read or to write) to free up all
+ resources associated with the stream. Once an error has been
+ indicated, behaviour of all calls except
+ <code class="computeroutput">BZ2_bzReadClose</code>
+ (<code class="computeroutput">BZ2_bzWriteClose</code>) is
+ undefined. The implication is that (1)
+ <code class="computeroutput">bzerror</code> should be checked
+ after each call, and (2) if
+ <code class="computeroutput">bzerror</code> indicates an error,
+ <code class="computeroutput">BZ2_bzReadClose</code>
+ (<code class="computeroutput">BZ2_bzWriteClose</code>) should then
+ be called to clean up.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>The <code class="computeroutput">FILE*</code> arguments
+ passed to <code class="computeroutput">BZ2_bzReadOpen</code> /
+ <code class="computeroutput">BZ2_bzWriteOpen</code> should be set
+ to binary mode. Most Unix systems will do this by default, but
+ other platforms, including Windows and Mac, will not. If you
+ omit this, you may encounter problems when moving code to new
+ platforms.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Memory allocation requests are handled by
+ <code class="computeroutput">malloc</code> /
+ <code class="computeroutput">free</code>. At present there is no
+ facility for user-defined memory allocators in the file I/O
+ functions (could easily be added, though).</p></li>
+</ul></div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadopen"></a>3.4.1. BZ2_bzReadOpen</h3></div></div></div>
+<pre class="programlisting">typedef void BZFILE;
+
+BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f,
+ int verbosity, int small,
+ void *unused, int nUnused );</pre>
+<p>Prepare to read compressed data from file handle
+<code class="computeroutput">f</code>.
+<code class="computeroutput">f</code> should refer to a file which
+has been opened for reading, and for which the error indicator
+(<code class="computeroutput">ferror(f)</code>)is not set. If
+<code class="computeroutput">small</code> is 1, the library will try
+to decompress using less memory, at the expense of speed.</p>
+<p>For reasons explained below,
+<code class="computeroutput">BZ2_bzRead</code> will decompress the
+<code class="computeroutput">nUnused</code> bytes starting at
+<code class="computeroutput">unused</code>, before starting to read
+from the file <code class="computeroutput">f</code>. At most
+<code class="computeroutput">BZ_MAX_UNUSED</code> bytes may be
+supplied like this. If this facility is not required, you should
+pass <code class="computeroutput">NULL</code> and
+<code class="computeroutput">0</code> for
+<code class="computeroutput">unused</code> and
+n<code class="computeroutput">Unused</code> respectively.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">small</code> and
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzDecompressInit</code>.</p>
+<p>The amount of memory needed to decompress a file cannot be
+determined until the file's header has been read. So it is
+possible that <code class="computeroutput">BZ2_bzReadOpen</code>
+returns <code class="computeroutput">BZ_OK</code> but a subsequent
+call of <code class="computeroutput">BZ2_bzRead</code> will return
+<code class="computeroutput">BZ_MEM_ERROR</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if f is NULL
+ or small is neither 0 nor 1
+ or ( unused == NULL &amp;&amp; nUnused != 0 )
+ or ( unused != NULL &amp;&amp; !(0 &lt;= nUnused &lt;= BZ_MAX_UNUSED) )
+BZ_IO_ERROR
+ if ferror(f) is nonzero
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OK
+ otherwise.</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">Pointer to an abstract BZFILE
+ if bzerror is BZ_OK
+NULL
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzRead
+ if bzerror is BZ_OK
+BZ2_bzClose
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzread"></a>3.4.2. BZ2_bzRead</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );</pre>
+<p>Reads up to <code class="computeroutput">len</code>
+(uncompressed) bytes from the compressed file
+<code class="computeroutput">b</code> into the buffer
+<code class="computeroutput">buf</code>. If the read was
+successful, <code class="computeroutput">bzerror</code> is set to
+<code class="computeroutput">BZ_OK</code> and the number of bytes
+read is returned. If the logical end-of-stream was detected,
+<code class="computeroutput">bzerror</code> will be set to
+<code class="computeroutput">BZ_STREAM_END</code>, and the number of
+bytes read is returned. All other
+<code class="computeroutput">bzerror</code> values denote an
+error.</p>
+<p><code class="computeroutput">BZ2_bzRead</code> will supply
+<code class="computeroutput">len</code> bytes, unless the logical
+stream end is detected or an error occurs. Because of this, it
+is possible to detect the stream end by observing when the number
+of bytes returned is less than the number requested.
+Nevertheless, this is regarded as inadvisable; you should instead
+check <code class="computeroutput">bzerror</code> after every call
+and watch out for
+<code class="computeroutput">BZ_STREAM_END</code>.</p>
+<p>Internally, <code class="computeroutput">BZ2_bzRead</code>
+copies data from the compressed file in chunks of size
+<code class="computeroutput">BZ_MAX_UNUSED</code> bytes before
+decompressing it. If the file contains more bytes than strictly
+needed to reach the logical end-of-stream,
+<code class="computeroutput">BZ2_bzRead</code> will almost certainly
+read some of the trailing data before signalling
+<code class="computeroutput">BZ_SEQUENCE_END</code>. To collect the
+read but unused data once
+<code class="computeroutput">BZ_SEQUENCE_END</code> has appeared,
+call <code class="computeroutput">BZ2_bzReadGetUnused</code>
+immediately before
+<code class="computeroutput">BZ2_bzReadClose</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if b is NULL or buf is NULL or len &lt; 0
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzWriteOpen
+BZ_IO_ERROR
+ if there is an error reading from the compressed file
+BZ_UNEXPECTED_EOF
+ if the compressed file ended before
+ the logical end-of-stream was detected
+BZ_DATA_ERROR
+ if a data integrity error was detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+ if the stream does not begin with the requisite header bytes
+ (ie, is not a bzip2 data file). This is really
+ a special case of BZ_DATA_ERROR.
+BZ_MEM_ERROR
+ if insufficient memory was available
+BZ_STREAM_END
+ if the logical end of stream was detected.
+BZ_OK
+ otherwise.</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">number of bytes read
+ if bzerror is BZ_OK or BZ_STREAM_END
+undefined
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">collect data from buf, then BZ2_bzRead or BZ2_bzReadClose
+ if bzerror is BZ_OK
+collect data from buf, then BZ2_bzReadClose or BZ2_bzReadGetUnused
+ if bzerror is BZ_SEQUENCE_END
+BZ2_bzReadClose
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadgetunused"></a>3.4.3. BZ2_bzReadGetUnused</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b,
+ void** unused, int* nUnused );</pre>
+<p>Returns data which was read from the compressed file but
+was not needed to get to the logical end-of-stream.
+<code class="computeroutput">*unused</code> is set to the address of
+the data, and <code class="computeroutput">*nUnused</code> to the
+number of bytes. <code class="computeroutput">*nUnused</code> will
+be set to a value between <code class="computeroutput">0</code> and
+<code class="computeroutput">BZ_MAX_UNUSED</code> inclusive.</p>
+<p>This function may only be called once
+<code class="computeroutput">BZ2_bzRead</code> has signalled
+<code class="computeroutput">BZ_STREAM_END</code> but before
+<code class="computeroutput">BZ2_bzReadClose</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if b is NULL
+ or unused is NULL or nUnused is NULL
+BZ_SEQUENCE_ERROR
+ if BZ_STREAM_END has not been signalled
+ or if b was opened with BZ2_bzWriteOpen
+BZ_OK
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzReadClose</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzreadclose"></a>3.4.4. BZ2_bzReadClose</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzReadClose ( int *bzerror, BZFILE *b );</pre>
+<p>Releases all memory pertaining to the compressed file
+<code class="computeroutput">b</code>.
+<code class="computeroutput">BZ2_bzReadClose</code> does not call
+<code class="computeroutput">fclose</code> on the underlying file
+handle, so you should do that yourself if appropriate.
+<code class="computeroutput">BZ2_bzReadClose</code> should be called
+to clean up after all error situations.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzOpenWrite
+BZ_OK
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">none</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwriteopen"></a>3.4.5. BZ2_bzWriteOpen</h3></div></div></div>
+<pre class="programlisting">BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f,
+ int blockSize100k, int verbosity,
+ int workFactor );</pre>
+<p>Prepare to write compressed data to file handle
+<code class="computeroutput">f</code>.
+<code class="computeroutput">f</code> should refer to a file which
+has been opened for writing, and for which the error indicator
+(<code class="computeroutput">ferror(f)</code>)is not set.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">blockSize100k</code>,
+<code class="computeroutput">verbosity</code> and
+<code class="computeroutput">workFactor</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>All required memory is allocated at this stage, so if the
+call completes successfully,
+<code class="computeroutput">BZ_MEM_ERROR</code> cannot be signalled
+by a subsequent call to
+<code class="computeroutput">BZ2_bzWrite</code>.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if f is NULL
+ or blockSize100k &lt; 1 or blockSize100k &gt; 9
+BZ_IO_ERROR
+ if ferror(f) is nonzero
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OK
+ otherwise</pre>
+<p>Possible return values:</p>
+<pre class="programlisting">Pointer to an abstract BZFILE
+ if bzerror is BZ_OK
+NULL
+ otherwise</pre>
+<p>Allowable next actions:</p>
+<pre class="programlisting">BZ2_bzWrite
+ if bzerror is BZ_OK
+ (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
+BZ2_bzWriteClose
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwrite"></a>3.4.6. BZ2_bzWrite</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );</pre>
+<p>Absorbs <code class="computeroutput">len</code> bytes from the
+buffer <code class="computeroutput">buf</code>, eventually to be
+compressed and written to the file.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_PARAM_ERROR
+ if b is NULL or buf is NULL or len &lt; 0
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+ if there is an error writing the compressed file.
+BZ_OK
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzwriteclose"></a>3.4.7. BZ2_bzWriteClose</h3></div></div></div>
+<pre class="programlisting">void BZ2_bzWriteClose( int *bzerror, BZFILE* f,
+ int abandon,
+ unsigned int* nbytes_in,
+ unsigned int* nbytes_out );
+
+void BZ2_bzWriteClose64( int *bzerror, BZFILE* f,
+ int abandon,
+ unsigned int* nbytes_in_lo32,
+ unsigned int* nbytes_in_hi32,
+ unsigned int* nbytes_out_lo32,
+ unsigned int* nbytes_out_hi32 );</pre>
+<p>Compresses and flushes to the compressed file all data so
+far supplied by <code class="computeroutput">BZ2_bzWrite</code>.
+The logical end-of-stream markers are also written, so subsequent
+calls to <code class="computeroutput">BZ2_bzWrite</code> are
+illegal. All memory associated with the compressed file
+<code class="computeroutput">b</code> is released.
+<code class="computeroutput">fflush</code> is called on the
+compressed file, but it is not
+<code class="computeroutput">fclose</code>'d.</p>
+<p>If <code class="computeroutput">BZ2_bzWriteClose</code> is
+called to clean up after an error, the only action is to release
+the memory. The library records the error codes issued by
+previous calls, so this situation will be detected automatically.
+There is no attempt to complete the compression operation, nor to
+<code class="computeroutput">fflush</code> the compressed file. You
+can force this behaviour to happen even in the case of no error,
+by passing a nonzero value to
+<code class="computeroutput">abandon</code>.</p>
+<p>If <code class="computeroutput">nbytes_in</code> is non-null,
+<code class="computeroutput">*nbytes_in</code> will be set to be the
+total volume of uncompressed data handled. Similarly,
+<code class="computeroutput">nbytes_out</code> will be set to the
+total volume of compressed data written. For compatibility with
+older versions of the library,
+<code class="computeroutput">BZ2_bzWriteClose</code> only yields the
+lower 32 bits of these counts. Use
+<code class="computeroutput">BZ2_bzWriteClose64</code> if you want
+the full 64 bit counts. These two functions are otherwise
+absolutely identical.</p>
+<p>Possible assignments to
+<code class="computeroutput">bzerror</code>:</p>
+<pre class="programlisting">BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+ if there is an error writing the compressed file
+BZ_OK
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="embed"></a>3.4.8. Handling embedded compressed data streams</h3></div></div></div>
+<p>The high-level library facilitates use of
+<code class="computeroutput">bzip2</code> data streams which form
+some part of a surrounding, larger data stream.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p>For writing, the library takes an open file handle,
+ writes compressed data to it,
+ <code class="computeroutput">fflush</code>es it but does not
+ <code class="computeroutput">fclose</code> it. The calling
+ application can write its own data before and after the
+ compressed data stream, using that same file handle.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Reading is more complex, and the facilities are not as
+ general as they could be since generality is hard to reconcile
+ with efficiency. <code class="computeroutput">BZ2_bzRead</code>
+ reads from the compressed file in blocks of size
+ <code class="computeroutput">BZ_MAX_UNUSED</code> bytes, and in
+ doing so probably will overshoot the logical end of compressed
+ stream. To recover this data once decompression has ended,
+ call <code class="computeroutput">BZ2_bzReadGetUnused</code> after
+ the last call of <code class="computeroutput">BZ2_bzRead</code>
+ (the one returning
+ <code class="computeroutput">BZ_STREAM_END</code>) but before
+ calling
+ <code class="computeroutput">BZ2_bzReadClose</code>.</p></li>
+</ul></div>
+<p>This mechanism makes it easy to decompress multiple
+<code class="computeroutput">bzip2</code> streams placed end-to-end.
+As the end of one stream, when
+<code class="computeroutput">BZ2_bzRead</code> returns
+<code class="computeroutput">BZ_STREAM_END</code>, call
+<code class="computeroutput">BZ2_bzReadGetUnused</code> to collect
+the unused data (copy it into your own buffer somewhere). That
+data forms the start of the next compressed stream. To start
+uncompressing that next stream, call
+<code class="computeroutput">BZ2_bzReadOpen</code> again, feeding in
+the unused data via the <code class="computeroutput">unused</code> /
+<code class="computeroutput">nUnused</code> parameters. Keep doing
+this until <code class="computeroutput">BZ_STREAM_END</code> return
+coincides with the physical end of file
+(<code class="computeroutput">feof(f)</code>). In this situation
+<code class="computeroutput">BZ2_bzReadGetUnused</code> will of
+course return no data.</p>
+<p>This should give some feel for how the high-level interface
+can be used. If you require extra flexibility, you'll have to
+bite the bullet and get to grips with the low-level
+interface.</p>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="std-rdwr"></a>3.4.9. Standard file-reading/writing code</h3></div></div></div>
+<p>Here's how you'd write data to a compressed file:</p>
+<pre class="programlisting">FILE* f;
+BZFILE* b;
+int nBuf;
+char buf[ /* whatever size you like */ ];
+int bzerror;
+int nWritten;
+
+f = fopen ( "myfile.bz2", "w" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzWriteOpen( &amp;bzerror, f, 9 );
+if (bzerror != BZ_OK) {
+ BZ2_bzWriteClose ( b );
+ /* handle error */
+}
+
+while ( /* condition */ ) {
+ /* get data to write into buf, and set nBuf appropriately */
+ nWritten = BZ2_bzWrite ( &amp;bzerror, b, buf, nBuf );
+ if (bzerror == BZ_IO_ERROR) {
+ BZ2_bzWriteClose ( &amp;bzerror, b );
+ /* handle error */
+ }
+}
+
+BZ2_bzWriteClose( &amp;bzerror, b );
+if (bzerror == BZ_IO_ERROR) {
+ /* handle error */
+}</pre>
+<p>And to read from a compressed file:</p>
+<pre class="programlisting">FILE* f;
+BZFILE* b;
+int nBuf;
+char buf[ /* whatever size you like */ ];
+int bzerror;
+int nWritten;
+
+f = fopen ( "myfile.bz2", "r" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzReadOpen ( &amp;bzerror, f, 0, NULL, 0 );
+if ( bzerror != BZ_OK ) {
+ BZ2_bzReadClose ( &amp;bzerror, b );
+ /* handle error */
+}
+
+bzerror = BZ_OK;
+while ( bzerror == BZ_OK &amp;&amp; /* arbitrary other conditions */) {
+ nBuf = BZ2_bzRead ( &amp;bzerror, b, buf, /* size of buf */ );
+ if ( bzerror == BZ_OK ) {
+ /* do something with buf[0 .. nBuf-1] */
+ }
+}
+if ( bzerror != BZ_STREAM_END ) {
+ BZ2_bzReadClose ( &amp;bzerror, b );
+ /* handle error */
+} else {
+ BZ2_bzReadClose ( &amp;bzerror, b );
+}</pre>
+</div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="util-fns"></a>3.5. Utility functions</h2></div></div></div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzbufftobuffcompress"></a>3.5.1. BZ2_bzBuffToBuffCompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzBuffToBuffCompress( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int blockSize100k,
+ int verbosity,
+ int workFactor );</pre>
+<p>Attempts to compress the data in <code class="computeroutput">source[0
+.. sourceLen-1]</code> into the destination buffer,
+<code class="computeroutput">dest[0 .. *destLen-1]</code>. If the
+destination buffer is big enough,
+<code class="computeroutput">*destLen</code> is set to the size of
+the compressed data, and <code class="computeroutput">BZ_OK</code>
+is returned. If the compressed data won't fit,
+<code class="computeroutput">*destLen</code> is unchanged, and
+<code class="computeroutput">BZ_OUTBUFF_FULL</code> is
+returned.</p>
+<p>Compression in this manner is a one-shot event, done with a
+single call to this function. The resulting compressed data is a
+complete <code class="computeroutput">bzip2</code> format data
+stream. There is no mechanism for making additional calls to
+provide extra input data. If you want that kind of mechanism,
+use the low-level interface.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">blockSize100k</code>,
+<code class="computeroutput">verbosity</code> and
+<code class="computeroutput">workFactor</code>, see
+<code class="computeroutput">BZ2_bzCompressInit</code>.</p>
+<p>To guarantee that the compressed data will fit in its
+buffer, allocate an output buffer of size 1% larger than the
+uncompressed data, plus six hundred extra bytes.</p>
+<p><code class="computeroutput">BZ2_bzBuffToBuffDecompress</code>
+will not write data at or beyond
+<code class="computeroutput">dest[*destLen]</code>, even in case of
+buffer overflow.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if dest is NULL or destLen is NULL
+ or blockSize100k &lt; 1 or blockSize100k &gt; 9
+ or verbosity &lt; 0 or verbosity &gt; 4
+ or workFactor &lt; 0 or workFactor &gt; 250
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OUTBUFF_FULL
+ if the size of the compressed data exceeds *destLen
+BZ_OK
+ otherwise</pre>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bzbufftobuffdecompress"></a>3.5.2. BZ2_bzBuffToBuffDecompress</h3></div></div></div>
+<pre class="programlisting">int BZ2_bzBuffToBuffDecompress( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int small,
+ int verbosity );</pre>
+<p>Attempts to decompress the data in <code class="computeroutput">source[0
+.. sourceLen-1]</code> into the destination buffer,
+<code class="computeroutput">dest[0 .. *destLen-1]</code>. If the
+destination buffer is big enough,
+<code class="computeroutput">*destLen</code> is set to the size of
+the uncompressed data, and <code class="computeroutput">BZ_OK</code>
+is returned. If the compressed data won't fit,
+<code class="computeroutput">*destLen</code> is unchanged, and
+<code class="computeroutput">BZ_OUTBUFF_FULL</code> is
+returned.</p>
+<p><code class="computeroutput">source</code> is assumed to hold
+a complete <code class="computeroutput">bzip2</code> format data
+stream.
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code> tries
+to decompress the entirety of the stream into the output
+buffer.</p>
+<p>For the meaning of parameters
+<code class="computeroutput">small</code> and
+<code class="computeroutput">verbosity</code>, see
+<code class="computeroutput">BZ2_bzDecompressInit</code>.</p>
+<p>Because the compression ratio of the compressed data cannot
+be known in advance, there is no easy way to guarantee that the
+output buffer will be big enough. You may of course make
+arrangements in your code to record the size of the uncompressed
+data, but such a mechanism is beyond the scope of this
+library.</p>
+<p><code class="computeroutput">BZ2_bzBuffToBuffDecompress</code>
+will not write data at or beyond
+<code class="computeroutput">dest[*destLen]</code>, even in case of
+buffer overflow.</p>
+<p>Possible return values:</p>
+<pre class="programlisting">BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if dest is NULL or destLen is NULL
+ or small != 0 &amp;&amp; small != 1
+ or verbosity &lt; 0 or verbosity &gt; 4
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OUTBUFF_FULL
+ if the size of the compressed data exceeds *destLen
+BZ_DATA_ERROR
+ if a data integrity error was detected in the compressed data
+BZ_DATA_ERROR_MAGIC
+ if the compressed data doesn't begin with the right magic bytes
+BZ_UNEXPECTED_EOF
+ if the compressed data ends unexpectedly
+BZ_OK
+ otherwise</pre>
+</div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="zlib-compat"></a>3.6. zlib compatibility functions</h2></div></div></div>
+<p>Yoshioka Tsuneo has contributed some functions to give
+better <code class="computeroutput">zlib</code> compatibility.
+These functions are <code class="computeroutput">BZ2_bzopen</code>,
+<code class="computeroutput">BZ2_bzread</code>,
+<code class="computeroutput">BZ2_bzwrite</code>,
+<code class="computeroutput">BZ2_bzflush</code>,
+<code class="computeroutput">BZ2_bzclose</code>,
+<code class="computeroutput">BZ2_bzerror</code> and
+<code class="computeroutput">BZ2_bzlibVersion</code>. These
+functions are not (yet) officially part of the library. If they
+break, you get to keep all the pieces. Nevertheless, I think
+they work ok.</p>
+<pre class="programlisting">typedef void BZFILE;
+
+const char * BZ2_bzlibVersion ( void );</pre>
+<p>Returns a string indicating the library version.</p>
+<pre class="programlisting">BZFILE * BZ2_bzopen ( const char *path, const char *mode );
+BZFILE * BZ2_bzdopen ( int fd, const char *mode );</pre>
+<p>Opens a <code class="computeroutput">.bz2</code> file for
+reading or writing, using either its name or a pre-existing file
+descriptor. Analogous to <code class="computeroutput">fopen</code>
+and <code class="computeroutput">fdopen</code>.</p>
+<pre class="programlisting">int BZ2_bzread ( BZFILE* b, void* buf, int len );
+int BZ2_bzwrite ( BZFILE* b, void* buf, int len );</pre>
+<p>Reads/writes data from/to a previously opened
+<code class="computeroutput">BZFILE</code>. Analogous to
+<code class="computeroutput">fread</code> and
+<code class="computeroutput">fwrite</code>.</p>
+<pre class="programlisting">int BZ2_bzflush ( BZFILE* b );
+void BZ2_bzclose ( BZFILE* b );</pre>
+<p>Flushes/closes a <code class="computeroutput">BZFILE</code>.
+<code class="computeroutput">BZ2_bzflush</code> doesn't actually do
+anything. Analogous to <code class="computeroutput">fflush</code>
+and <code class="computeroutput">fclose</code>.</p>
+<pre class="programlisting">const char * BZ2_bzerror ( BZFILE *b, int *errnum )</pre>
+<p>Returns a string describing the more recent error status of
+<code class="computeroutput">b</code>, and also sets
+<code class="computeroutput">*errnum</code> to its numerical
+value.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="stdio-free"></a>3.7. Using the library in a stdio-free environment</h2></div></div></div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="stdio-bye"></a>3.7.1. Getting rid of stdio</h3></div></div></div>
+<p>In a deeply embedded application, you might want to use
+just the memory-to-memory functions. You can do this
+conveniently by compiling the library with preprocessor symbol
+<code class="computeroutput">BZ_NO_STDIO</code> defined. Doing this
+gives you a library containing only the following eight
+functions:</p>
+<p><code class="computeroutput">BZ2_bzCompressInit</code>,
+<code class="computeroutput">BZ2_bzCompress</code>,
+<code class="computeroutput">BZ2_bzCompressEnd</code>
+<code class="computeroutput">BZ2_bzDecompressInit</code>,
+<code class="computeroutput">BZ2_bzDecompress</code>,
+<code class="computeroutput">BZ2_bzDecompressEnd</code>
+<code class="computeroutput">BZ2_bzBuffToBuffCompress</code>,
+<code class="computeroutput">BZ2_bzBuffToBuffDecompress</code></p>
+<p>When compiled like this, all functions will ignore
+<code class="computeroutput">verbosity</code> settings.</p>
+</div>
+<div class="sect2">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="critical-error"></a>3.7.2. Critical error handling</h3></div></div></div>
+<p><code class="computeroutput">libbzip2</code> contains a number
+of internal assertion checks which should, needless to say, never
+be activated. Nevertheless, if an assertion should fail,
+behaviour depends on whether or not the library was compiled with
+<code class="computeroutput">BZ_NO_STDIO</code> set.</p>
+<p>For a normal compile, an assertion failure yields the
+message:</p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>bzip2/libbzip2: internal error number N.</p>
+<p>This is a bug in bzip2/libbzip2, 1.0.8 of 13 July 2019.
+Please report it to: bzip2-devel@sourceware.org. If this happened
+when you were using some program which uses libbzip2 as a
+component, you should also report this bug to the author(s)
+of that program. Please make an effort to report this bug;
+timely and accurate bug reports eventually lead to higher
+quality software. Thanks.
+</p>
+</blockquote></div>
+<p>where <code class="computeroutput">N</code> is some error code
+number. If <code class="computeroutput">N == 1007</code>, it also
+prints some extra text advising the reader that unreliable memory
+is often associated with internal error 1007. (This is a
+frequently-observed-phenomenon with versions 1.0.0/1.0.1).</p>
+<p><code class="computeroutput">exit(3)</code> is then
+called.</p>
+<p>For a <code class="computeroutput">stdio</code>-free library,
+assertion failures result in a call to a function declared
+as:</p>
+<pre class="programlisting">extern void bz_internal_error ( int errcode );</pre>
+<p>The relevant code is passed as a parameter. You should
+supply such a function.</p>
+<p>In either case, once an assertion failure has occurred, any
+<code class="computeroutput">bz_stream</code> records involved can
+be regarded as invalid. You should not attempt to resume normal
+operation with them.</p>
+<p>You may, of course, change critical error handling to suit
+your needs. As I said above, critical errors indicate bugs in
+the library and should not occur. All "normal" error situations
+are indicated via error return codes from functions, and can be
+recovered from.</p>
+</div>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="win-dll"></a>3.8. Making a Windows DLL</h2></div></div></div>
+<p>Everything related to Windows has been contributed by
+Yoshioka Tsuneo
+(<code class="computeroutput">tsuneo@rr.iij4u.or.jp</code>), so
+you should send your queries to him (but please Cc:
+<code class="computeroutput">bzip2-devel@sourceware.org</code>).</p>
+<p>My vague understanding of what to do is: using Visual C++
+5.0, open the project file
+<code class="computeroutput">libbz2.dsp</code>, and build. That's
+all.</p>
+<p>If you can't open the project file for some reason, make a
+new one, naming these files:
+<code class="computeroutput">blocksort.c</code>,
+<code class="computeroutput">bzlib.c</code>,
+<code class="computeroutput">compress.c</code>,
+<code class="computeroutput">crctable.c</code>,
+<code class="computeroutput">decompress.c</code>,
+<code class="computeroutput">huffman.c</code>,
+<code class="computeroutput">randtable.c</code> and
+<code class="computeroutput">libbz2.def</code>. You will also need
+to name the header files <code class="computeroutput">bzlib.h</code>
+and <code class="computeroutput">bzlib_private.h</code>.</p>
+<p>If you don't use VC++, you may need to define the
+proprocessor symbol
+<code class="computeroutput">_WIN32</code>.</p>
+<p>Finally, <code class="computeroutput">dlltest.c</code> is a
+sample program using the DLL. It has a project file,
+<code class="computeroutput">dlltest.dsp</code>.</p>
+<p>If you just want a makefile for Visual C, have a look at
+<code class="computeroutput">makefile.msc</code>.</p>
+<p>Be aware that if you compile
+<code class="computeroutput">bzip2</code> itself on Win32, you must
+set <code class="computeroutput">BZ_UNIX</code> to 0 and
+<code class="computeroutput">BZ_LCCWIN32</code> to 1, in the file
+<code class="computeroutput">bzip2.c</code>, before compiling.
+Otherwise the resulting binary won't work correctly.</p>
+<p>I haven't tried any of this stuff myself, but it all looks
+plausible.</p>
+</div>
+</div>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="misc"></a>4. Miscellanea</h1></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl class="toc">
+<dt><span class="sect1"><a href="#limits">4.1. Limitations of the compressed file format</a></span></dt>
+<dt><span class="sect1"><a href="#port-issues">4.2. Portability issues</a></span></dt>
+<dt><span class="sect1"><a href="#bugs">4.3. Reporting bugs</a></span></dt>
+<dt><span class="sect1"><a href="#package">4.4. Did you get the right package?</a></span></dt>
+<dt><span class="sect1"><a href="#reading">4.5. Further Reading</a></span></dt>
+</dl>
+</div>
+<p>These are just some random thoughts of mine. Your mileage
+may vary.</p>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="limits"></a>4.1. Limitations of the compressed file format</h2></div></div></div>
+<p><code class="computeroutput">bzip2-1.0.X</code>,
+<code class="computeroutput">0.9.5</code> and
+<code class="computeroutput">0.9.0</code> use exactly the same file
+format as the original version,
+<code class="computeroutput">bzip2-0.1</code>. This decision was
+made in the interests of stability. Creating yet another
+incompatible compressed file format would create further
+confusion and disruption for users.</p>
+<p>Nevertheless, this is not a painless decision. Development
+work since the release of
+<code class="computeroutput">bzip2-0.1</code> in August 1997 has
+shown complexities in the file format which slow down
+decompression and, in retrospect, are unnecessary. These
+are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p>The run-length encoder, which is the first of the
+ compression transformations, is entirely irrelevant. The
+ original purpose was to protect the sorting algorithm from the
+ very worst case input: a string of repeated symbols. But
+ algorithm steps Q6a and Q6b in the original Burrows-Wheeler
+ technical report (SRC-124) show how repeats can be handled
+ without difficulty in block sorting.</p></li>
+<li class="listitem" style="list-style-type: disc">
+<p>The randomisation mechanism doesn't really need to be
+ there. Udi Manber and Gene Myers published a suffix array
+ construction algorithm a few years back, which can be employed
+ to sort any block, no matter how repetitive, in O(N log N)
+ time. Subsequent work by Kunihiko Sadakane has produced a
+ derivative O(N (log N)^2) algorithm which usually outperforms
+ the Manber-Myers algorithm.</p>
+<p>I could have changed to Sadakane's algorithm, but I find
+ it to be slower than <code class="computeroutput">bzip2</code>'s
+ existing algorithm for most inputs, and the randomisation
+ mechanism protects adequately against bad cases. I didn't
+ think it was a good tradeoff to make. Partly this is due to
+ the fact that I was not flooded with email complaints about
+ <code class="computeroutput">bzip2-0.1</code>'s performance on
+ repetitive data, so perhaps it isn't a problem for real
+ inputs.</p>
+<p>Probably the best long-term solution, and the one I have
+ incorporated into 0.9.5 and above, is to use the existing
+ sorting algorithm initially, and fall back to a O(N (log N)^2)
+ algorithm if the standard algorithm gets into
+ difficulties.</p>
+</li>
+<li class="listitem" style="list-style-type: disc"><p>The compressed file format was never designed to be
+ handled by a library, and I have had to jump though some hoops
+ to produce an efficient implementation of decompression. It's
+ a bit hairy. Try passing
+ <code class="computeroutput">decompress.c</code> through the C
+ preprocessor and you'll see what I mean. Much of this
+ complexity could have been avoided if the compressed size of
+ each block of data was recorded in the data stream.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>An Adler-32 checksum, rather than a CRC32 checksum,
+ would be faster to compute.</p></li>
+</ul></div>
+<p>It would be fair to say that the
+<code class="computeroutput">bzip2</code> format was frozen before I
+properly and fully understood the performance consequences of
+doing so.</p>
+<p>Improvements which I was able to incorporate into 0.9.0,
+despite using the same file format, are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc"><p>Single array implementation of the inverse BWT. This
+ significantly speeds up decompression, presumably because it
+ reduces the number of cache misses.</p></li>
+<li class="listitem" style="list-style-type: disc"><p>Faster inverse MTF transform for large MTF values.
+ The new implementation is based on the notion of sliding blocks
+ of values.</p></li>
+<li class="listitem" style="list-style-type: disc"><p><code class="computeroutput">bzip2-0.9.0</code> now reads
+ and writes files with <code class="computeroutput">fread</code>
+ and <code class="computeroutput">fwrite</code>; version 0.1 used
+ <code class="computeroutput">putc</code> and
+ <code class="computeroutput">getc</code>. Duh! Well, you live
+ and learn.</p></li>
+</ul></div>
+<p>Further ahead, it would be nice to be able to do random
+access into files. This will require some careful design of
+compressed file formats.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="port-issues"></a>4.2. Portability issues</h2></div></div></div>
+<p>After some consideration, I have decided not to use GNU
+<code class="computeroutput">autoconf</code> to configure 0.9.5 or
+1.0.</p>
+<p><code class="computeroutput">autoconf</code>, admirable and
+wonderful though it is, mainly assists with portability problems
+between Unix-like platforms. But
+<code class="computeroutput">bzip2</code> doesn't have much in the
+way of portability problems on Unix; most of the difficulties
+appear when porting to the Mac, or to Microsoft's operating
+systems. <code class="computeroutput">autoconf</code> doesn't help
+in those cases, and brings in a whole load of new
+complexity.</p>
+<p>Most people should be able to compile the library and
+program under Unix straight out-of-the-box, so to speak,
+especially if you have a version of GNU C available.</p>
+<p>There are a couple of
+<code class="computeroutput">__inline__</code> directives in the
+code. GNU C (<code class="computeroutput">gcc</code>) should be
+able to handle them. If you're not using GNU C, your C compiler
+shouldn't see them at all. If your compiler does, for some
+reason, see them and doesn't like them, just
+<code class="computeroutput">#define</code>
+<code class="computeroutput">__inline__</code> to be
+<code class="computeroutput">/* */</code>. One easy way to do this
+is to compile with the flag
+<code class="computeroutput">-D__inline__=</code>, which should be
+understood by most Unix compilers.</p>
+<p>If you still have difficulties, try compiling with the
+macro <code class="computeroutput">BZ_STRICT_ANSI</code> defined.
+This should enable you to build the library in a strictly ANSI
+compliant environment. Building the program itself like this is
+dangerous and not supported, since you remove
+<code class="computeroutput">bzip2</code>'s checks against
+compressing directories, symbolic links, devices, and other
+not-really-a-file entities. This could cause filesystem
+corruption!</p>
+<p>One other thing: if you create a
+<code class="computeroutput">bzip2</code> binary for public distribution,
+please consider linking it statically (<code class="computeroutput">gcc
+-static</code>). This avoids all sorts of library-version
+issues that others may encounter later on.</p>
+<p>If you build <code class="computeroutput">bzip2</code> on
+Win32, you must set <code class="computeroutput">BZ_UNIX</code> to 0
+and <code class="computeroutput">BZ_LCCWIN32</code> to 1, in the
+file <code class="computeroutput">bzip2.c</code>, before compiling.
+Otherwise the resulting binary won't work correctly.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bugs"></a>4.3. Reporting bugs</h2></div></div></div>
+<p>I tried pretty hard to make sure
+<code class="computeroutput">bzip2</code> is bug free, both by
+design and by testing. Hopefully you'll never need to read this
+section for real.</p>
+<p>Nevertheless, if <code class="computeroutput">bzip2</code> dies
+with a segmentation fault, a bus error or an internal assertion
+failure, it will ask you to email me a bug report. Experience from
+years of feedback of bzip2 users indicates that almost all these
+problems can be traced to either compiler bugs or hardware
+problems.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: bullet; ">
+<li class="listitem" style="list-style-type: disc">
+<p>Recompile the program with no optimisation, and
+ see if it works. And/or try a different compiler. I heard all
+ sorts of stories about various flavours of GNU C (and other
+ compilers) generating bad code for
+ <code class="computeroutput">bzip2</code>, and I've run across two
+ such examples myself.</p>
+<p>2.7.X versions of GNU C are known to generate bad code
+ from time to time, at high optimisation levels. If you get
+ problems, try using the flags
+ <code class="computeroutput">-O2</code>
+ <code class="computeroutput">-fomit-frame-pointer</code>
+ <code class="computeroutput">-fno-strength-reduce</code>. You
+ should specifically <span class="emphasis"><em>not</em></span> use
+ <code class="computeroutput">-funroll-loops</code>.</p>
+<p>You may notice that the Makefile runs six tests as part
+ of the build process. If the program passes all of these, it's
+ a pretty good (but not 100%) indication that the compiler has
+ done its job correctly.</p>
+</li>
+<li class="listitem" style="list-style-type: disc">
+<p>If <code class="computeroutput">bzip2</code>
+ crashes randomly, and the crashes are not repeatable, you may
+ have a flaky memory subsystem.
+ <code class="computeroutput">bzip2</code> really hammers your
+ memory hierarchy, and if it's a bit marginal, you may get these
+ problems. Ditto if your disk or I/O subsystem is slowly
+ failing. Yup, this really does happen.</p>
+<p>Try using a different machine of the same type, and see
+ if you can repeat the problem.</p>
+</li>
+<li class="listitem" style="list-style-type: disc"><p>This isn't really a bug, but ... If
+ <code class="computeroutput">bzip2</code> tells you your file is
+ corrupted on decompression, and you obtained the file via FTP,
+ there is a possibility that you forgot to tell FTP to do a
+ binary mode transfer. That absolutely will cause the file to
+ be non-decompressible. You'll have to transfer it
+ again.</p></li>
+</ul></div>
+<p>If you've incorporated
+<code class="computeroutput">libbzip2</code> into your own program
+and are getting problems, please, please, please, check that the
+parameters you are passing in calls to the library, are correct,
+and in accordance with what the documentation says is allowable.
+I have tried to make the library robust against such problems,
+but I'm sure I haven't succeeded.</p>
+<p>Finally, if the above comments don't help, you'll have to
+send me a bug report. Now, it's just amazing how many people
+will send me a bug report saying something like:</p>
+<pre class="programlisting">bzip2 crashed with segmentation fault on my machine</pre>
+<p>and absolutely nothing else. Needless to say, a such a
+report is <span class="emphasis"><em>totally, utterly, completely and
+comprehensively 100% useless; a waste of your time, my time, and
+net bandwidth</em></span>. With no details at all, there's no way
+I can possibly begin to figure out what the problem is.</p>
+<p>The rules of the game are: facts, facts, facts. Don't omit
+them because "oh, they won't be relevant". At the bare
+minimum:</p>
+<pre class="programlisting">Machine type. Operating system version.
+Exact version of bzip2 (do bzip2 -V).
+Exact version of the compiler used.
+Flags passed to the compiler.</pre>
+<p>However, the most important single thing that will help me
+is the file that you were trying to compress or decompress at the
+time the problem happened. Without that, my ability to do
+anything more than speculate about the cause, is limited.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="package"></a>4.4. Did you get the right package?</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> is a resource hog.
+It soaks up large amounts of CPU cycles and memory. Also, it
+gives very large latencies. In the worst case, you can feed many
+megabytes of uncompressed data into the library before getting
+any compressed output, so this probably rules out applications
+requiring interactive behaviour.</p>
+<p>These aren't faults of my implementation, I hope, but more
+an intrinsic property of the Burrows-Wheeler transform
+(unfortunately). Maybe this isn't what you want.</p>
+<p>If you want a compressor and/or library which is faster,
+uses less memory but gets pretty good compression, and has
+minimal latency, consider Jean-loup Gailly's and Mark Adler's
+work, <code class="computeroutput">zlib-1.2.1</code> and
+<code class="computeroutput">gzip-1.2.4</code>. Look for them at
+<a class="ulink" href="http://www.zlib.org" target="_top">http://www.zlib.org</a> and
+<a class="ulink" href="http://www.gzip.org" target="_top">http://www.gzip.org</a>
+respectively.</p>
+<p>For something faster and lighter still, you might try Markus F
+X J Oberhumer's <code class="computeroutput">LZO</code> real-time
+compression/decompression library, at
+<a class="ulink" href="http://www.oberhumer.com/opensource" target="_top">http://www.oberhumer.com/opensource</a>.</p>
+</div>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="reading"></a>4.5. Further Reading</h2></div></div></div>
+<p><code class="computeroutput">bzip2</code> is not research
+work, in the sense that it doesn't present any new ideas.
+Rather, it's an engineering exercise based on existing
+ideas.</p>
+<p>Four documents describe essentially all the ideas behind
+<code class="computeroutput">bzip2</code>:</p>
+<div class="literallayout"><p>Michael Burrows and D. J. Wheeler:<br>
+  "A block-sorting lossless data compression algorithm"<br>
+   10th May 1994. <br>
+   Digital SRC Research Report 124.<br>
+   ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz<br>
+   If you have trouble finding it, try searching at the<br>
+   New Zealand Digital Library, http://www.nzdl.org.<br>
+<br>
+Daniel S. Hirschberg and Debra A. LeLewer<br>
+  "Efficient Decoding of Prefix Codes"<br>
+   Communications of the ACM, April 1990, Vol 33, Number 4.<br>
+   You might be able to get an electronic copy of this<br>
+   from the ACM Digital Library.<br>
+<br>
+David J. Wheeler<br>
+   Program bred3.c and accompanying document bred3.ps.<br>
+   This contains the idea behind the multi-table Huffman coding scheme.<br>
+   ftp://ftp.cl.cam.ac.uk/users/djw3/<br>
+<br>
+Jon L. Bentley and Robert Sedgewick<br>
+  "Fast Algorithms for Sorting and Searching Strings"<br>
+   Available from Sedgewick's web page,<br>
+   www.cs.princeton.edu/~rs<br>
+</p></div>
+<p>The following paper gives valuable additional insights into
+the algorithm, but is not immediately the basis of any code used
+in bzip2.</p>
+<div class="literallayout"><p>Peter Fenwick:<br>
+   Block Sorting Text Compression<br>
+   Proceedings of the 19th Australasian Computer Science Conference,<br>
+     Melbourne, Australia.  Jan 31 - Feb 2, 1996.<br>
+   ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps</p></div>
+<p>Kunihiko Sadakane's sorting algorithm, mentioned above, is
+available from:</p>
+<div class="literallayout"><p>http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz<br>
+</p></div>
+<p>The Manber-Myers suffix array construction algorithm is
+described in a paper available from:</p>
+<div class="literallayout"><p>http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps<br>
+</p></div>
+<p>Finally, the following papers document some
+investigations I made into the performance of sorting
+and decompression algorithms:</p>
+<div class="literallayout"><p>Julian Seward<br>
+   On the Performance of BWT Sorting Algorithms<br>
+   Proceedings of the IEEE Data Compression Conference 2000<br>
+     Snowbird, Utah.  28-30 March 2000.<br>
+<br>
+Julian Seward<br>
+   Space-time Tradeoffs in the Inverse B-W Transform<br>
+   Proceedings of the IEEE Data Compression Conference 2001<br>
+     Snowbird, Utah.  27-29 March 2001.<br>
+</p></div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.pdf b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.pdf
new file mode 100644
index 000000000..ce62ac48f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.pdf
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.ps b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.ps
new file mode 100644
index 000000000..7172dbdce
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.ps
@@ -0,0 +1,216419 @@
+%!PS-Adobe-3.0
+%Produced by poppler pdftops version: 0.26.5 (http://poppler.freedesktop.org)
+%%Creator: PassiveTeX 1.25
+%%LanguageLevel: 2
+%%DocumentSuppliedResources: (atend)
+%%DocumentMedia: Letter 612 792 0 () ()
+%%BoundingBox: 0 0 612 792
+%%Pages: 38
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset xpdf 3.00 0
+%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC
+/xpdf 75 dict def xpdf begin
+% PDF special state
+/pdfDictSize 15 def
+/pdfSetup {
+ /setpagedevice where {
+ pop 2 dict begin
+ /Policies 1 dict dup begin /PageSize 6 def end def
+ { /Duplex true def } if
+ currentdict end setpagedevice
+ } {
+ pop
+ } ifelse
+} def
+/pdfSetupPaper {
+ % Change paper size, but only if different from previous paper size otherwise
+ % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size
+ % so we use the same when checking if the size changes.
+ /setpagedevice where {
+ pop currentpagedevice
+ /PageSize known {
+ 2 copy
+ currentpagedevice /PageSize get aload pop
+ exch 4 1 roll
+ sub abs 5 gt
+ 3 1 roll
+ sub abs 5 gt
+ or
+ } {
+ true
+ } ifelse
+ {
+ 2 array astore
+ 2 dict begin
+ /PageSize exch def
+ /ImagingBBox null def
+ currentdict end
+ setpagedevice
+ } {
+ pop pop
+ } ifelse
+ } {
+ pop
+ } ifelse
+} def
+/pdfStartPage {
+ pdfDictSize dict begin
+ /pdfFillCS [] def
+ /pdfFillXform {} def
+ /pdfStrokeCS [] def
+ /pdfStrokeXform {} def
+ /pdfFill [0] def
+ /pdfStroke [0] def
+ /pdfFillOP false def
+ /pdfStrokeOP false def
+ /pdfLastFill false def
+ /pdfLastStroke false def
+ /pdfTextMat [1 0 0 1 0 0] def
+ /pdfFontSize 0 def
+ /pdfCharSpacing 0 def
+ /pdfTextRender 0 def
+ /pdfPatternCS false def
+ /pdfTextRise 0 def
+ /pdfWordSpacing 0 def
+ /pdfHorizScaling 1 def
+ /pdfTextClipPath [] def
+} def
+/pdfEndPage { end } def
+% PDF color state
+/cs { /pdfFillXform exch def dup /pdfFillCS exch def
+ setcolorspace } def
+/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def
+ setcolorspace } def
+/sc { pdfLastFill not { pdfFillCS setcolorspace } if
+ dup /pdfFill exch def aload pop pdfFillXform setcolor
+ /pdfLastFill true def /pdfLastStroke false def } def
+/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if
+ dup /pdfStroke exch def aload pop pdfStrokeXform setcolor
+ /pdfLastStroke true def /pdfLastFill false def } def
+/op { /pdfFillOP exch def
+ pdfLastFill { pdfFillOP setoverprint } if } def
+/OP { /pdfStrokeOP exch def
+ pdfLastStroke { pdfStrokeOP setoverprint } if } def
+/fCol {
+ pdfLastFill not {
+ pdfFillCS setcolorspace
+ pdfFill aload pop pdfFillXform setcolor
+ pdfFillOP setoverprint
+ /pdfLastFill true def /pdfLastStroke false def
+ } if
+} def
+/sCol {
+ pdfLastStroke not {
+ pdfStrokeCS setcolorspace
+ pdfStroke aload pop pdfStrokeXform setcolor
+ pdfStrokeOP setoverprint
+ /pdfLastStroke true def /pdfLastFill false def
+ } if
+} def
+% build a font
+/pdfMakeFont {
+ 4 3 roll findfont
+ 4 2 roll matrix scale makefont
+ dup length dict begin
+ { 1 index /FID ne { def } { pop pop } ifelse } forall
+ /Encoding exch def
+ currentdict
+ end
+ definefont pop
+} def
+/pdfMakeFont16 {
+ exch findfont
+ dup length dict begin
+ { 1 index /FID ne { def } { pop pop } ifelse } forall
+ /WMode exch def
+ currentdict
+ end
+ definefont pop
+} def
+% graphics state operators
+/q { gsave pdfDictSize dict begin } def
+/Q {
+ end grestore
+ /pdfLastFill where {
+ pop
+ pdfLastFill {
+ pdfFillOP setoverprint
+ } {
+ pdfStrokeOP setoverprint
+ } ifelse
+ } if
+} def
+/cm { concat } def
+/d { setdash } def
+/i { setflat } def
+/j { setlinejoin } def
+/J { setlinecap } def
+/M { setmiterlimit } def
+/w { setlinewidth } def
+% path segment operators
+/m { moveto } def
+/l { lineto } def
+/c { curveto } def
+/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } def
+/h { closepath } def
+% path painting operators
+/S { sCol stroke } def
+/Sf { fCol stroke } def
+/f { fCol fill } def
+/f* { fCol eofill } def
+% clipping operators
+/W { clip newpath } def
+/W* { eoclip newpath } def
+/Ws { strokepath clip newpath } def
+% text state operators
+/Tc { /pdfCharSpacing exch def } def
+/Tf { dup /pdfFontSize exch def
+ dup pdfHorizScaling mul exch matrix scale
+ pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put
+ exch findfont exch makefont setfont } def
+/Tr { /pdfTextRender exch def } def
+/Tp { /pdfPatternCS exch def } def
+/Ts { /pdfTextRise exch def } def
+/Tw { /pdfWordSpacing exch def } def
+/Tz { /pdfHorizScaling exch def } def
+% text positioning operators
+/Td { pdfTextMat transform moveto } def
+/Tm { /pdfTextMat exch def } def
+% text string operators
+/xyshow where {
+ pop
+ /xyshow2 {
+ dup length array
+ 0 2 2 index length 1 sub {
+ 2 index 1 index 2 copy get 3 1 roll 1 add get
+ pdfTextMat dtransform
+ 4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put
+ } for
+ exch pop
+ xyshow
+ } def
+}{
+ /xyshow2 {
+ currentfont /FontType get 0 eq {
+ 0 2 3 index length 1 sub {
+ currentpoint 4 index 3 index 2 getinterval show moveto
+ 2 copy get 2 index 3 2 roll 1 add get
+ pdfTextMat dtransform rmoveto
+ } for
+ } {
+ 0 1 3 index length 1 sub {
+ currentpoint 4 index 3 index 1 getinterval show moveto
+ 2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get
+ pdfTextMat dtransform rmoveto
+ } for
+ } ifelse
+ pop pop
+ } def
+} ifelse
+/cshow where {
+ pop
+ /xycp {
+ 0 3 2 roll
+ {
+ pop pop currentpoint 3 2 roll
+ 1 string dup 0 4 3 roll put false charpath moveto
+ 2 copy get 2 index 2 index 1 add get
+ pdfTextMat dtransform rmoveto
+ 2 add
+ } exch cshow
+ pop pop
+ } def
+}{
+ /xycp {
+ currentfont /FontType get 0 eq {
+ 0 2 3 index length 1 sub {
+ currentpoint 4 index 3 index 2 getinterval false charpath moveto
+ 2 copy get 2 index 3 2 roll 1 add get
+ pdfTextMat dtransform rmoveto
+ } for
+ } {
+ 0 1 3 index length 1 sub {
+ currentpoint 4 index 3 index 1 getinterval false charpath moveto
+ 2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get
+ pdfTextMat dtransform rmoveto
+ } for
+ } ifelse
+ pop pop
+ } def
+} ifelse
+/Tj {
+ fCol
+ 0 pdfTextRise pdfTextMat dtransform rmoveto
+ currentpoint 4 2 roll
+ pdfTextRender 1 and 0 eq {
+ 2 copy xyshow2
+ } if
+ pdfTextRender 3 and dup 1 eq exch 2 eq or {
+ 3 index 3 index moveto
+ 2 copy
+ currentfont /FontType get 3 eq { fCol } { sCol } ifelse
+ xycp currentpoint stroke moveto
+ } if
+ pdfTextRender 4 and 0 ne {
+ 4 2 roll moveto xycp
+ /pdfTextClipPath [ pdfTextClipPath aload pop
+ {/moveto cvx}
+ {/lineto cvx}
+ {/curveto cvx}
+ {/closepath cvx}
+ pathforall ] def
+ currentpoint newpath moveto
+ } {
+ pop pop pop pop
+ } ifelse
+ 0 pdfTextRise neg pdfTextMat dtransform rmoveto
+} def
+/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0
+ pdfTextMat dtransform rmoveto } def
+/TJmV { 0.001 mul pdfFontSize mul neg 0 exch
+ pdfTextMat dtransform rmoveto } def
+/Tclip { pdfTextClipPath cvx exec clip newpath
+ /pdfTextClipPath [] def } def
+/Tclip* { pdfTextClipPath cvx exec eoclip newpath
+ /pdfTextClipPath [] def } def
+% Level 2/3 image operators
+/pdfImBuf 100 string def
+/pdfImStr {
+ 2 copy exch length lt {
+ 2 copy get exch 1 add exch
+ } {
+ ()
+ } ifelse
+} def
+/skipEOD {
+ { currentfile pdfImBuf readline
+ not { pop exit } if
+ (%-EOD-) eq { exit } if } loop
+} def
+/pdfIm { image skipEOD } def
+/pdfImM { fCol imagemask skipEOD } def
+/pr { 2 index 2 index 3 2 roll putinterval 4 add } def
+/pdfImClip {
+ gsave
+ 0 2 4 index length 1 sub {
+ dup 4 index exch 2 copy
+ get 5 index div put
+ 1 add 3 index exch 2 copy
+ get 3 index div put
+ } for
+ pop pop rectclip
+} def
+/pdfImClipEnd { grestore } def
+% shading operators
+/colordelta {
+ false 0 1 3 index length 1 sub {
+ dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {
+ pop true
+ } if
+ } for
+ exch pop exch pop
+} def
+/funcCol { func n array astore } def
+/funcSH {
+ dup 0 eq {
+ true
+ } {
+ dup 6 eq {
+ false
+ } {
+ 4 index 4 index funcCol dup
+ 6 index 4 index funcCol dup
+ 3 1 roll colordelta 3 1 roll
+ 5 index 5 index funcCol dup
+ 3 1 roll colordelta 3 1 roll
+ 6 index 8 index funcCol dup
+ 3 1 roll colordelta 3 1 roll
+ colordelta or or or
+ } ifelse
+ } ifelse
+ {
+ 1 add
+ 4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch
+ 6 index 6 index 4 index 4 index 4 index funcSH
+ 2 index 6 index 6 index 4 index 4 index funcSH
+ 6 index 2 index 4 index 6 index 4 index funcSH
+ 5 3 roll 3 2 roll funcSH pop pop
+ } {
+ pop 3 index 2 index add 0.5 mul 3 index 2 index add 0.5 mul
+ funcCol sc
+ dup 4 index exch mat transform m
+ 3 index 3 index mat transform l
+ 1 index 3 index mat transform l
+ mat transform l pop pop h f*
+ } ifelse
+} def
+/axialCol {
+ dup 0 lt {
+ pop t0
+ } {
+ dup 1 gt {
+ pop t1
+ } {
+ dt mul t0 add
+ } ifelse
+ } ifelse
+ func n array astore
+} def
+/axialSH {
+ dup 0 eq {
+ true
+ } {
+ dup 8 eq {
+ false
+ } {
+ 2 index axialCol 2 index axialCol colordelta
+ } ifelse
+ } ifelse
+ {
+ 1 add 3 1 roll 2 copy add 0.5 mul
+ dup 4 3 roll exch 4 index axialSH
+ exch 3 2 roll axialSH
+ } {
+ pop 2 copy add 0.5 mul
+ axialCol sc
+ exch dup dx mul x0 add exch dy mul y0 add
+ 3 2 roll dup dx mul x0 add exch dy mul y0 add
+ dx abs dy abs ge {
+ 2 copy yMin sub dy mul dx div add yMin m
+ yMax sub dy mul dx div add yMax l
+ 2 copy yMax sub dy mul dx div add yMax l
+ yMin sub dy mul dx div add yMin l
+ h f*
+ } {
+ exch 2 copy xMin sub dx mul dy div add xMin exch m
+ xMax sub dx mul dy div add xMax exch l
+ exch 2 copy xMax sub dx mul dy div add xMax exch l
+ xMin sub dx mul dy div add xMin exch l
+ h f*
+ } ifelse
+ } ifelse
+} def
+/radialCol {
+ dup t0 lt {
+ pop t0
+ } {
+ dup t1 gt {
+ pop t1
+ } if
+ } ifelse
+ func n array astore
+} def
+/radialSH {
+ dup 0 eq {
+ true
+ } {
+ dup 8 eq {
+ false
+ } {
+ 2 index dt mul t0 add radialCol
+ 2 index dt mul t0 add radialCol colordelta
+ } ifelse
+ } ifelse
+ {
+ 1 add 3 1 roll 2 copy add 0.5 mul
+ dup 4 3 roll exch 4 index radialSH
+ exch 3 2 roll radialSH
+ } {
+ pop 2 copy add 0.5 mul dt mul t0 add
+ radialCol sc
+ encl {
+ exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ 0 360 arc h
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ 360 0 arcn h f
+ } {
+ 2 copy
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ a1 a2 arcn
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ a2 a1 arcn h
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ a1 a2 arc
+ dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add
+ a2 a1 arc h f
+ } ifelse
+ } ifelse
+} def
+end
+%%EndResource
+%%EndProlog
+%%BeginSetup
+xpdf begin
+%%BeginResource: font PYRIYB+NimbusSanL-Bold
+%!PS-AdobeFont-1.0: NimbusSanL-Bold 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Sans L Bold) readonly def
+/FamilyName (Nimbus Sans L) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -155 def
+/UnderlineThickness 69 def
+end readonly def
+/FontName /PYRIYB+NimbusSanL-Bold def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-173 -307 1003 949} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fd772dae3a9d9385cd2163
+c2c8062ef9af240bc02404e5411b401d68ee5d983d33df8a63b6da7ed443e71a
+e94a32ce1db15d759113b684bdc92cb4c920e35cb677534219abcea434fba862
+2fbc8237219af7943fb467616d86b4251b350647c43c8df74289646adecf0367
+7c838d720affd234259e947e6ac432993323e8fc0b1c7609675558ae470b19fc
+ba7b5ca1eff86dfe4d9ef0356f5d57d03f0b2d0f449d6165b92c78c00162b164
+648ca123b1ffa8c2bcdf125864ccc81c7d58f19374b71dcdacc3c43450bca81c
+364753c7d444062a98ce202aa990c652d540b1dd09459bd4818f7675d21cd2e1
+45a0d2670c3136a6c56fed36fa640520c0a880f954cf4bea74789d14c9b7ca0a
+e91f4ece020bb0d3cf1890cb79d94675c25c7ca667199195134e70ef0db9949a
+416f0a0443f1191421f2323202445f5af44871eed6956d3a3de21a34e302d41b
+d7eef2a4023a66862fef89ca6386a8e47ba55e6f89db590cc810feb27b68238a
+205275e7573968693cfe1f8a60b5af3fc965dc05bbac5bbd6d2ef74c4f140423
+9fb13eda8457a5b26248ca5ca4d3f896b0a93b69a9045b0adc25b43df700e90b
+820f28307cc6f6ff2fa4a06a8a6deb8cba4cb0d136da07593fabc1c8ba1149d9
+1c422f461a429ece40b7c90417320167d99ffa9490f9abc3101f2359bef6c6f2
+15c5585c8733ca06a9cb793d618247757063ff41c5fce1a209ea5a138777dad8
+943b73186bc17e03fb06ba658e5b3305e39078f5de984bfe093ab3d782150e2f
+8545c9601bd2a531a8196e157f8f18017c0331881abf07d6c21931fcf9b81c51
+be05d2ace462ab8899e2929f0d821eddb18e9887cb7e8e3ae0beda34ccd0428a
+38c4429417cebce5ef4bebf7f64eedca8769d004d2432ded2240b732481a6da7
+458cd26e4730c4aecdc1078ee3fbaf6cd275b426bbca2d0cbd42eb7b100b1c58
+f043391fc5929fca7ccb7d2188b6cec6bbdb78079e36d67129c17aef9fa72fa7
+5357dda5167e3c0ddb4f9266f3ef69c2ce9b6191ba911c1fc740549496aa76af
+b86e4fddc0f31f92595f8bc0bdd3ac613b16426d722c0d27822944899572bdd7
+96d248b1adba5ec18a7f0cab096e134c36b2fcccd0b2104e43b2123936dbf7d6
+e0706616a7676da73a30a36cfe2231fba5e1fe69952a2f0ac15145c5cff411a8
+b57db37742efd6b78096d0fc69fbcdea39cb05d034f31c23b04ee90fcb4484ab
+2053e8dd69a2eaf120a6bb64bd55409ab4b6a6e92d305e40974b0df80009f4d9
+8fe9e8aceddb346f8e75941c1189aeb685f4f02d20814ad6bbe3c4364bd1c64f
+9c1f111790dd74d635520606a6bc978b65ccb6e8bcfd8fdbae26ea62e36d0317
+5564995f2a07393255d7c3450303f5a26b783afa95962e9438fc3b10239fc8be
+7809f48340aa9a61ded2e1de62b8ece240dbd1dc8be3819ac3e9aacb6e165923
+4a264036c6017b46af959f7e574185e66a3a161eed1f99b8496a9fcfac13492d
+fe3f21bf1c0c1dd432fb523701060720730e9f51b76082ef4e72d2f2ebae7a00
+ecc0e1a922d6ded5c4f0a76eef3f6e157210a3a46a4a30114f032ba029d8207a
+5946b8242fc9b939559654b5c9831eab6bc2f1a8cd2779f95698f26bdfe2e421
+cccfadd7e6684364a8ce71574f2d675239e404f754237da4cb564bc7b23d7159
+5b1dd8a0b62d6bc044fe0bd2ea98458fb2188b8ab1af6438e9693ebf939c7c9e
+db285c87698d8eb206cf58d89a05e74a150ae0f0f0300dc1b3bcf1f3d6b73bd4
+70e604c23d313121a4cdcfedcc834feec5b1894e5384979966f496fea5cbf1db
+7f3645abc9a5e9fe04f056648f8b5882a5399fafad915207a1434b7184b48949
+43aa2c3ae059f96905277ec06fc91c4536efe679c6fa6e71167496cc0d2f297d
+d07159b01a02731e578879fb16f9ffd84768207629ba38f902230a03fc844eee
+f9fb458929cc8e1c988b486e9cdc3d00a84de8bf078ba4f1c73cf88a2cbb20a4
+e19a8c02d1bd767103c08b8ce14162a9cd99d167fd5cdbf53bc39fa14cab520b
+2e91ef7a2952c936c9825e30e3ed350ce9ad799b27b1091a0b2f3be2208838d3
+1bcdb3aad13a1299bd93b3f1a972c04f117f05bd9e5029b6c799eb25e3e98734
+a0ca4a814d824ee4ca5383c6eb8c6c45882289cf2a52934fb7764f3556eaebba
+2823e5007f83f6a3d3a6eb0f7fbc3b91320de755745ab44513deeb65d6d81c0d
+838125bc1480d494b8cdecb253a230fb950df5fd1cfdf3b8b0c56aa0168b01aa
+a690593f22c25e6ea9d2de70b8bb93cccde841d2b923b4a70c7cccfdc1c400e5
+d3d71cf640a201397f09e13d27faec5d041b9d904467c4c573c6fb1820a55c1a
+8d0ec1f6ad502bbda597925ab353429a5bbdf3df01066e5cb3c2bf2d19e7df4c
+285766c06ea868f915e051139ecfe22ac9b8466a5da38e4e2f92c01428ac9051
+4930a9e9420c49bb8dac35d2a7e9846b0c9c8db992bd5dd95fdc0c8d5bf2e7d0
+baefc4ce8fe265e57b7b6c8c91e1797db85d90eb1888170744db916ca7e353bc
+4edb9fc4a1d42013ba275d3efc76259e25860a3549d104880157db843cc75fcd
+5a14800ab8743fdacc4c5ff064cbf3ba6e737833850e618ad9674d0fb01918e8
+ba87eb21aab2c494c6f6ff275d1501d78a9a97d2774ef4d5fbc8032955669b04
+69e354b9984fcf4c0b890e4e8a7796d3b7b3855815f5565b13d95b139c32ee02
+4a2057235cef0b98b1c0bb84d64921dce789c2eccf58364e832cc2bef739d807
+012512769f57dfefa384083415b668285db3f6f9e5c850205dba7c66b2da0280
+f771183b302ff529a691590321a6b06dff8593a28e83a7c66008ae45b2989da0
+0455253031ed2da983e9f1ad6fbaaf85035b4715cc1525cc8d7f1a3c0ec40f9c
+9eca905a50a0f4b1f5db072918617213f7863ef202c0adf926e3be1c8307b571
+2c94daf13b6a659d0f613cb319e8782a0a2781b3a61227424ff5e554eba32b55
+de5bae43483ff916e37a129c877f10f7c8c0ec1fee0fe10b3fc813d976e6e54c
+8ea8aeaa179727d3335f86662bd318260fbc314986a2f97f919ccd564e001903
+eec90c13abbf988114cd330ccd7e9fde42e218a9484b565a0cd7e9c1807ada0e
+e6a7f916c5a38d64dae17faae3e84822e6c63bf32148ae3dffc010920509491b
+424d27fc1970abe5ac799936aac46c4a98cf4c66b3182e73df72431e53ab1f36
+460e6c6a9b2db27e38eda8972835ba64210b45dd04a778d59c5751b8478312b4
+38012796f5a8be056c8e3a9e656bfa909f7ebfb7f32fa1ae99dc291b0f002a0f
+8873351e9684adbefe40d607631559c78f5688a708160ad3803db743282353bc
+20098c6212dfad417f106d92527506ca0c9a8864c1eb61997dfedbbbf1d052d9
+81ea593f2a6c4a90676aec9354a6598436d1de7e15e4979344eb976a917471cf
+c85e52ecf3437ebb4b6f8e9b292b7db33be0a9ead500b9353f3f367ceff8dd77
+32b67a559e56ffa3b5311fb52689c1e296c01a362a5c33bbf54b84624f2373bd
+2c25e90644683376f03da577dad1fb9a9903c5ee9f531a5f9da82aadb2098e3d
+15896c3c727d60ee5de0ee1cefa7e4aa3a5336ad2f1a845d16bb2ee58c50d2e8
+055e3e11272224b23c689f2e7ca0051d10ae4d4514b89483ed8d97c2a77894a5
+640d45bc86b1f66de1fd24b08034e70a443cf1c3ee17f2e7c7e11da524781c7a
+75a1f69de55aad4a309e27fc8ae9b1ce1c7d52f94fc84c59f37165e35f0f721a
+9d3d5c3bcead85d8150408c1387e5a348d1f0f376b3cc2d24346280af119df86
+b62f46e2ddf46f38db4aeaa456accf3f29082f73e9c5f003d77d99eea3d5156f
+2043e9b573fe34694910236ef3a1ce03ffb205406f3466e028b635f3ec5173e7
+482c796060bcb0efae62308e3624c466df5b49b1dfd3445233a03cff1f58bf86
+0a2b46225d1784e91f65ecd52504c8605aaf2a5dca560db5b8ce7eb86187e6df
+677c977ab4d1fec4f124324bc896ee7d669aa295897fec0b881221434fae3a4b
+1a3a1f1457fca374bca91885e74543ee919b881181642cb1f6c34ff817fa8e81
+18aa5e21c994d8aa12e1fdf5d6ff6726dd3d075dcd056f046ddd86894235d7db
+fc11532518f8d8695ae74dfbb769528840e8c30572ad06d6ef7b0ed471db9418
+11ea9cd32b4ba6205b5c198bd528b06092df3f50b9714fc1275aa5105a3a7422
+823d4a30d7fd19f77bb2cc4c5df23202d6a74092a710a9a855d8059031ec6ec9
+4d4fc86b37186c46a5cd183a81fc12a743c7168837953d2b5202ade986b4b00d
+86e41a88fad5ba0d91c150f4a7c396a02aef1ae9b96c0cea83b3306785ab3ba5
+39c49d9f984a08a9e8c06d282af94d87606d5601296456b6a0ef4ea8c88a1fcb
+96cd1b1bc0e287adfd1b9aa1a8c8a7d4a6b14ed3b04b1f0532ed5d40238ebf71
+5bd8c8b032afdccd26a940b19a1340b1e93041b2265b8534c099d14f00b82fbb
+2b55d8dc64691c3e5a6dd7c0cdc1212d0c80be2f454a7d8613d0cf64ac5bcc7c
+64d4166bfda12bc262de9cdfc614d7dc1bc569109bb84bf469071963e5a576db
+b19f3e748799d49c30612c1d7fa918d72051db6cfba44520b5b5689c87541560
+292dd6bf1f40f6a5af97c3ff71b1fb57cb36234be973890a1a610551a724abb6
+b01bb5bd1fc5191c9f99b389b6445a99de978b0d81e4baa92e8b121a1e1b32b1
+601a34dbe6cd348e56f59a92af56caa782b3b416958a6f1bb73771f35000fb9e
+a55a132f9b151bea59cafa3a1cc72f7cd60952852c53379530e0a6bd4e9545bd
+f78da021349902332707106bbb5d307960ea2bd811adf35b869bb210e44a5717
+8893af229268d805262725a0904bcb5ea7c17a39552a1f26283f54ae45449943
+5270b17b9afe2e0c0729e5f10461a8ddb85efc35dc8a32bcfebfdb16a0642e5c
+c69e5a25a661cfbd1f3a9386aa2433b68a356f36404f96d97fff817b42a58a62
+a5fcb5653373df412068876f541169bf642bce8458297fb6a6e936d80af2004c
+e9a248e1c92fb63b3e53caadd749924c390fd9f542496cf2347a3a429cc25917
+c31fc437291fa9856a7d3b2b6a5644d82e23a14d0281ed4d8f9dd687e06f23a0
+d0e8a3dab5fe6ded172ebbcac68218092f4480c7ceabc55b059877d7e82d2846
+b4f9e82aabc56f397be2c6b67040dc71a9d1f39b1a60c33288bbae4e41457830
+f8d8c96c8dce7c01bc6efd70e021a0c2d160a61b906a3ea551b7e3fe8c1f9952
+7e9583c6b6010e0887560f1c3e19e0be82efe91f0114e726c888f580d6b514cb
+a0933ccde04de0872dd0e07b1a7cede67bf9f4e73400d118a6d600e13debe6f2
+aa1d895dcc127c76ff82e579a06d8a3a323458808bad060afc953c2158d476d0
+fe0725dee6886bde038e2726886d255dec9052e9ba886a318c75b8c7a218edc5
+78783ab8dd90b738b16cfb47ef8610f428a4315c703763d6b3dda570cd0a89af
+4e6c215ea5395b13a5c1f0883faa2eb2d6de918ec5fef99c21758e4b6bf72861
+b684a28787b63d3ae7f1096b1c56e4862e7f3650884d0803db03362c587e2ed7
+bf5c7f2847bebe35327f1f7fb76f3cf7e9fec9a5c057acedf6245c724a8e754b
+d44e028181b75ad590b3989a7f340fd59c3b75cc4a8e28b155b5da0fbf3cc358
+375edb0992206514347924c69ab28e30c707f24199767937bd7990bc70bd5849
+5c335a752c06bdd9f0520c6d8b2f5fffce931b601151b37f1be9885e41864e31
+1ea0f33e17fb4b844425ee7de31d839ad3a8609bfc9e393079b9a7891e17b48f
+2e5fed17943313afccc55826cc0144c2e7ac9784261bb40d51bbd4467103f432
+865cd4b821dd5be8fc760171b49b70141ce2042376e879013edf8180d185d988
+591f9084536cbf97816291ee77255315987422c2c2489d209d78e0a2fd3fa71c
+28edfc1577db5c080e7881848222220a63605f00205c205b35d0a017013ca099
+deb71a9ffd511549c61f9ee36a63ee00b0610d1b290e073b8a067dd91bf52f9c
+ab53a258ccd29d9220a659e44717f84062d39dd554294996c46e69608ca111e1
+088494c6c3c0b75cf06c2b39a08172700b35d1efd0526d78f2ca5388056b02d8
+28962b456a44b1348bc4c199c2425217cee4297873ba2018259ad02cdb518b24
+023f4ffc5fd7c2b7b022d8f61aecd1e97bf78c7d0448611c0af788af2447d5a7
+b66b496dfde8522f9dc0ff8513baf8b19b51256da57159b87df032545708fad8
+0b15a0764cb951263a5008d1a61a1b69f171a5d7449f1c1d2cba92e9ae340e13
+ee455edc278caf37e5733a34a5c1b2206833d4ec3c41db8e8c760624c6031550
+7124f71f9d18399c3df46c5023a753a08ecc991b61acb6ad781cd9c258af17ae
+33a2f8c5a86b5dae8ae1061893bdbca4e76473fb073cc9c5c3389e525553a879
+16c23e3fb51d65f3cc3bf3e87f97a02eedfbb928cd37a770e7e7b5413cbfb0c1
+3281f30eac6290a85ffe8ebf68a7fe77b4a68982d010a2284051861a35230401
+234b3278bd810686b1ee0c63104adfeaeb7ec79e0a4fae757018fc05fb12db3d
+81e0400f7760b46fa0ac5f9e52583f2af265843cbb2ec1d1392ee68c7410c9f5
+87351a0f3247036a01080242732f5453b54a88de2d7515b5b570d94bd2b97f2a
+d3894658627178dc90029c8e7131855b422c912c9fb6141439042b1df9f3739f
+063d8d054258cb1c9cc893aed8097aa06fbb7e923b3756409c61b7cff54c2c87
+51cc2f11c2b7bc0be6868584f64bbbc22a1e0ed325b6c2064cc0ef2fa8acfde8
+6fa40b544ab6d2c360b6786c29b69e80d20566e1e25cbb075f9a687b428f4ed2
+10c028936c8f5e7308d2a3984290d96e5c8df5c959a563b4be5b7ce15c24d5d2
+fd6dfeee85e0e9595f52ef13aa08f52db73e858a3932e9e913f5ba674289523d
+0eaaefd670f3ba4fb5a0295816fcfc042f7141c64ce577b103558455dbd0852b
+730b2acb37b3115ca4ff017602f9428879e96a621a760e7961c006801c5908c5
+f291981da07820a11aaafc3f4ae613c7cb4424b0e1b797094ddd88829d5d4eff
+d8613b50b2df38eef34ad0b05a9f13dac5b3c31d44c06bcc58d737f7d239ebe3
+eee1a4f981b35641482b536ee869389888c2eb28b56a5d0864a7f451f7d362e3
+d56ef1ec01fc6eb85c40c78d791b16aedf904c7d75890bf99bfef9783fdff55d
+ee19cdf9e0217133b8af29fd87ad09382b8f64a6690f4ece0ff8116d44bac576
+be9a602084c63bd4dbf56354dfe69300cfcbbb99ae3c8226d02b1bef022851fd
+896d83549c594e8fa709d23465207626632319b253dbb32a74155939d9fa0631
+8aaeaf9c26c04a55e1fe935fc5d21f1d798107a625fc25cb90d2ca72c31b3eb2
+c2aef7615eeb8c7f0e7f767aa672ffc236271f98c01bf41acd72da9d108792e4
+66ed133eced633ba0fe7503aaf68ebb226ed6d0e18561eb03c9b9763680f9295
+7709b653d3940ddc7703da6c3fcd893ace04627cc6bd92b65b80cfba4d0a50c6
+d48c5239a76bdaa4319fa9f0382e5ff6bb51c5a390678ef4bcb6a56a13828f32
+fa51ba7bd7d6a11405b0873d4e96b93fc693f21bada72f9f257d89630711cca0
+c3a78e2a0e5735617e77a7a77881b37d77877df4eff9da9d465239f1f2dfb5dc
+9351a5dd8216e98c15cf443250b85be6a463526d8aaed42fabc1cdc095ef9e42
+8f956a2abed2cb7fa127f49bd2b5accf7ed80cef4fe96fea42c0ed4991bbb734
+596379a991607836c6ea74bbc359ecf2eb52d015910b847534a519cfc32d5216
+9510940a9ded08ed2a83fe52ee1275b05d19666994836add094ad38cc0a3e081
+bed96e0cec2d8e17d51bbe3a63a34884da909733ab092c9ce8d8e411ca3b2831
+a022e5a3fd1abccb902647e484833b8181d1b9edcb5448098e13b5ad289c9aa5
+8e4726f0c2df0ceb089401871c26c7ddfc5d5cbeeae249871ac5604056b69e96
+3c1bf9b8ce006b701c9523b5b9b145be6f6c7b9e513973df94cc2d37694850ec
+e54c80d2ce79309ce51515d2ba0d44855014654d1a999cad1a5e9dd53a34e44c
+9cb32ea91176d5c3294e3064016e8554b9b6c6d2e6c03b4e655bf2a7957d95ff
+01cae1dc020e577abe5775f656caf198f1073b7bfe06ea127ba3b1edf4784917
+51d41bea93204e6ad3aada6f2415a8bcd5c987b6629874253852ca417bf6a259
+27b0e7f34e0ed0f9dfbe1be2c64d805c2edf0bd62c77be4224613f2e788c56eb
+0dccd0a467bb30d529610944338ea0b832d3ecedd85ad4da22ea2b47e799a1a1
+1cd56274f7dcd9a66a32d8509f3d0eb4c4a160a723a9e71f504da5549eab101c
+70c73efbf1ee0805c0f8e394f94f3e6623eb2fb5896563404fe4a7f0d47e802f
+698295ca19ad813ae552e8dce8d6f73a7e676308a07f230edb99902132ca5b6e
+0e95558764ff3f6f854cc29b338a5e1bc14c9468b5528f5b5dc8bcce69bcd0b8
+e295f3ff96dff56779de49a1157c7d1fe777e3a94cf95e3c707d6c1fb41b279e
+9abf7b4077fe611a1669c689c1d9a81c933e8075af7b5b440c24318b26a1206e
+92266a64a0577abd20659d83fbc433621c7a01f74c6863d43b02651ea96fd0a1
+e1a553a05978a4fbff7d591254a5e3a2642c0eec9b4a0988e4aae449964323b7
+9bade117a3ce68969f62944d027dd0bf7ff0f73b0283c8843e9a3001bd096baa
+f61833401353462890af71b05b84b2e8a8a3bce954febceeaf5c10ec704a68ff
+24364e70e1749dbc2b1299887309e014f82b805c37aecf05fd413220403e48c3
+3cb49d0c265ec2511211833f8c475d7bdc3959c3378597773f02b5d41fbded8f
+eb58a06037a79c3424e56d48a1cf82672026b3122e379a0012322a325bef16b1
+f95958c7b22cce273e8aaa1e8e40978abf5626000a2563577e164b89e24e4d06
+483f503454a37fac420c7945ad53a6c102f1713208c99ab6ccb0bb3e50a70b6a
+38b38bce6444a7951cd669008776a1720790b0b6722be634f90120f42e3b5cdf
+9007d9b8fcfeb1c2042367c5f7445e69bbc19cbea5b305b1bca2f6398211ca07
+96d5bd57d23639b1a7d7a5f50b609dff3c7622e922714dffc7dbd6b820460c67
+e8ea1c017e57fd172fa3cac1678df44f20e718542342847e33698d382ec37f60
+21b7d901ca384beec87374854e4a1372610ef8fe5c69a141b860b5a9c51af0be
+8e33cd57dc6f1d2fe672e72fd0f370cef74a02fef6a0e6303b7445efa72758ff
+b98b3549de42d525c166c92b652ef1e71c92b0ed3c1ba2418dd13a2d301ea894
+7b3d54d469676944a58f147851fcd8500747899ec3bd885f25e1631a3dedd10b
+4eeb87c74ac62e316d2ebd3aa0ce027e91b39450ea3e30cb01baafab02ed0567
+cd83c482d6e92d7835fe387cd6c050d8f4f2f64b95fc44e1101d89e112b971e6
+61d975a98183617bc942f425b837e4e868136b17ecde0e1380ce8a52b95881da
+2bf547a37f38c603e43ae53f32b5a347e4b43c0bb86d8aaf447bb5f4c983616e
+be1a48c7dc636242f20e876baef484506e2888f0913d8b76b1086b60409a2a03
+e82ac9970d6c120a6621bd68250d88e95c01abb861af559132e6d9b8f5abbb66
+4152d65779019e678cc86909e31bee3d13a16d764998d94ae5df24f02fc8153d
+72b41953605ca86a99bc3dd05ca620e7a28d51beddff28596ec8eb878c09c041
+74baef8d2fc52b3b0c55e95b7482dde018c706a3fb83b945d3df90cffeb1380b
+09c4576040668f537083afc50a1e26d28c4d58bad52b17964871210ecb2f148c
+daa07db5d3780ecd1635cc5d5dc23867a13e152872c78e20b95f11a4afb8508e
+813f4c580f80546b2d5dcda546a6fa4b28a906511be9ae09f3adf926fa237825
+ac9f250d275294c5f21466af681e4e61ea6915d623c7d48837d0bbfd7f893a2c
+d347cd7514ace7badbbff683aa9c6eef46d1c830afac64a9f64b95a6fba4bc48
+a33135b70cf12c2eb19c2af6a45b9be09619e4b89f47ef4b9d3d234466822c1f
+3ce559a85fc52ac8aa947f981fb5fe7605a373f5484d4929932590eb79a504e5
+ec35c263a30ab3e50ca900c2488baf5f1c1c23cd42d6401bfd7b09172be16f1a
+df93f41ab0b4465a4f1e2ab556078dbe76729d69434690fec8f59894a77d3b8b
+bbd3a87346b6706fb127da2f6b458208befdd75d68207bc88ca1f2e36b65d170
+922071549c382790beee82ba0dfde07d7d5f58ebd02b19feeaeb6aaad59792cf
+461d467665cb3a0cda48058fb5181273c8632075e2f11f8de7181373a9b73901
+a816cfde3e2029a04b1139eb306132f989f4a2e85cbebfdc52bda2e88bd8d1df
+3f331602fe0fc1802abcb35b8e6dbe5bff9740a4af24077a725d17660fee662b
+209db93c54baffeffbce92a9e2e696d5f56f5d7c81b29cd00a59ccaa389183b0
+ae2507f0ec1a9e224097be40e0db4c8099a96a858425c6a680365704f39a05cd
+4887bf94f49e4f8efacdab96877a18272900237356ce576042dcb16e5851e1b9
+4fa0ef754cc9d84e91486d771871151a5983f158b7e05cecad73ba064c258397
+cd00cd6b8cecbb898c5d4609531d387ebf15a5c38b80efe629bedc9314736e90
+d4117c763f18dda7974d519ef1bef9824934159d0fe29edaea2173c69c56967e
+ff9c37eea1e8b38eaed338699c6a3763c6353dfb2584f6da9923ab74b18cbe05
+278a5ed2936b193c75c986e8bfdcc63904a25ecb4a04e998ef8789e9c3ec618f
+1fefe74fe5a23d368b563579e318bbe956f29d191748ee26bc883bec714e1f8c
+88c98dc012b95385e894919f1de5afc62c9c513014d6105baf24ecaf88275909
+4d13079cccc3f103d6751b4f79b785577686abc760a6c56bf34db0f2ac3d0b82
+ee63f9e750c7790d7a3a1626d66e70d26617459a8103e08b6f14af71c017d3c4
+e5b4450986908ec345af9bfc4d650cf35f337026ae940513a9b3de95df3e16c0
+588a59a7f2f1d5e2a418410b5e2fcb4692998921834fa44f30f2117228005347
+9a3a82341434ea71f82d87e1bbcaed725ede9f6001ae4c8651da9afa36b3e6ef
+07a8b311afe1bda98e3143c8e2417fc188bfd48627d9b6aae94f510054dab99c
+12fa0d5d73069f48c86391d27e37265c91ab1c06ce4d4bf0af63db65e16e783f
+7dc649a88967284c9d9fe861add619a3ffde0a31a5719bb456d1ab8010ccc8ec
+89615ae875db7a321398ff923c088a6ab51ffe2fd21d3541474d79f07e536709
+46d1a8c65e8dd6ba6f19410b76ee7b5468462b9aadd9f8ddb68c32b08b0df0c4
+f3b909fe714f453bb1ebe914752c5eb5f68377a82e5d5b90abc19402bd589b43
+05f905efc12878733902c54391c267fd81aecb8cd692aaaac3218d34a4c1612a
+5aa9844d171e6ebf94f4d8900236e8e27c5bd7460fa1e195c1077da5918afdc3
+90abc6db247885a42158c3cd36ee89d82cbf2471c6daf51120ba3f6937d537e9
+370af7ce73f3b50b742ade8264df9288120dd74094a064909c00764e9347d2f9
+a3f92bb53d8263053a3082809e04e9bc7c9f3b8a7c97c5cc1f9f886115676a18
+cc04c656aa33535e5893b8db3ba5d627f8810048b2a7a28e6d1374afd6af6980
+ace96ee05d890339773f6dbdc92f2f840b50770213bf6188dcdd1bad8d527e71
+9692ab1dfc47e7673c175a1b9841d56e2e0b30e8685b01a68ce561bfc6463a6a
+d34557d05276f7befbc1fec7bd56a18bf0292cd25eae57450b3b590e60181258
+4b35e2004e7b1e27f3b26d7108a03c94dea662b7342e38f8300adbd92261809e
+bee8ec971a7f2f59487c89357580f9aa8145a1825573f037a0ade5b98be24a86
+530435bcb82e17054f67fa873946c732c8840b9eaa9130bbd360ef27fe72ecfb
+b421627d2d52578373ca7ef9fc6f850f4b7f22e6501378de0a9dd56f5f5815f2
+7ea81d8ee3a4f7b98e59ea1cb3159f5816fa703b18f03c5b0aafbbdcc979df41
+7258af2ed57f7da62871c0efdab55fafcbda5fbef92ce65aa0ff37b92ce6c953
+a9d92a8c6e02b8a1f9a9f0c66461c5a62097e12e9f656c87ae283e6f3b63ed10
+a6a723316b9beb28b62a55d372b9a22bdc669b51533c5690e593f2a409619b2a
+d73655a40a33e83c65e66f18a40c8e77b048674fad760b9a7d86621181d498b5
+59707d36440af3e015851ce43cfad5d1d96e9274ad714ef46cac1a02974245a8
+d25d894caa256c320af31f954bf574dd95bf32e5841333063d32709b93b009fe
+e680d5b2bb5f95275d118a085e98506d0272fd1b8220a2343979bb1467f9006a
+1f17b2ae2941413683c3cbbaa1c0a3aa55193d46a2573f2cbb8b7adc7e74d0d0
+135dfa18405bfaeda37f3d4787a965192ca64e4462a0c701de5c361088b3319e
+7b5d19a14337068661abc7c36002ff4dbe90e7b655b8e06bd70e283cad1c5d88
+de63628c638083b303ee6b038836893707f6e1121ef56292a75bd9301d987ae1
+ada2acdf61ef74f2b3dc4f87c6374254f865f6e8f6c0933c54265e9a5cc7ef62
+432baad5fa08dd485c3b1d0e75ffd5180e99df967b85861d9710ff294e93cfc3
+7ba6c006164690c10339aae9c1113cb48687672e8a2dd88ea9af6d0cae13ac05
+9b61095b999c87bc3c80748fe6722bb76818b2339223dc051a4938f435b92629
+4395dc3d2b9b3a0e370363535d960735fca855ffcba0aefe767732f7991c5977
+46fb683b9a0c11fcd6a3eb370bb56d6611e7c20dfa1d9fdb3b90ef31bf0a6aaa
+d8bee6d7ceb116373e74f072d2c61b646f0da308955829be7578d1909b03c4d9
+307709be75ab3d72d0864af89bb713da0938f038ffb3459b793d06bb37d6efd5
+5d4e755f3403c32c28201fa5f979f51f3a9d4c521480e58ccf06cc60a056a5b1
+c48f27872ef36da126d580ec0520ee9d252cd27c207b6a12b27b1861ae0debbc
+21e549144604b277ac8e7b4caaf5f7220d67fa9a985001488c128e1a4c9ebaa9
+de54a13cd4baedcd50653b73a6514ac47bb5411d8094854212c9219caa4e4c7c
+447324ab35edc9ceeeef505fb71a2348c3be2082fba20b8ab572bf9276e84e2b
+0b328828eb0c636750dc104e741c5df9caf3808a061484a23dd0aafcf5bfd1a7
+319c50d09cb55d73c87d3ab59e74e29de58723ea32cb96a0b497e2e530b54b9a
+355a27d988ef4387d8260863e8beecbcc27e4b051961aeffcb8475d7da9bdec6
+42d6a55f06ae9af2450545811fc6486c6be309955c53121db95ac255263e93ef
+3adb9e07e56b1133c491b550a511204ed55c8dd911e2fc0669c90fd904267f0e
+79d56ddeb72895002a7f795349da2137b6eedcc300c1206dbdfdc3a52f71c86b
+8141b63c3d33957c66a9e074bfa703ba2344d802028d787878f9fea87fa9ccdf
+f4ed49f4daa6e6839fd64c91e60f99b8e10652bffdac46169c413a36e8105d8d
+9343496c1a9b5bc33cb5e573166d4097fb4f3f5517b38f9298de2ac6d51121e2
+0eb9f07ecaf4d70c56a5280948c67e506e47fe9d3465c7cd156e5768b70f694c
+57c11c80e7a4d1417c25690197d058d02216a81d7104ef27003dadb3ed10c742
+4b03f54aeba13d17f681fee3a8797754348b134d89572a2083225178a9db4466
+ababce914cf2777d3ae7effca5f4973eb2945672c0218c420173d8d2fdb8d60a
+a1b40773a74f904955e7991bc973d12eb5bffc4dd0032b1a1397cb5ba3b431cf
+92b76b1f7bf1f9eec8389e525553a8791692a9a9eb495822684df34bc5209953
+1b38bc4875beb62a391a8e0fdef5b0ad35190c44c782e374e3ca17b9f5e2f5b7
+c8566acd0df90ef22b50100f501a80c17a32ef4eb28da320c20ff407fa116404
+aef81d37037013406eb51aa024605e01257fd78c625bd120d4bbbed7bfd4f95f
+a3c3088a0fb237d44fdf4aa0bff28254063416918e276e7b68c545def20f896e
+509cdc2c31b65668200637bbfa587b547b77f81bad98ff0b70805d9c6fd17abd
+f107e1d39d98d9ba1a7bcdf98ed607a3770508ada6bc25fcb63f5bb642a4e028
+bed525fcd1a9dbf1e1520c5164a53c0ddb1b3974366b8feaaf766f02a4085f57
+948854365bad4f6cf18fc871256f9ba3c60a79f3d08617f6a483fb6b50ef2dd5
+0755b2b824dad8935247fcff268b7cd152cab7e7a876b381491589f3d4c65c50
+3353d07c94786db7346cb89cf5350b585cf890fde7a891e7646e5fb912b71db0
+10e73de1100848dd1bd100d0daf43c4bef2b43440513be6281ea0359ae0be4ff
+a861b07d06a311b97028daf2fcfb14eb8e8f713bca854befa5a46172dbc0dbd4
+448a8c20ce02a71d33457d4c52704733b90b005b03fe89fa90b73e747f273118
+4bc20d38fca2e51eb0d5bd5454a23e0fa6616a330d61e5a487aa516daa6ca1d7
+b8cfc260bedbfcdfd3d3d0c115359c73a67c1921df252899298bc9015a6c96dd
+e70e6dee29597cc7c111a565a6877ec4efe425783478bd79ae97b5d1bac5d10f
+5cf77c6c026966155264c7ff1dd30028f21bfe0b7948edb1710f30ee09747272
+81aa09b166177f5e507ce6a09a6368505a1d7b58d5aa2d63dac1b073442be702
+9b2ba6a5a6073bb8aa8c6f741e1b135a73675ef22ea810435f4b1a899d180e2e
+be37106d4db6ac2c01d2d962117c4b6a62b1eafdd923d89cc830c00f4cacf98a
+3e02d0863389d2dd73db37d8af50cee306da798989047e47c165d47926ec533d
+5e1f5fd0d039ff2fb3e01c61509b3ddc62754cc30b7946c4a705d56f16730b99
+8a40275da604170fe8da1f8d8c5e4a393c701aa708f916fb66939adf2546097f
+2ad583fd795ad2fd059e9450c6df7be3a22f36c359ddcd8de44e1106b1edeed8
+65e317c06382f6473e3d15fd731ee92b39d3a3dc42c9107ca046febf2ed214f8
+014ea9efdd078b94dfe6a53e5357dcb99a937583a89b90105349829575a5f474
+ce7519336dedef19083bf6d9312f19c78f09085db567895a10edb5a6cfbf3532
+5cec8e3db206815af7bd78c8dcde6a910eb9232eea4b9e68684be8083f335761
+916fc1f64c649fefda1b3fd499e851cdfa7ad22acd535a04986f35b62c2adf2e
+74519f043c7c1864c6b3a9d5126fd87c105f123711b560531f46628f872b085d
+ad00961bf770b386b416ca2c5a738ba54f7a7a2e234dd97b2918d007c135aabe
+9ba541eaa0d19c216b5a6f245cd33a1666e26bcd5ece41bbd5bfb3aea9511bd7
+da27388e8b62f49f0b4db0b190c5dbb7bfdb1fec5a786bf43783cbecf09d8056
+15ce4179710883f8fe7bf4fde22e8a7b46273172e9a4751b4fdf6ec099e8d685
+32a4c9c4708902285df499de4a6b0e143d72c13b747461bda19f5e3a34f1dc8a
+96dd2194b6083c75715f9f5261947ef0eb21c496effe37f407f45c5f66aadb99
+cf42aea5fab6694a64cd89daecab44bcc134280a3614f02c432b98054ff8be39
+7cb464de7b1ee896f798a90377bdd07afbc9394ba931c3fe490d11fc60506a3e
+476d86bff5d3d850683942744d651355cb081b39d8d2147409a4bbf3ec699da2
+d79303ca40261fa3b6ab5b17ff331eb3d9f01896590905a2c7841d1f4b1f85a0
+b4afeb0183a61e21958ab3f541d321ac6bc81dafc5dc633cf1f4231b0e4dbc9e
+bd3c
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F9_0 /PYRIYB+NimbusSanL-Bold 1 1
+[ /.notdef/.notdef/fi/fl/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+ /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+ /zero/one/two/three/four/five/six/seven
+ /eight/nine/colon/semicolon/less/equal/greater/question
+ /at/A/B/C/D/E/F/G
+ /H/I/J/K/L/M/N/O
+ /P/Q/R/S/T/U/V/W
+ /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+ /quoteleft/a/b/c/d/e/f/g
+ /h/i/j/k/l/m/n/o
+ /p/q/r/s/t/u/v/w
+ /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+ /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+ /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+ /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+ /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+ /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+ /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+ /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+ /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+ /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font XDVKOU+NimbusRomNo9L-Regu
+%!PS-AdobeFont-1.0: NimbusRomNo9L-Regu 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Roman No9 L Regular) readonly def
+/FamilyName (Nimbus Roman No9 L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /XDVKOU+NimbusRomNo9L-Regu def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-168 -281 1000 924} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa763773acd59cb757
+ae119355777a1bfbd6751f24f58ee0133199ed331e67ff4101e33040d6628f4b
+77ee87860b8e32a4923e2c1fca43cf544a5eb1bcd649ebd836daecb23e3a986b
+9bd8398e690be6b48bd6479823a435defe1156284048c4d49b5a869164485630
+3810995159568b3dcf3734b11a3f25453e0e8b40b080c9aa94e140a58d5ebb74
+7d1e083dbe00ad5498c3b19deb502dc63d69032d8d31e6778af4713c30404059
+6a862aeb8cf607fa52a9348e3fe23c1a0296ddb41642aacd6aacd2c6d905073f
+98b58ebd11af774beee32533fa19871148dd6db41f3a8c499f25f37cf3955eb7
+bf5bbdbe984535820dd33f60cfe7c2b44ba6e10879b3c65948beed00a84b093e
+8e4ea07e34955aebfd0ed462afc5b4b42c5b8be85ce0ab1b9cba42969bbf8a36
+e2943b1d9b20f6ef3416e226763f55a196ca0d86788a6b0ed38ec5b0124ac901
+f55f2f67306ce94aae5809b2203bbb5a8b185b66b2f8a18a456d028f62d8e17f
+4cfccddc0743fb02567f0294ab77dca0b9708b262570e3097c76769bd590a09f
+ad1523e3bd1ed5fd8475c0b57b95011759d1a55c70b39970dccf76069cdb9690
+68a4626bc863ae1d579604011354cd3ebd51b54a1ba9789f7678546bdef64c9c
+51cb6f654c25578c3b4b7c2bbfad476423ab58c57f48b2a54c9d44ad356d106d
+8186a85f8578b1735610f6767883701431f5a2503341005020b639f45810440f
+f341eda457f8ad2213058a3369016452185f849ee25140060264a04eda7e04b8
+afedf6924f2da0adf944e4ee346e33735f6e78691634e18c4179f28fdb673ec1
+6a2b093eec51a4611030ffe1d4c1a1456e3ead051b01c94e5d9ee94c855cf31b
+b8e544e687f2e2a99fd8865ad44eb929430ed39ac0985e4a5c382e16aa2d6ec3
+3b396fe9643124dc587fde09d3d867e9efde49c283dd44fd33b04ba4eacded81
+b3e7d3f7c09d565a6412ac30fc8e81be8821a9031850579b02cefe615c8e7c22
+61a77e73f5382e58ae160043a5defca7470ea62b90e0260faaf5a97a7254b091
+2a187ace29ac6adfa49c7d6f35cdab93ad32553137363ba2f0dcbafd40fa8ffa
+7747eb9bb51dcd01291bc073331531dbdcea7db24c9a0302c9896a1c2cd0191a
+d88b33d0b0352b356c93987ed9613720cf2be3b164c6a4a3360bf41c9f178831
+62fb73ae514d9c57675572e8c1f93313fbd1b05302f57bbebaa2e76feefea0b8
+9c83d511164b53b481bc920f40d59d152bb1f5674344801f0dc7e71ca5de4e24
+cc79207c66d0b692fe7c1c258be75488f2a0bfd5c81ec5bd0585986d0c5d4575
+82e9ce40b7477b87facaa826ebf147bddb1dc60788dec671c199d18dcd2ca48a
+4653963ca85e8944074c501c8143685306d4f133037fea449b0d1cb4ab3bce89
+04a311f9410984d754a3509f51d89a4ef73ffa7f9f3bccd80daa0a34e0e10912
+b7897005607925758237d0bd3b92ac9669b1a1dcf19ff0864f84a993bf7cf266
+1d1b3981fbc5e4fdc3a5b70bd79bce35c6fcfc0a5aca0006433bc0c120073e96
+dd4ae86f022260fcfe119fd4655c3bf00be48c470b0d86e721afca140fe6bf31
+836d578fdae49d71676c77ebe2d09016e1ab71d7c681c8c0565cff9b73d79920
+1ee2def2f16d65647262f96082dd5c44fa3993d3bd1d10c217ea56b73b38428c
+767dd9b71530c5f01be2d2611cf9644c28f3f52fd814e463358d70de7bc6bafe
+cd377b48633d0107b05ad2472ad6652a1ad30c39adce69ebde3aadb1c5fcdaa6
+96fa9b3c3e63a7c4dac907e3b5cb7a3713505c5ad53c8dd8710acdb3786a919f
+b356cc2695cb227540a5f235ae1ba3c6f3547ff24606651e5887fe889cd8913d
+de9f3b04019ce0d724c1f6521925bd4fd8154f6f4d640ff94a0b0b027e483f9a
+bd1188942cdff486f1a234fdf8adeb552b7e7e10aa577ed3d559010aea480709
+fa1f644fe5b7ca3479599a7e708dcd3ba33a6b2d640f8e39492565965e3b7c74
+bc8c48f3ea9a6048e86197146abc446788a3c83782f797cd278ee1b740627726
+3e1703246bc561faa060de93d224ed3eb1bf548892bc64806c4e9186a2b276d0
+fed43a3021b5a54530de20db8168d44e1947cce7fa1dc8f7927a591d6798c5a2
+b51185c3e74bb6ac782af6f089a4204b6379298617c8f67e38900ac231610ab9
+79400dfaf270c91679c516d2062b949a8d91bd5c8c1a0af1e7401489ad6e8101
+b9103cb5f50dc53ddcf2b32afa218289e9f1b5e29e5c5a2a0f67238558343524
+78cb11a68006685e13f8b9ae54732c180b4949f09839b935b1f7a944f1d4bd84
+a5074b583202cc4aeccb4b8e18096e258bff705476440b9864e746f18703321e
+5d5e2f8ca5e2d07b195779f6a0d6a731116f1a26a484fb0d9931dfaafef53b41
+e56e00f32e3952261c0205afbb6f2afaffee7cc1fd39b2e108841f39dc8df97c
+0f776adaf41423b47c551d48add01398dad167f4590dccc3106a5a4386499462
+78831779383abaae807b3b03b5dbd4b973219f2d1d19369889dd72e446ec95e1
+37017fbf85f4064f81f27cdb4f9117be248a8d5a65225edca22e833df98da456
+98a428edafa84085c323399562865aaa8286eb5dc63dad6839b597386e0558d2
+11bc45d66e0e60a86c968519b8b305d5ba7ebc2fad7cb5004559544330668c1a
+7b77dc9762baafb4190dcc1aae670824824e00f023c574e1c017e33650e24fb5
+d4ad701ab8d93f0fd91867bd21299867f966e93cd621ec0332fa04a2a691ae0b
+179d1dd6364166f94716b69027d8d0bcfc6622a086dbe92198e5c625699d0bbf
+a9dee06d20554b4d82584108208ca24d7509c4ea30e71ec44f014f8cd97b8eeb
+f1322fd5b116009584559a3b0574e24329aef35d2964756d50ee8a0fdae1be91
+19e20fb52c3437ef677f37b549851cc9bb60c04cbee8d80b6f1442cd8676b0e7
+bc4b2c4883d212135bcde4fc15eff6d20269a6f4463b12c214d99e68f113c5c6
+7c2d25384d8e7b9eb31d79e2c4607421389827e2fac887dbf08a43a5ddbc5797
+797a1fd10143a4e97ad79bd0bd7f3f1205130061a6581a4d30183e71fe80d570
+42083823e3ecdb6d6352b6bd54413a9b6bbaab94a76d12ad93ff99f9433e3ec6
+bab36ccf8168cfb64c4b15987379cc129f6c7c1761df5d7dc46e0996e5588298
+b329b023056dd59f4befb792c4e43fa095d63df49b6e25f821b999b56ae05919
+16346777c2579ecd17b5a87f1505f4686ba2aad3045cb414cc65cde98b92c76f
+20a9be4a42b77e077b9c00eaa3914709c3fc1a16787e639a2c7fd9a30d9e8ffa
+1d5a900dc9cfd5c319ec34570cb758bae3a342d936a30915dbd5160922aaf241
+74c014836eb17224a681c1d7cae7fe0d0627bd5af08286c59e2640cadf9e33db
+6636197d955a073214899ae76156146452d063a460fdc5a82df0eafe9ad88a24
+905f7db7dc8097c0d9b0f9319aea0aaf7aaed4a85c93979445e8d1e5a9bdd3b5
+4d74320a1b797ace38376db0b2f6566432b8a90ca4fc7842b90623603f7aa2e5
+a2f0298157822d42f334b8f9f80fb04c36bfde0eb1187c1b15ad0666031c5c09
+62bab12d2476f696939130c5b59fe70b61320e4510be29e04f13236cbcc78a8f
+93bd11c24fcc4b45405a13a65ea47c13be1f82075662c316b4de144f89beb6aa
+cfb84f0d288c67d488faed8dbfff92be9a24bed443e9db3f1deab63ae94eecef
+43ae1d68455826cb3a48c456d7e9a849a9822c77503e5b9f029fe70168831ea5
+2ec0c2c4471627fb5f2d03bdf8726bcce14a8a162bd9bb26137253ba8b581941
+e759a7ca7917d4244da33f45df6684d3dc361bda88b4a0a02e5e55a1efb0d851
+b4e418bc6a0e213172a08b7596b1fd93aaf111f2778006da546ca1db88d5db98
+4ae9658c1d31adf6ecd3180c19791c85a0ddd1547fdb800479a6dfea56ff1e11
+9b3c1dc388c0f372a44712954373ab66cc420b2cc80a92c2fa011d91c441bab2
+f54dbbea462e186e0617b2f3921f1aa33dcd2c1c5eccbcc37dc50bc29d0ffb03
+e45372aefe3b44d8584035f3bf5ad94459a65fa170516c271b722a2f08bd241b
+7816ae887856fef57292179987b26bbff4cf1da6cd2bb092df2f6ae3064d61b9
+e7bed1d13e534b991610a2c067a1c107ec6b0a8dfa6f6c4c2539c8747ad33057
+f5a9d083a689e34c8ca2957263786c1f78cff0347ba42730544865be79b7c461
+7ebf003f8cec1e4b6af75689fa6f6dcc317c7f6975df451eada5382583a1d1c6
+510ca60fd85e55c6e16ed39a86dea378d6f41c00beed05ff2f9f1a2219e6838c
+819e9576e4ef216802c4a913de00062e70df8d83754166a27708337ec6b8a031
+04a426a1c31371eaf807c8d638d16e6515ef0693651bc2dfc870a1a7e340d504
+be0feabf24b5bc879e75801d188856be2225a82eae90a792fb4e0d66ca0c4a64
+a5064e1c9c2fbe84b5d6578c2af56fef340a49911a0a346813fd5da9e694726e
+a0dea4f42008ef28f8d6ea9f974327fe71889fe76945b30fa99c4c8c7bd3c40c
+ccaa4f19c0e0e0c4cc88611829bdca334cd69463228c2f83e1467125b7eb3c9e
+812c62fdaf831871ea0af75efe4c81224eff156fb21bf1a27123d020beb9e1a4
+d72626ddf4dfd474b98694e87ef0691b71a8aa4d346d03eb56e0715d8f6148fc
+424cc472407f00bbff0cb49d05b0b5923821fccfc27869a85fedae1ecd60b31b
+1c8e8810879809ec069ca308454613df0f673b5516598fb5b822833fe3e0c0fd
+1b3684f7a66ff0f9132de78d198fb6dd459c42208ddd13ecf433d4c9901b0aaf
+4c8ca7685711deb49d9a2cfa4209a0d058aa8490963164652bbd3cf858e53975
+0af2b20db08bad60ac71809271597b65071e7946d81c02d8e8eac13adf5d5249
+ac0b42f5c602e16b6199dde3666d58abec0c1485ba6ba71086c36481229891a6
+89bd1c4d67e91e5ad6d75ae80420cac489198821227c1ac94954cd0c94098773
+ef4313cd8aa49aacd7d34bec814e77f9aa794e57bd14f678a5f3d9311036fcf3
+d39a94b0b23b982214469f645fdb728751627c28359d6613978a340b2b2ba9b6
+a0304f87a77389a09a36a660cc983072063683920005b2434951a9c8ff375cb8
+17ce6c78b6991ab5a5efd7dd4e8b3171133da1cb44af59bd84724150d09f13b4
+39a1046904d4d3ec3d2a90cf5275a9527f8c3c62a0ae24a60e9e7d1765eabd75
+cdfc9a14c4043fd34ea73afa2e08cec40386f048879987699fb8123ded9709a8
+75b020943bfafac56dcbe4a2101223949b0179cf7de6b550657c91bf3116ee7c
+66e23e4ff64cedac326536ca1f75ed1bc7113f0267ea7a26fd44728714e2a1a3
+13e88daf24c9a46de29e3767648e961b346ddc72a6724a0857078c9a2ed39df9
+d17c65b89136a6cc0c954e0c46e9f23900c7ce91ae71d74237ea1128637a673c
+f6ea0c8286ef99801cc6d45bb780e21c5a7464d16f77b45236bb9819ed3a8c4c
+7e1b15400eac8a99511e77effdceaf8af6cef034b79862eaaaaa00bd02f5667a
+c1a03c0188d09fe4d1fcc0b0d3354c880b2943b9666224238db22257a3873b36
+be9a8a55e01165f4e8d3c8eb3521ed57aa834a4f88b97f2fd77b3b3c39ae4bbe
+869a24a4714476b3d396eff67982ba0a8f9ac34bf7b247951c0c241a01f347f7
+84bf841495d76f9fb2ac130779145677c799a07678eb8a3ea3de9fd00430d46c
+b1b3b6c392afd853df1d0bcee9a053d6fecad859bb9bad0bf186a6196b89fcb8
+44799928b4da77817a8cd1c36cf9515090cbf63f373aaf151154a769cb58704c
+2c0263028c641e1ae224235cdb17d89af5398f3d1daf44254089e6b4db47475a
+1fc228e0151f244b025e5c14411c8834486e483e4cb4406752788fa99336d980
+a7a6e6f1afecbd87f2c615880f3a6bc21524abd7076eaba6ea1bae0f995fee85
+f938283c60a7a1dfdfc053a8353051b18bd03129dfe6b472e73958d11467aded
+ced7829ddf6e7879dced36391a1d113cb87969b0465d64b96b5360f774a98596
+1272aefdb74ea23d85c8af588ae0f6b43ec47292c880217c0ad03d87e1cc22bd
+8117ee06e36394a8fa5e72cab0825bc3af8bea7256e7f8abe7fcf57a38e38df6
+b60d783d56905a5d7794904c0cb95e2aa835145062e022b159fa7247af415890
+117a2c9a99674891b134760def15804badb8d4ae414a1410886eff8d5284b042
+9586db6610fc1e7c2ff53f19060e6b43dfb0d8bf8dd94efd5105ee20ae0bddd9
+58176c666d2ccdbaa1a3b0a8cda0b452409c8cf61b9e085d9a9164b7eac06dad
+f878ef8ff5e36bbd6414aa86e1d73d211175ab042ed5ff72030b44aba32b970b
+917282a1d69f3005b0a110f90942ea6f9cb2d9eb57a43000c48bfc2af2b572c3
+f8387ab21c90facde17d772ed98280b44061671ea4d98e901f33b8a8bf0f97a3
+d87d0c4d81d6e29d895f50c1552fcbef2df93a75e3b0046c794d20229d7eae01
+7f230053c4c2f463020d060b8552cfd6463018b4c03275dea0ac42977b3dbe97
+3d7efc22c9ddbf499f2a2358f6287a8c9946fd16e6e998dc763b5abaa6888484
+c2430f2fb9f2b0ae84984af32ba54cb191274f7b85695f5faa3cd5eb154b0f1b
+fa2a0b9ae93d591648d33b6c23e27f9a18e0b8548bf1f45158ba7c171bd1136c
+d045e9dd27e4f23dbfe5b29a66695628a87949cd0d4d15cd066916eeddc6cbc6
+f0a5c77201d4cd352584ae70d1b8e4ad2d5278a472d230997c7c03d16cb5ea0d
+d04df0bccfc7a277a0ec9516e10134a9ff93b3e6267c5ede4e5b848bdeb76b87
+52249e458b602c175ce8717e89da05ceb850d2538c340ef6142f0b5cf5906f99
+c271b6e5b9e614d64a7c72372835ec4a99bb39a7aecbc41d021118dd56d21326
+c818bff4de332c9c00e96755e71288117c19e3b920c23766f249b1abf4ebb173
+3f9d38f1772128cad4514c4c06fee49abf401feaf2368edf5b4f78fb13336189
+5040b953d2ec56876cc72fdf69ea7692da01a508c2ff7096e17d78e2f61a04b5
+400d9c28610aa8d48b790edb4bd5cf08646923b0d5a86178956bf7940f291242
+1c4f3bc76fd991e36e18d40f813095c5b9165700cf94403b23b2b7887458c4d4
+4a4f160ceee87c7d50fb4ddc3d4e3242d9ac170b060d472889e553c988126096
+dd343532e74b54d664d63141b1eda0e6ffd1d82ce4d084352e97f09e2e05a17d
+cd8bed5a8adc08494e5ba8b57ce522758413cbe5e5d74e6d3b251a6567fbea78
+5d838a9506c98691e0ee47be4421a95e6b02e8c66aa06f9c88b0ab94a1a32660
+fa0d8a24f2d5873ac94ff8e0670b96d4eb007ab89f1c77e0f1d1be46155fa2c4
+5930779b70c9a6d559a3646af2b83590b2f1ac3a3f1c9e8d465e145c69fc07cb
+5df5093b7cda7f1780def8060d7daf747491b0486e7ca427857946d2f3d0e22e
+018cf12b04b2ecfe3accb88e5e52dde2d9118a1747917e6a9f211c1d210b2b15
+8f31adac46b63cc00beed35638a2e8155805bc068a00b757d6f9dca2ae540883
+11ed782d682b511c557ab8c413e95ea8b6dd3a6c12ea9716d670fe4446629890
+d14a1ff76cdb4eb9e2ff314ed9094148bb33db76e4f6bbd5b6ec76aac13c6660
+38b1790d9c6ecf2f33b6d4ece409f012d58a75a1a4ef5e580986db61edcd97c9
+7ae81fa20bd7fcb07053311dbd6f3f73077ddd3949fa6dc327ad2fc056a8b798
+53b22c193126e73803c83fc4b7bd9cdc54c2fb1f6353ebddc027d3925bd32d89
+219a778cdc38e5f9621b41a27cb8fee8ffc1a2fc48ebd25828373b9bca8742c3
+0a58b2473a33b4805383415deeed7197a840f6c39267de16ecfcafe7d585f672
+b5ff6bb9d143e8e615d349ed779b847f2b5930aa83b08792e193d64aa163a090
+586a383d4ef4bc273f162164154d9abe6e68e23078cbbbd0a357a771bbc427c2
+3b6a3f24401e31edd9fd7091e8849c8e37d83ef396dc505f8f843f4ef305c505
+53776af2c088aaaa5a5efc05258cf692b579cba82efe7dd3f3394d985a5518cf
+93c258a168969d01842a624f56b4a6e50fde64083aa7cd0a8f3c0eea6e6d9a06
+d24b1f96d34d66c2fed66cf844b490b537561865299d18dbea55e025643f78d0
+2419619759dbcd65ed0ac4a2866c61f37383902b4e1665b2fd9414d348b4d41f
+ebaf2a1e4bc97f5497de6237170ec27597c98e6cdbefee9c6a7b106b3b6aff2f
+7dbc6ba1b2d145285029bed2766715781b230aedca4dbe0c92945bb7954d9fd6
+1702f5a981dc0c5c876c28659d744803202a5929f03db99b32f776a794afbec5
+3f03ab51fbdf52c98de52fcae577c7ef0a72cb1f4170bffa48734f1df30ac772
+9f23e8541aed00a2cb2bfa219626421f669494c472c88e288e5698541185b862
+29881c30d6b6124b276110bca39fc496691eb1c61432cf296b055401f2f63e03
+22b0f37395a0489a031945a21fba843a881730d3298008bb4c023b24b195dd5a
+1e30b76210c17a06095e3222bd39ff2b7f7b6366a173a9e0cb527172e1da2308
+5eb7568000e9e9fa521f977c341e7c4cefc883522696ab5617d6f6854bcaaafe
+ccb82352f821fd30f6edbab80310bfff84779899bc62743894dd9e726c6a585d
+b4a2883fddf1d1ccb7dc8242c6d0f16d008d551ee9e02cddd4a21a28cb56bba4
+0bcaaaf95dc41650643302346318e7eef6bba6f4fb6eb956f99457f2d2ebf601
+65b6b1e4405501ddedc0d2cce1a9cc7ee6282a2432e88ff45ac520a8155a2b4c
+4bfbef1e1a860ac2a2f2d25c1bcbd864001a54be48c3686cf72e98856e8d4e4f
+2b3f382c3e3a75bef479a567bab3764282da78b388d27a6dec10e31db5088362
+d3586e219c55ec4e24bdfcd77b920f5ea332d29630559785a900d05813400556
+d1d0721754258799fb25bb59a79699f6f4e56f0e58f6748bf8091d848e4bf22b
+728c913b0db74e9bae863413ba5ba04ec732d6f50d838424dd1a47b29e51aaaf
+8ee4831f52722e1627bc84cbc737535206f251d92549b8e2d24bc6b3d2cd5687
+9c4bdc972846bceecb47b5ad23df0a82cc481e37d74ff3389ad3535d0d6254d6
+d8ec450fa1e3b81b7be26897b75025a64f480dada26aa777cda828ed66cd65fc
+9d02717638bdb88571460a45aaf9abe1b460659f7893c1c64008192e38cef686
+8a076a626165bb53e34766580ea78b2bb63e45d6fa0ec31687bc4f243760d452
+b459dbed951640b1f5083a19705a3384af93eaf503a000e3f2384062bb52559e
+1e0d8bdaf66cdacfaaf91636d01f7a76dd5424b7b620a706304cae6fc50f0dd3
+8d395cf39dc796c7ec271721e13b1dcff35f06b5bf5cbb6b2eb908714f4fdd35
+9763585e39484118b080504f1bdb293321cfd1b2913fb217c7b41d7212b1daac
+1c4d770cfe91a1f649d760c132fd77024f7a0a4e8d0cfb275f5435f3dd911be1
+1db381c01a9c04645631fd9e1c871c5d2c91ac39a18d8b9dc563633d709a909d
+614024729bbb2824c33c216612efe88278d6b1082e18f486631fde76aefda526
+2a194ecb406ec7315a43695256b1f7503d323c8fcce1f572ce5410edc931f97a
+fe2671156d0167b444ab02691b81fa57696d07e235dda15640ce4d2a936d1dbc
+a0d1f41aff8f3ca1792ac1c146021056a40ba5b30278222286a89825638edeaf
+429cfba89cc85ff869cc5d51e41a8ffe937e03744732e3fab250127c9eb21d53
+48e3f6fbfa7d4abb16dac3c45e68e355e43d59c67a717495a6acdff50208c2c9
+7ecc5243915c0ba12e420d4fbc39c5332db7d681e51158af491169d7f7212fdf
+47b9a9dd0af18a2c28bf94199e0480f9cd97c2ed0e79a57a02adae4b0cd3c1c8
+f91521a111933abee28bfa1ee0810db409fe8dfa17195a9a7637f180ec400844
+e497a7f9cbafb57866834f37b2937cd71cfd5a88eb86b64a01e33e9a639ee133
+89460417242cec260f151b9613f6aca727b2578770e86b45b395b951caba7afd
+94c3442bd844ff531d069b8a2bc52710d341882860864884714eacfe23bc1cb9
+e4823b3c2315c09342cf097030f14fd7e663c2d030d2d71079b6d53799e5917c
+9798624793a0f850b6046e7c987f7b1b01b586a83e8fea61486dcbe8b1362ba3
+a2ddf29c622fa55d54800823824af57e426b41b6aeb440da475e13240445d467
+26a6d4518ca92a6003209d30974a40872e176ec005233706148979aa159c2b7e
+dcd5136921bb9116855f20b0de9f99a919854a9fb381d71265dbe5375b06ffcd
+490b11631704a069a04c0cf952ea0d9c4176d5acfbc48d8a48074357b1b4a8d7
+1a9bff215c77e14d23e09393eb10015a5474701d12005e66a31aaaafcae6a030
+34e2281bec8d06f7b41e9b2dabb7783daec99bc7a3a8dd48e90d36848efdde98
+c09309fb1c506f5a1c0af132020b07afb2a9b3c457cb0f1a66684e043872b794
+534308404c4d7faeb296d9f1561cac5fac91f4b02f89b429212c58c55cb96fc8
+bd812563b864833a0f9fd69422d24eb4a4acc9cb2bebc4ff8b9d8e891a63babe
+c423cda2fcb7cd52a04774b3738108a19eeb1208256540bfcea23ba55f4dce15
+e1d176c21f166ddc1c2bb79b75d40e38050c6658a23c416650a1dadd17e15584
+b382a148d2df13b0d186484217ce6e11308856598534befb42a76389263e975b
+0a17b79be1c651630970b99d5956213b5da9d41d160dfdbb14de1e25f83725df
+ee7b04c5f1eb6cf4914ce25d050de1e1fd701490f5e4d82dd51b28cdd8cce9e9
+e39bba025c012e85b2b1c125c45943798f8b93c791b06f159bbbe9a3ab1e0fde
+320164f98cb091b751a57d86d15a0fe812f9a8de5306b3cb033c9e7eaaba9054
+54af59e9d61518b06302c9aad9a4884c222a41898ed8e340c7b0163e5152a394
+ded4c2abb46fa6e763e27b55fad2c1f9c5e4ddf0bc39fb7178f9f5c84eb6d793
+04815fb8fe12ba84b91019d3c52d36febd917e5fc58c423b5c9e09ea31bf78f1
+da64ca6686189475dbdaa3fa111c24cd98c82e2a9f4c768969ca12ab4d160b85
+7aff1f4af235f5127e7735fd8a4e1f4023de13c477e98d7190bf7b6e45b4f867
+38f0c045e958f0e2e20fef19fe492044c0c04fa16a3a0d33dcdbded65d83cc01
+38ae67b6b6c82ce18705e39c04ad8308ff32f03939586fade451f2dc110ab4dc
+fb3125e09d8edeeb9c0ebf3d289f9354973ed883cc9df86e126f0cdf91d07622
+8d14814c51a72aaf37bf555a0e2e8ea5eb932165a430a9d0364247f0ef15886d
+fb61e13710f14ee5ff73120542ea256894a17034c5b5d2db4089ee4ae8a5aaa2
+cedfa0b8453c045c75ccf036b34d53f810c2a219e2765e0f6b1aa7c7d78dd6ed
+27df905f4874e65d79c161371032be490231487d9b877b3a2c6e8a9840e8f421
+7c2a536aa271ac2f44ee7037758b75f5eccdf5ffc7cb94cb100a8710a118e0cd
+cdee5ffe9a3cb0797b1015e78da676e14b78a252fe4f86deb0bda164d4058b46
+3cbc28247564d64fca96b4e6f54499e08714982e495918059ef68b396226aaeb
+e5ea86f697256fbb59abc1c752d459d585ddeec5792b769e8f1c55c79f9dccf9
+cb52f236496e84fd5e9a7e4e63d037835b976d5cbad20aa538a07fca3e44ee5e
+f03e7b4acf304a825c3d1783a46fe5c046e30f75e8935fd323a022161f2636d7
+287b209d2aff608abf3074cba61563cbe724afa0f51b8e2b49023d2165aba623
+aac35969666595b7f010b911eac958005ac45a5b756a9a1b711f79f2d64067a9
+d4258ff5e7b4fb2142de1e561d8d098a11d63934a065585dafb5693d7b9a546a
+ec40b879bb5b7c167e85cc4e9df665cbf0ea67d12e230d9bd922af96eb39dfb5
+e7bf1751f575552d9df1da8402ef816ba3be8f3c19b8912004e1da13463baf48
+ff7b3b33a57aed2a3e9e9f145be50f2e84900daa0b996632263af132f7e6b374
+35d91cbcf393cb46649ff8ee35a93b7e27a9bf39734b53cf410ab3f3a2fc4027
+af2c873a42c13aff732acc9bb83bf2862e7da328eecac95b7c0f0bf79744ea95
+363f54a5b19fd37f0282ffc0c1779d733f531ff661381dc983de2858e791ff20
+17a15a90500c579a5f61209d9a1f503788babb313bfb33f3ca0732c984c398db
+687dd0868699e20655fa21040c952224811bceceb52c86e3666430e4fec39c47
+4462ea17dbd53ce9feb02d52615b93ffd7928c8f6d24b3be92f7731b8b087c0c
+1d51c663dba72b2a6879c6f55c1de28f339676d7bb9af94fbe12af5488d4b3f5
+b529a6a3474e3f0cc46869343243748527080265184bbfb93eb971bdcb298e54
+16030d4076d4402b653b180ca984be40eebf024d2a7faf3910fa14a5545c6242
+fc6d8a9b6380cae5e75df338e07b8784bcbbd5369ad30a2c6a7ec32cf5d78219
+41b18b7aa533b522565cfa592c54a428813751b5943328dcd2c6a622ebd2ba11
+c6d2d65f03b4f419ba4375c714e62974b83a5a5c4392c26da2650e0ef90e5905
+402cbcac72fe007cdc6dd09bab715b7776e327215024acc013cc55f0a3a26859
+2a02a0a9f87370cc81e5c185db2e6090b6b2e947170a41ebd0cc6d71a264f0ca
+16eb08e781695fd8d35777542ba057443ec42bf0a822c27327b1e064af38db65
+9233639f837a74efb758b74a117ec8841779afda95ef3f0f916c97936ec16bbe
+f2b917a8e8e686aca6930649129fbe9dfd1f8247b34dbc586678999dbff6a12a
+c51c1881425432805a253cfeb23c5ea0cdf05c62f99d34aa7f73d90272af0969
+68ab75f3f1ebb30b5ddd6233202fdae3573f67a51662367833673f7ff1344346
+446dcd3e29699b9028c7bbed09471ebc899cb3139284a914b98fabb1d50119b2
+347ed0d201cfd78dee828badc1655fa2c70191b24e20e699454570fb31850dac
+38ae12ca5cdbbe2b0f22f0de8ef8b927dc6c54ecf3801e5c2544710a2e8f726d
+cf297becfb7a93b4b422089200aafafb934334704c3d384379d34147f7d163af
+3cb42599ea902106ca1befeae26d641d49b7a3490f09bf16b8d17c026e40a2f0
+8d727fa2aefcbe4ac82dafeef86eb672a95f413b73858600c7d9dc544694e25f
+259b039558da35ba48443e6c931f6cc6ed108e765c879314e532d888a79c1b2d
+460204838fb662dc90465032792f03f18ceb654a379648ba449922c9447c00d5
+08b81dddf1fd0304b2b803785ee94ae63b9700b36fcc894782782f51f397ccff
+2a1734032660685070d6d5fe94636e6de386bf347f063dff5819b6b8554ea416
+59da8bb46c01807fdc883e15a200a6cedd4b95810da0a805c3d71c6467d84899
+6b88c60191c3a5e3c4dff6863ff024a5c4d4092164792a397b7d390b4306b56d
+b002e6533752ab431804dcd2ec8c9cf242efc7b93dd9c3fdb21824068d3abb6a
+831d89d241613946e097ce77a82f68c92da11dfcbde58e3450f2830a3a049bdf
+c6e9bdff298b4800f150ad3833a612643316cb420af3db29f008ba36a2ef0181
+f64b4bdbb6334233c58e0e68876a6d2048db062b61a9cd020ed7ef071525cdb9
+3880a24eaeadf171b5c077e4de8527b5ed5b7e5005f73c09b2279ecf72e1ec79
+a3e4837d33cfd614e6d82df617f77eab048e71b51b3ba4334d8be27798576a28
+a21ed866fa75cd39ad747a1fea7a57446111ca317372060aacb159ee90e5efbc
+dc5fd16b41a5e63363b41f13c0160f719ce353b913d069e4126743b420562d52
+e56b970fe3e660f4a850e8ef45f7262128f936ab5610401756ebeb0d9b5dab1c
+8ef2d95e0cbe3542bfe0c6f29febf3f5a39fbd16a5c27d652c4a0c542124855f
+4b53071df5537a5fd5bcf653c0578b4e324bfd7587ed10318333382ea137d90b
+f0f83b4eb5d4796e42fb7053d4cd9feeb842d909cb67ba4bedf8592c876a83cf
+48e4a2f7e92558e57a5cc6c3c6a4eddd68bba96359eef224fd78f909e016c5f0
+ad7740a686e566386c4f000764c8b6e97a1f3e9e98b047f75cad6b84d502c377
+846904339303da4c0436f1f67fcefa9fc0581f769b319c38d4221576b74b949e
+532b99ed1cc90a2de4189b346dab2d48777ba5bd5cfc80bb15f0c8d4f478d007
+b84aff3121f7c0cc0887dc20cf195b1d964e14685acd86aabdecf09337ac26bb
+b0e45caec8be479279364fb840c6ff36d164b7be25f9f811a466ce04c2ce5a77
+4ee329b9bd773657737db17709d3a6913793de0357bdea11ddd259b5bdc94e1a
+bf95d33b8396ae9b26342cc1d2a2831e95939a0ef5f13443a9150f35aac5623b
+cbaf6cc5d24d51225c2920e3bcee9d09ca5c60f22b07f24a26dd856f8efec9ef
+b184f8a92781ea228c2f15ad9ab1da75002c9b352316a588d00af46a86b73aac
+feb16d461c9cf969977681a88806c8e6330c1e9e8d428c91de717fe3908802ec
+38abd40d988b018fd7a4c02a20f2f3c18d8364fb18692c310d4d1977be4108a8
+56f807519b471ded405d1e7ed6c02676970c2a1df6cdcda3b38edad9b5cee11e
+5b221716f3137083d4a433e6af2eafe4760b0cf8ccbd5c15af998b5d5785a3f9
+b79a81aeaa9a6706b2dcd217ed437b23de309a360ff60ca82a8251be5671a625
+a90de4daee9941d44d8d1e3a19399f13b93d9b567b2ab2f9cf2b71058ccd9776
+3b6a3f95ea470066f36b343c0429655f8f25c89e65074a52cc6047885f4105de
+2ceb8f80846530a88228b1f44c73e8cf8ff1e99d5cdcd3c91487caba9cce19ac
+bee693c2479d8dc2c8799895e188155502f957b20e26619874cebe43d125f6e8
+638092ae98ef4429bf719bf6cbd17b1f1fd9a7c90bbb6b0b34614b32234a7f4b
+1c259e4b10ec72d3a2e5526473e551450a11d8537cd6d3dfc472576307ad3354
+b2a9c24ae22c90aa37b1ac70352969e2aeb30d0fa894724d5e47a87e7319bb35
+7b76e95d7f665952ce39e05815e5718a7ec0d09dfb566e589c3655e87588b6b6
+95a272aba75b07eff8041298b7a1bf6fd1b10c5ce008180940df9f4235fab68d
+bc3d2ab597192b0912b5d9486b5c8f6cd5238cb94a0c807f4baabe7e81f072ca
+0b626d0a5cb1b8254a4ef588149c84c53d27ca3cbc729416976bf6a20bbed57c
+6c0fd85c86dabd7ade406b27a8890bef705bf3c5c8a59615d858ca2707c47404
+78f55c4d6da862b50f90997989ce492d884f97482166d5ddd4eae075395d7be3
+cb0dfed4d966b2fd24c41acb6ba9f1280ca84aa8cf607bf1d2cae3c6dae6871e
+c5eb10a943c84b83095fe1b7b9bc3682b5681a850001be80a48a2b1bf22790ec
+f53a1ddb50e2325392f118cd56727005b947495ae8ca6e46cab765670ea03488
+39275b5711fd6b227ed1a6b66c02c9f199c8d54b46609a0804fcffcfe0cc8b65
+0f1ec83354d395ae89ef02d548088674fcbc0ac0daed78ab47e3ed00df77c01f
+2d0e5967da9348fc0434d71eaf90785c3666694604f48bf2043bd54dae61ea1d
+3e2da8efc1ae867ecb0e7d11093ba20786413e80c8f05dabcf474d6d9a1149b1
+be96ad65eeb5b865f4b321de61ff8904a072092910bbfce7bd5a42f10c355e73
+c0890e342af2f2f4d7fac20c846d372877c7b12776b76756a9002723d5ee71fe
+5b1c0e5fbed5c354cf4b9cfb843f01b9e378e90e7a56994325c7c447e5269204
+c83b98d99dafc77ddb6a3fcfbbf430f6d0ab8a832c262f879369fd9ddd33b1df
+602f5462b9f2b29360f1a1b7d7eecacc4f10f188e7e2ba08005878b1d9c3762c
+ab8a29d01c0c164efe8d37328deb51567d5f17b25c11590a1078d53a36bee786
+5813fee10723c1acefe111dbc08b796895f2e1bb190f3da6accd6dc6c884eb44
+ec4d78df308ae7e774cef87ed4d6200bde349c35d7262448f165a6706c33563d
+24d04d409c69924949aae19c13d07ee64910d1c29d15ac711fb56e3dd05a980f
+acc11d9c08863c32a28bf94eb2c8fd1fa0ee61b939ed944b017a46b681e95cbd
+0365d77433a27195df9d20a3483ec94192fec56b9af5c656bfc2924ca0c19fef
+ad23207ac6d0169a15cc273d66899cc044b5efca9ef4078b9bc1e91f83842624
+c08a91c1c0d20306b1479e749386cc50fed78f22a27579fcfe943b033738bd67
+db8c4cba7f60e8ebbefeb2ceba747c757e902b70dc09622aa4ba96347b6948fb
+3ed5c54ac78148b5976001bd3f0474d93f4903d15a6cd68727714ebcda244345
+d9a4b0020bde3e2c74385736f244206da78d0331de35feb4960d8fcd0ef4bb75
+5ab20087c2aa1da104d16ade37b9159caa0f8bf528b55cc005f017d6823268d9
+b13d199ce47d3c95e492ac8067fc44b42ac8be86b639770a91c75b7f7a55ff60
+0181451587fca8bea1721f4950b3322dd9c8a09cf8e4d2abef3ec038c8302e9a
+3194d54745d5798e3b3844696d3c4566b179c98b7adcff4bd2a4fb402ab275f4
+30f2c77eecfb3c473d2e7102592e101c3d38f79a08021227f8f782a59d20cdf9
+c9750a8c0ac70e34d983356c313f85acb56ced4467357e07e23a62ab3fb6ed71
+9f9bf85edd20af93c1c1736b6112dfc8447b6d06ca12202f84b34f892a1a13af
+4423b723c13701aa57982dbf20ed6ca129b72f79f77f1705485967980db5df42
+c662f0ed38a02b55cf048e713c0c6a1a85c900acaeaf6d045dc96bea5d45ecf2
+8ae85d1accc9b38a45d6f516078c72388e5337b9c1a2023d086e97e3affd3f64
+517df9ece75c3afd0e3dc74e2ed3b4aef8a8c032cdd70127ec4698db19c78646
+58f9dcd6b98676dede88a1efae04d182ba73475290ba87fdc71cee2737057855
+c9b151917eb5b3cde9f70db961ab5c8a10443a7aff427bae1d1e720a604c39a0
+14de8b45e528237198f086421b5938871ef89008148eac965bfcc850ed7aeae5
+ec3e8e37b9762a8a6580c791cd89c4d25fcdbe778bae071bb1e18257fefe9771
+255f977611825be7f64134c3521ebe7c549741265838ef00f0687ce14c463d97
+884893e5c967d3ca5286b52d0aaca5ada20e778a4f4c807a9cd97f0c05ed4876
+1cb09c787085e213a86b7aaf33acf64552ce5d8c3459c261447024035997ae76
+85d1d4337cd1a1def984e185779b2a0a8a3c8da6212730f96174f4c3b104d096
+3e0e395fb85f918cdd5f98c77daeb09a64169dfac253730c7da4122a7025ef19
+dec6042fc24d4565a1f8a7b37da00d170b6c4be72475544dc73b111c775e5c20
+401ad5b382559c2dde0bc3ec0e46c07e42a08de477b3c07159666bda273e29d1
+8ef5b8e6d514e510d8210e0a998508c3062ae26b504abb3613f3d1f167c87bc6
+48308196ff8fe6ca97db5fe0baadbfa22593c01bfab9640edc31410fa037bc90
+f6ca35ea8010a6b3c031b43e19c38a010e84f1c5c97b73fb3330ac18268c16bb
+88648034875df43ea61c877c3278caddd457ee47509154aef00a86d801f8ddb1
+44e43f5ee5683e3ae84b7f6ba7aaa51f038607beb96ad79183364c49793ff0c6
+98c2a8fb0ac71b8f38eb7479a4995e1fbac92278b9f3528261d822db91d5d4f1
+9876784d0651ec7291f19a5437e987cd727afdcd267f983eabe8e5f3879805d1
+3f2089d9fca9d35e4fbfae0d72d7d0021c386bf7608fbfaa87d26a57933bb6ec
+95739fbc3f7229a82efe4343b679165df1ed79eb650fac11cb7f1e74d6fdc9b9
+a8847a85bd24f58e2d988aea2f26eaea9d27f5892d2cdd77669b849a92f8d0d7
+5c54ed9682ba9d0c7058e04997279bdb3454d2b6a44598267a269a814aa9e1f0
+abf598a1b6c2afb75e173eb6fc2634253c04fcee9cb2a896523aad92457ef0eb
+321e0a037eb6cfe349911c148473f86b5aff5b8985533a5f6d3b406ddac73d35
+23071332a8fc34a4816171b2c8a19bf458b4ce7259270785060b9d673f3c4997
+2da999ce0f2e7ebc2b2cce6de818d40f020d5e53b882f0d3754c341d5740ae72
+2868f364a2faa97e8c8143de444a9f3ae27eab6c4f7c838f3a5f8b9600d70831
+cbc2dc64ed3189f33030d0b32211b757f6682949ab889db99693f4dea2f670cf
+057032d3034aaa6c3e75a0bbdc092c5f4886b169e59ad2d7f4d41cf7ad2f5882
+77914fdb7253e198a40b2186b1a9a0aa958ba9fb99f21a074825e053e562c2af
+8cd8866861ae914042dc4b8b5342089b21013d519c44c28482cb8801c73de3a4
+9d6dd060294e4ccdc55f000f0ab7900b088e141fc2d8ce68cf771a068541657a
+8b41e95fd2b1b452949716ad5bb0b8c2ece99d07a41f3c3ec381212baf8cca9d
+801a993c8a3926b0e0d60637618f69facf70c7b3e6af9762afde0deb9e5be5a9
+105c3164b4d8372414fbee3181066f1772d21da04d0b350c806935669fd69cf9
+6073c324b8ea582638b11e58e43267c3854fa35c3deb3160d7756d66b87c8385
+92f86ab8a97bc9d6260e2723d435769d15dce8cec387318add815687ddb99d5f
+1980da44a5332e5c98c59c8d6ba28a995ef8d809d783a9b2510e1c6b820c25bb
+90f52ccb9fa3fdeaa661a69921794a60a591fc9157e755c28aa399f30e93d298
+9e7b35fcce14d5fe6bedab37c173d384d3f67323e702b14ea74951c5c07917af
+f9f9fcc450950a8232cfc4744dd38ba79b9fc41a37205c97f44ddac6ea5d423d
+7af9883610084080de39e5a71db472081595235f72c7ccea69a20cac059f2357
+b4d60e158834ad26f85fc1e9bbc948db8fe7a03c5c401ac2ed880fef8803e464
+76b00961ff910f1fcc897e1fa4f6b697a616f07aa95f5616a313ca01f39aa99e
+8a5a9fcd389c99d750ccfa38bdbdd9a0376452970f91859aefebe5b55779516e
+665c6f786b3d22a1cc781a729e477c5f82a65027c87b54a97d9130bd4464956d
+735fa5b8f710cea51eb9bb909e89716160cdb112e44876ac49494f62b8f46e63
+c978f80f3a57d99ede832bb7bc1ae59ad0025944669343f432bfeadf8d7408f0
+50c7568da4400df96139c1d243b8634b19f2134fd13c783fe9012a58a7e7843d
+55bc3b7c768579bee6f5931f1ea9caa44bd6808b12bf4550c852c1ee3cfa72b3
+5c883f0b6a4f4e5d768f93aed79bb5c70b681c3a9d604b6eecb7026c1b22e28d
+c184d2fdade4c6afb6b9fe8d7495abe07547d092bdd73c5701696e6f256cda8e
+1a6e58f3335e51498df75cf37a7213fa50f6d9a7a4ea4a251c3cd004b75b8805
+8c8b8efba9f66bbe5e8f321981aa2d8f5d455b47347e368686689d00fa5f996a
+b6922e325bf4e72ac9cb09fd5802f365e4a15045683884b45f15175cabb62651
+3e71fdf4e7ac9b4b91772644ca8e55c530a9459719e181f9f2d211601d1bc5d0
+55731eebc2964f4add0f713c6b22abd36bd9163902a147f5172c4e054ff44ff1
+1999337a57a673028374a04b65e7e77ef2ce24a75c90fa2bb48cad9e9fa77111
+24514b9400e2cadf75e9d7f62fb7993f82cc336c77716bea4c00c931ac21e95b
+04f35462cee46670514510bfa22ded3ea18bbb8b511f42c637bbd06134280404
+05d4355a5d252d9bc291c14cc81d77c491f62a54387442b9a884b3d21e0adc5e
+1c120ac2c0b03a0355204eda408570d379547d40314f5c61f8c97971b91c521c
+a5e86c1c321a90ae21dfbed0688e8c7287e7a35a1f0807b0a9a811a6d2d68636
+0fe12a04126f19c9b0fbed1083265ef6b2f4d463563df3b1be5b9fd0d277d53f
+f4f5ee43b113f580be21183338592a57e29c025bfcbd56dad49e4b5bef14363a
+db5594baba9ec550bd4cda1759277595d677a71c91925e6e1960f31a24117609
+4213750579cf163fdf9b3590951bb5e2a8f117412025f1807584ce1a4cd382f0
+9da5d7b56954f85327c0eb4ae556b79c08048b127101d2fb38f16996f1b66fbe
+0040841b5578762c35849b0641d3343d8290f2aba7f075a0e2721718e08f0a85
+1fc82805f23c2cb0cd67740ce3d5bc6b97f98f8818cd39ad76ea2779c48ce48d
+43302c382ec8d61904242e9a5e28527ea6a3bfcf9dce17a9d36398152c7c47ed
+777c944db9ba4bec4f30a1261a0096081ceb94708ebe98e7165ebcbd768240be
+d03fa2a0904086e1a4fbae8788315c7f864754e63f2399702bf2dca498b2b352
+09ce951389384a9e8ec4f01b207f61112956e9a59c0bf46677b9b1f8459b41e1
+b8323e5bb1ecde22bf2c47938e0e2f548cb02758dc7135004e448d9e689cf431
+11d2fa0a98f3e31b3882cf8689c76d276b85177cb27357bcb2ff0de3cb032166
+c58f25e0ddec5971b6a81325abcad1fc2a27cf0b20332769e80028ea27b841aa
+16506f7c22dd55171341687682311e1f884ef87494bccfec13f5b0b217333376
+fb86573ee65386e19628e78f49c6cd9fbe4cfdaf21ab25e6f62a99cba323ebbf
+c5eeaa523613eddbf85de5dbb9c66de1748624c271d8fdbc16bb8f9196428516
+f85e26d904878f9da7bd61848e96250c225e09dbd4f15180759e3e5da86d0dc3
+f5f4c5df81625a466d31872b9644afa35c81cd8a84a052b954bbada87c1e50c2
+c39594078c068c9b0aed83074cf941bc7afa3afbbcf3f40f34e4e3d1f133a57e
+9c10799313813684dc597fe5ae551cec1f61802dd873526fde81f323b6c62530
+0a5ad9bec4131b9cc9cf26a4554d6d64bbd5c7eb59024b2526f12f3f9352dad4
+7043446118b2339223dc051a4938bc6a2c691029d693b8bd3d35fcc458f7df7d
+bc2e51ea969285ad222a233e5331f99ee402eaf6d76403f6fec3114e6315a2db
+23659ff88a0cf2738c290fb6ccacc2472bcaa3e0ce03f9e9d8357b89580c95f6
+f97c1ef3f0bad43253b8e97e6613f0ac04f55f2f321b5688fbe4076558738b71
+b378712d45c48ff6ec34057bb2a0aa7086c27716aed9c3e6ca6703ffdcfc451a
+0471ae9d6512f0fa82155ae17e133b685717138397757d0230b62cda0ab1ee9b
+b1f0bb791daad5f3789ec0f22d13b44143b63250f09ac760e86ce3219292c6f1
+ca0e77313611d8282d8f62c986fd525baf75a8ab194038359f6e0217d1a5fde7
+ec7de056f4fc6893e740dd8c9efcd629fe529d5116db5482d12bf39b0e3a40bc
+bf1b3f99f627cbe937656f38909e3924b89ef1478be176320b6fb8a7c750f41b
+90dfa427229c900b51d806d959be3b8b2b6e6187fb1bd406fd179dac8af5e70d
+be10e747e198dd6cb67872b48585f33aec68a3ca94a22224056a32a8139cdba7
+aa07ea5cecad1d2e1054cd265d35c6b2ec0a25a0dc415955186cffd2c4b6a86c
+028129fe12b4fd07dde82836ded99925994f058cf323bd1b362a86a8b4ac5aa5
+dbad763abb2613b41ae6b947fb79a7edf3ad23eb7d732727376a1fa9ee0e8d79
+3b5871fc0e4535563bccef6ce24a71b717f90590a7317652d7978bfa78a72454
+353fcf512ec5e804ff6d2984c3e905401b69246e1b040693c581e794e6d57ed2
+5dba59acdedbc4114116da97b749c4007f51addf7dc9bec79c77cfe29b6a93c2
+61e2007b01a0b8d6f95a9e6c25551a20ed592c90c7ab5071280e5d85200d776d
+938df156ecd2d863f8b1848dfbe5d3a40d4b817deab66d5c191b4b05035e0009
+5f04c4cdfa26de785889829564c27377ff1f2518da932d4559017881aa68a802
+5bdaacfd2611e101ac667d3b69e7895337d522e56b4d9698c4c5f9a0e83c2386
+f084f40a75282c72b2fcc12973e5edf34e810fd247f9c0317899fe6efc833822
+8a788d33265883fcb78366ce69783b9a15e8c041e4556293f61c571bcc985d69
+b1761aca9460781c4b9f9035370dda95c777de8d35e1d7aac234987fe1a8ff45
+37888fde3267d97e27c8fb6d95088f0d207e4b8d3e3d689172b2d89b8dc28b34
+43d14646b23e3807afeaf3c83a22f45cbfe9eabdcee160ab7b1a664bb5fdba38
+4446b84b6b863c892a6ecf33f7a569d82df118582e514c11314dc73fdb04be15
+b6bc9b3be801419d90b74cdc52ac40e1342167440621fcaaeaaf9db8f78f9e20
+045d3a26e1b51f2c786b23c09cb94f9cc91df0b5236e3f54062925ce8804113b
+c93c3ab041948a2027d00e112043ef82ce54365fe241a2c503fa334df6973406
+3402fc6d246a8694f436b318bd5558f69c9f182746a25aea1bf1993f61ca48b3
+b04074f8a44206716d6a6d834ed3c455e272b41810c6d70133c455f246aa7764
+a104c482caff864d86eebb2e1764735775e78850006f959de537d66dfcea3f2a
+45e24e7d905439a59ab155474bb3dc63897c1dcb7e8f298366dd49b9b1e42f94
+816a3c275460375dbdf175ca420b46df137a34bb1ad7983807677f093a05b90e
+81fd0ee6b6de147a9813a1a1ec0c7d859777c0b2945edf2901f883b8b54aca59
+814b951e4c97fdbf48aaff19cb9fe7c6c0de6532f656e5b1f03193b58ee693f8
+4684114fdbbc86134a483ba1be41cf4fd823a23f5a52ceab00021c2954e5c04c
+865ec7222d33d82f19e09375610ff6dfcea95e0a25a1cd3d6156b63bcfa13740
+63bfe1d8a5e45659b0c924eb81cb3d4e70e59515ca1be45f66faadb5993ec547
+966f70f5d761c8731063422a510984f7b4587efe6799d2f28d90236b49ac10b6
+fbc45ecb7d91017e16e4fbf716709b37120d3586363e33d94ac92b01d1349c00
+18825eddd5cd9cccbf8c70046ca295d885209aa3fb0b6209c5298ef4843c39ed
+d64dc504c278334107d322cde4a388a4a079bd303c4d5588be979eaa6cbdf8b4
+942ffd0d27b2ebe1533f1d31b3da2c7fb5c8b663391151fe897cffda8c227d45
+e292e9113ed2538712b40601f1f0c8f3d0d69ccb584abe6db54b4044034791b7
+d7a0838aa9d80c971f45486b4304f20d68b76ebc6e55bb683dc20c356176006c
+b1f902f8d0be642da9f9209703c23e48235c35778221689c16d426fbd2903d19
+7fd00e071a1989e8b2ccef17d51e7d73d7189c06adcda120cd3e849c603729f8
+85006337a3a1136ca31e0e41d674620f97f0101a297a1b731b1d0348c51d72c1
+4be0366a2667999067d102d7007d510f31074799ec5cf6ee355e59bb68dd85fe
+3e3f553168c337afddf1bbf895c0df509355dd9120735dec0715fac5804075fd
+cd57fda443cffeb9e9d8e6f24a3daf1d9523ddbd29532a6c5a79e6b1ea1f2b1e
+55e0369cff1bf0c074873ac1226354a6a74e62faf42f1a15c863c0ba21c3c399
+b9c1ddc4ff6e9bc9a3ba58581b6bf67b89b7045b9542694b9c2dc3e185a1390b
+67aacd3c344d37467671f728fddce8bb08e2c6b8cd4a8abc60de087fdd560130
+3f40599da3a1d4abe2e93cffc5628e62d972f034681db1c6b07cdd0e7f9963dc
+0b146051fe8140004c5cb27f0f0411027ba88646baa9d6f02931a762300a8085
+7aba1853932d380a72753ebcf4c9c24a03fedbb2dc057c6f62f31695d35a7e8d
+da73ea4a610f515fb52ad509605b8deed5e44c36b7210dbafb46cf2c5ca7f42e
+00571a8a157a953226cc00a87592050135386c5e7fa1c5e3c023edb0359cc26e
+96762eff0ea623651b10ff61835614486760930756e59d54919f0dfe0b8fe93b
+9b28c474055246750aa1679389c5204657d283981a5cb160e21c1737503ab109
+044a661a3b3d100ec7f4581bf7b67b50970078319890d5a67d133bdc07265d22
+99504698a00ed8c9747feb1e747737e19850d39c03a837f0d504f9b43c8fe9a5
+725eba04ee6cd478f8416470ed154a11484aed5822bf9979b1ebd5e56af698f3
+4b865aecd29c67ca74814b0cd0109767f6d582205574670b0182e0ec6d23675a
+11e489fcd58f0965af4c2f2b891aabd05185de26ba4e0a86b4fce3ba710d9c81
+3a97ecb07ce16ba156e2627048da3a2155ae68a5063f6c2eebc0091711290605
+b540ca4ddd10838e2a64835ba38ecba8043074be230baddd628d8b253734397a
+a213b0a9bee70d623dd5411eb58e25855209b3648a42e4681f90d51b13354f28
+267d48d1b8aaec412be2dc199ea3ed041bc3edaace1af401d01e56b5762f7c71
+cadaf26892f3e1f6ab0438a4ba0e3f5ad953fb15a7d821f6444efc966c67082e
+47e1af0e6e0d199189a994239c9716711f9ed82f6fc2fa1f923b4e3aa45e5ad8
+c0dc71bb5481fa6a105b90a77bf4b8b9b852714cdf4fa814e9d0d89d349ba57e
+dce13210f79ceb8733526aff221386f826a435af47f027d81bfd4d263b84f8a2
+a807c55d1bada31a59649717a4ed8d560d4f5b81ae7f6943c66e9b2ba9739c3b
+559d49fe652de7c968c64030d91099ceacb9ac69417e8210f64eeb6dbec7ab1e
+fe4a3babea0a42ed49cba2e70a6db7018ea0ff1b2b0af498dc6b5e686eecd7a2
+a6b85e07401e08b825457e99d0b5fe48ef13a14fc0ceaea7bd7748b2c7414522
+59ef4ddcd6a12d5e84ad402badb6af6b8d50738250677ac12324e4e3c5d72887
+c3f36f99c04cc898704bada948b431f543765f3112175412fdb80af9850ac5cd
+19b65b018df357498fb4255439913acd686e3edd9a3bed54235ca6a3d93ac968
+6ccc1400b8ecc647ad4fb7334eb768ee32d3213b8a30ac2caae37e99ebd9e903
+b319139533fffa9289c29424a030940ab2b43df031c3f72542e7a8227d56c29c
+a3b07551a0be3cc4d406d2b0db792e9e72942777388d1dcb4d48704c64a99434
+885c4f4f170294c7179dd43944d60739ba9412245f2c34699d04f9815db6db1e
+b3835adbf1d8d9cba2da0d217562a25e0adeaa51bd8258b9b49f1ab66fb1e72b
+d0312788da672625511e07ba68cb0eaf05485044acd338305f55c7b67e52af4c
+124e54d8e3bbd2c6ec6080dd3e191416acaef07bfecc0e77acc92236749ecd88
+96577190a9e86b7ee306b613e0b19015af7bd544e26c6a3e98c51d98cbef559b
+29d79e6bc3ff0966663de38b24b2449d38846e6652159ea825303122ffb55333
+a108e242a05d015a9abb0089a5b9974cffa5eef0de271c243fd9a4f5ebed3b53
+324de92d22fae131fc7676b747460fdcf199076cb5d922e2098446275946481d
+681674c97c00466e79ed31008c4f83626ac2dda6b0464b589f01082e5ed3d7b3
+1caaff1052012b1da1e37f3c0049623555b7d1525f44c0824a53903b54d4da9c
+083d7acf2717e26be8596a07574661a53c504866959e13dfe3547fb8c5ee9c54
+e4d16952d25f0d32c103c1b2381a3b06ab7a26262f95755e2cef7a028266ffdf
+3687304ec78638f3607e1d4c76af0cea8a30bdb7afd9fed23b79acabfe622c82
+9059c90c5bc732c53d8ae7e55f6385ab5d78e0c4e0b55bb9c5867ff9a498d3d8
+dbe4f0c548de9edc0944f1119bd9a2c33d5d1c8de7c5156bccf7d4e52265464e
+5e58d93fd79f40f0ad593f50bafdad06a77fbb22982b35516497305e78f50471
+746076b77160149dd7a38f2fdd678ddc2a954ed788a19ddac34ba6ecfa9f0ed2
+f7bcb5f97eb077bf90e7c3852ea49b1a64b3a1e618cc83bffeabd15abb82fcd5
+38b644942b6b9741b3eff1409c67632c6a40d77c42ee0846d8edeedf56100f28
+ce8a9fb58b4aea6fd3fa0345832062d748ede2877fbe30187b635ae95227a7ae
+e15f86beee2718058ee928c73d0e6f2bfba3c144d5fcabdfdcd499f8b8db426e
+0553781a197bad1798327e3bdd32060bb55c660c24f3ea4e658d4e95f69fd589
+e9b35a2153bd45fde6f56e50a7cbdf803e26103a62824b24ee929b16add5f9d3
+5817264fbd1d0b3171fff576d67bf6aecb15eb25c5bc6024d558725718ea8406
+de77df6446ce372a13fc2d96fa72f65932fc34e7caf2ea065d3c94367070ad57
+84e94fef2858bcaf7c60f999caa4d0a483fcf77bfda5ead04c77b87c69a3bda4
+9e752456a8a91e78c89e72b3d805cddf729c8d13346df0c1150a7e16f37abdf4
+07f8a69b062fa83cc8996e8857d26bb0c09d5a5182cacc745772b78b584cde14
+6f5e78de240c5f6bc995606afd03afb003e0f8f07f4f62478caf38494a162a82
+ecbcedb9ba0d4f074611e68f0cb7bbfb76bb11615cf4cf26772a57d635613fbb
+9fae0485183a90656c81750e962f35cb61689ec21f11539df17b2662006e2391
+b5d31851ae55c40d408649349ae3500bd52990f1ad042a09d0f31fef1a5c7c89
+5ea1118ea0c1576b630bdba01bc628ceded0ad35e6decc10c02be1a05be5259c
+f318b84f4a0d5eeef0ef8d991e029c55213d73a07306160751c8fa142d010c1b
+9e85dce81b6c4638de70603f7dddf7fc3a80540151b985066926c581d21cda9e
+9a2a0b9f428fca992ef1970a985b3f5fa6e80e5923db4de6ed7898c508852a47
+439a8c50e416c2b75d7b3c8046513d91af6de66ee4b6f26f6b639d492b105b1c
+9049b04aeb7962405871e868f15b6e1a8e8806253672c6eba1d9447c1b453d36
+59860fc02c285f5f2d773f0e76c75d5fb2493a5c26901d9559a9f3550411039c
+129fa2d0fb9f5aa4d6a11f490488a08fb3de699fe868ce02120fa973fa0ae84f
+fb524eb2d7823fe52ed58ebf40ef5c7609b7b8a5e1d47cdb9f624d53d35a40fe
+c7ae7c17bc941a7fe4c9c50777595a97573e3ef83582033e1851577036e02f5a
+65aea4282fe5171269ab39a07939b2a71890ca4043102dfd0afcd8688996a45e
+7b6a858c30e54a6f32fb19bd71adabd584ab82ebb85535e53788081e553fa09a
+d97345c2ff7e6b7dda5093bb78844783002adae6217581860729e94f5455e6bf
+8050a1df07128cfd83f682b4d11696a62d204a7d7be0a43a653d1cb6f58a760e
+cc565ef2e33662ddd7daf376653963f1485cd1c523d9341b1131d527ddc5e166
+f49f08b1bf9344bf9f7551a2688bb258cf46775a6a31a4e38dd1114fe2e44e5b
+3b56d7f3d7f44e3c9f09c6e9e098d425370daf4dc3c638581a3f34336e80e8de
+9016f94e65ef7664a4ffc441c52d073d47da7b90c39aea70ee619b199ef79773
+bbf5ad46ce9dd19afdb335492d31fe45cd69650eac723a9d6d0a3c9c00eea011
+daae00acdde96c901f111c402703f7b1732e1527aabdab32fe1355348e76081b
+27491e40f472c84e26568e8fe043ae3b0813137b34205d5a005eecd8003b244c
+20e0fd57bdb3755e7bed94304a77ddf69a9c6ad5f286bd2e95e4f4f37b6b6004
+b9f7436171c6a17af1136c05bea345577c488112c7c8cecfe7c57f2601265076
+dc5cbfd0d2e66b8587d92d02ecf628c297f4d08c149fb2efd989e9ad7a41cdea
+03b48ae9853b03768a1528cef605f9d64045b1c1de64a5e0d26ec5af66ff278d
+296f02349a6344767f0b0983530d314a370687f2019ef6c778654c011206e8a7
+c47e5572f904f2946372e8ce442bef2cca4fde1ada3a06580539088c11804c76
+e66c32e076f0e3de041e9c9950dab9d79886a404c081f61d1eb5e0bb4ff05df3
+8412f34b01dac78411e4cd8c6322b956fdce30b66dbaa9e8df62f797e553b83e
+e379d96df6a2b11fa7edb9ea2f1fd8ec4b89b5ddf937bf91d3b574ea667a9847
+5737f2bce293b7f9ed9ae06ec39ca2befe1d4378b707e266ee3363acba05eef4
+7a9d71f8a205bbe81569ff184de2e187735829b17680534888904fe67fdadf4b
+146c1d80f3453840667908b0bd497d22c8ffbfd1400fbd57e140afe219fa8f51
+c8354af1cb982ef423f250eb9e8aebf30166780d631400ec33bd84bf71140403
+f5cd03fe38b27f08167cbe99bcaa3fbca13d734c74148a4321627b672468905e
+c93b528e396a0d2a917ce042d8dfa63eb2575723962063a2487f044c365462fc
+907b42eee612f0fb4e34a3fe9ea1a0f168da2cb89cccc1b5422e81f09bfa175e
+3479915053e90007ad92ab92a2a0644726bf022737f3b7b0ee7579fb7731ac29
+e7e043175277ef22942a9030e0bf91a1e775f9fa3f6d86ea3b72c8ddb42a670c
+68694780e5a7ab25968592d823bdc6e812d19641c1e176e26351ea5355435739
+7f0f92c33c67
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F15_0 /XDVKOU+NimbusRomNo9L-Regu 1 1
+[ /.notdef/.notdef/fi/fl/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+ /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+ /zero/one/two/three/four/five/six/seven
+ /eight/nine/colon/semicolon/less/equal/greater/question
+ /at/A/B/C/D/E/F/G
+ /H/I/J/K/L/M/N/O
+ /P/Q/R/S/T/U/V/W
+ /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+ /quoteleft/a/b/c/d/e/f/g
+ /h/i/j/k/l/m/n/o
+ /p/q/r/s/t/u/v/w
+ /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+ /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+ /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+ /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+ /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+ /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+ /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+ /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+ /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+ /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font QYKIKI+NimbusMonL-Regu
+%!PS-AdobeFont-1.0: NimbusMonL-Regu 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Mono L Regular) readonly def
+/FamilyName (Nimbus Mono L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /QYKIKI+NimbusMonL-Regu def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-12 -237 650 811} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa763777e13b518310
+ac032eeb94b88c7dc8741fef59c541b57b0441c6888237a2b66a182599d1517f
+9ec474a9539f1632c9a5a1801fd646b529cec2b430f1cd205feff509b4092535
+29e0b7b372145ddf62052c9c08b7673d36dce58e3e78a8e4788b34e36eb543c0
+d68a36e2831e23c440c3e5f1ba2248633aec75ba8d6c9e7fc0da01af08776246
+9a8009a4f3a93241f2f34c72db3361e701c06538a631f6a8cc47b1b5df7cbf9e
+9029d42fad4b90f81cdc2b4cf52c09864f657c7c357180375c0b64206515e472
+c6d71a2c5d03c5143600d0dd439998956b9896ffbcbbb77fc1b6675f1e428390
+144b29367ed224ea9e5f51cb3e349dd118422bda8b6adfe217a02320be72983f
+d6fa232c9289e529552708746c4c76df4ff0c7b27fbca194c650679504c0fcaf
+0c643c945a2563ed47cd8538edd441bfee93dc4160421cd9efe6cb32d81a8e1d
+e1c446eb5ec2a6c855e4449731ed3da1c3ebbc3cfb6553c0f78fe88bea6edb14
+a4abb572eaea91681b7e9f6a2a08005164340dc1983f75b8abe75fc02747fc2f
+0c5b31e0f9a8960410d5cc677ea77d0b1b28681ab5e6b3ac11368b1e493f594e
+9d037f4fa4c47ee06351cb471af4c1966aad3e51415d70e57eb0d84ec3a655d2
+b0e3a818baebfcc472b485625414c4e20d63b9673b0a0780d8838b0b4004df79
+da0444405db6a534a7571cb1aaff7d4975ea8a578ac37044cb1395a056c7d9e1
+ccd617391a2e852a4d71101cdc3c9350e57657b376cfc7cf7e387414e4a017f9
+943ba9c3aa45e955812e6b8173acbb5e5fd0f0654868def282d134d0b4533159
+c2bf0fb6959689dde7e8e5d22618fe9c8a973a87ac0e853af5542de5b89e7b94
+44ad4496afb696be0eafc9dd7a421856b1c0baf95b5fa887669124ad3698b544
+5e82a4c5cfba4e5083784e52462f3724e7273de6e00e84a1d83b6a8c0e79afcd
+1df167b97e2dd796b6826231d31fd02991e990dcf2dbbb0026f9a151c0720467
+e68e2cc0a5fce825564902efd08e2ce18896ca20df47d2df8928baa632825543
+d0f6a5c94630e63411a6adb264443eb7d0f6c3883d195661ca3a1bbaea7bcb41
+d5c18fee8453579ee23f1785112e31c6dfd8e9ecb8681b248f0ce3d77aef339f
+b455f3817cf7182d1fb0c53589750be5bd6543beb9c341427d0a4107dd5d6ef6
+2197b85088749f3cafa40a6a3223d4ced495d6228b3398fbbd0d4765cad178a6
+f93c5217bd254777c20cbfbd33673c5ba58e2b021580d63c76bf196391815c05
+d05159b171c9034edbd0e861c5a26f2dd38736457fcd38003882a66a4cf8d7b1
+e2803ccfc1c9fc2abda0271c331247360b7f2cee58ad9cef1b325f62dbe2be6c
+babe23a220f662247df70428c1f79c79684890324e6b7166b269b174b98ec8cf
+f33b589cc3d3daf1aba6835a22aa2f59f8d386610bfe936a05794242e99cddea
+8da5b4e5e56a875c49267e2d48ccae616053235b4b64ae53a573922009e8a05c
+a56fe84205488200ac68b62fe4f07572392940638301363c4131ccb86462c242
+afa463e3f7f036f63e622243893261e7ef744ed489397030a6604318da3f592d
+037a620fcdc10da51b8f31c816f91016d38efc65b6d463779720ebe8df03be2d
+0ec52886ef9205fbfc6563ca80accfecb7c686f0212f85da5024129f01bd81b0
+bb90d58eefd17fb353ca143a4757421323238c5653a3bf9f28cabdce6ff9d946
+867a33fc9ffe0adabd3679b555a9ed3c181d3e108f776e13bb39794cb9f4edd7
+7a607e017fe054811b3ea3f5b02c95343a5eb449723c9fe7857441feab37cc93
+70c285d3d91df0a0e1bb21d022f68f0c0c8bfb311b8efd056f47c67b03b45dc9
+0bd78333d366796421469cda8df6f0095a5eee1a56621d055a5b12d6464cceee
+9f5fb6a40ce44ab669786f4f0ff1f348c9d3712761a07eb8aac26c35c694e1cd
+65b01b32a2319a381734864a06a349db71a2fba74ddd58010c94aeec901ddeb5
+41e0205df489d02664b4e2fa03a404c8aeeddd6d1506bfe56e2e8a6d3a83f79f
+35f2d552dfff754bad59df45582e3aa87e6bd45725b2c44260e651b70af70186
+8b168e440bd70014be5c4ff89028997bde67279b107f9fec9b4b2f2dc112d811
+4dae65205429ffb3c9734df32328ede30565ad65d8a1aa620bd543286908d747
+d13cec2a2f19cafbd2ad480206f8b2b39524a2fee286cea20b22b67dde321e3e
+3ed87d8f7d9b253a16c648de1c9c8cd84c4f2304510ee263083ac617954b7c9e
+62f397daee458e60e6058addaa14ea573888162b6777c4b5e80c2fbfc8f75ebb
+2026c01a1ea38b85c4fca949d15b9a470f36e0b697ef5dcee10c45f01230dc48
+728f50abafaa52ec5f2899b09db8b74f46ed55c8efbd3f54f6afb0691a992b15
+e1bfe3b6fcb6764227aabba94c4450183f139da7e12df63878b0aff0d07c51e5
+21a29ab9fa0482e9dcb043cf704f17bdc1fa1f79bac725d6fb01dda18a700eff
+5d691d1573cb0ba677a9b1a62dc483fbbb7e4fb0ee0c87cd631f7145b710d181
+85d5bf85df1cff42d9dda4430a8f6f4b6f6c01d20055d8d9cf1d48f268e046a4
+9bc64bcbd7742d090608a1c025f39d44bad9a05ec2c7b5ea4b48959f1cab0974
+537bdbb8828a830843ecb3b6bac3589cb8a35fddf8a55fe4445ee3419ecb9dc1
+3c9a3045f5fa5264860b6e310854cfec5bf920061c6a4784d911fbd82c6b5353
+72cdc7ff3dba22cbd02303654e4d1ce6c5f03ea5719bb456d1ab804a6a9e08e1
+15d0ddbc46f2ff494f0703fcb9f6c079e5af3f4a7bb5a4546f9ef8d708732fbb
+1bb4d11a942470e0a96d5c83d20343876d89fd6db3ae1fe60034cb97659382b8
+03a4c8ee4a01738285c8af5812c4de7a97b1eae85315c9497c082b28990e232d
+7603a06ade5075fa217ef86ed78492c31ce4082f14a6952e0d07ca9d8e15589e
+7c3f49cfde17055e8695923477b71b4c09986c62875e25576dfc3a3854c1cf5f
+73004b97da00a3deef1be0aec1920342613d3e4f805eda2ac121809b02a42d3f
+de9e9245943a23627ae0c1c34b5e6bb1504ceb67966e9b6f104fddff62e82b16
+cbe3d401aaff4d9b44236ef0d04b7edf16eb08b7d19862effe88b696d05008ae
+ffbfd118722a55a1597604e232416c2190b36c30928f82b208006c26b85d7428
+7153fccc92a65f04229c8d7b2c27ac4294034a051b45f6ed5b0fa3e23af3b5a3
+5f996bb65cf298c4e15e98d228a719e1c968e7d5d0a75a9bc3cdf8b5c4a136cd
+a6995d94f5dbe307ae1ca6beb56dfd09a6683bb1437fdcd537e43cb1633a72bc
+1e72a5f98497227072d863dee990660c137064f8f73d78d9c5a40096dcff10a9
+4e3c9dff0d2bb80c429e2c135895b2b3c5be663adb1bf39e3125e4017a6050c5
+d4dac24a8149a6166cf87493f766d9706e13a4c3b443722d7ddedf777c5d0bdd
+780e839b10a61dcbb8c06caf2246feccc66c6fbaaaf8270e06a4838391d7ba0a
+a3d35b278235fff9a707e8da8344c078d88e8eb2b5e2f8cd8f2134d458221623
+1dd96524af97b92662292f6e1759e004e2255dbdc4e0a9fe007e550144af357a
+32cd32e348fd2e60d4c10c33d032fc02ff8a897c4b4b5c35992e6caa8bc4c966
+6a520e2e98184efcb59e2d534fa34c428bb51998e68e91dc9382e28798845da1
+ae9d6e418c2e3b05373fe26901654e1e1a7849431681479cf05e0c19392ac9e0
+562794d94316670bdf9afe2d368fdc31fc2a2a98dc8f23bc236690d897e209b1
+c6048724f4ad378857640140a356919180b348fd6ceeb5da8e4b3f9dae1cda65
+fc155e10b53a271f23c65397711cedf404dc45dcfd9d3c87d57c1365cf9e6f9d
+64a11df0f71f72ff52a8a4c899879f38e797867570844ce904c3104e28f1b85c
+e31f5e4dc09852f5b47b4fcf2b1fb394f4a8c9cc8b807eaa9ad4d8ddd816a28d
+7bdea3811e47722cb0a11f3967bfdc501f5f19f5b7f925455da271243465b55f
+56030748235d6c1e8cda657c5fb7c1ef58427b148713c569d2fa172a2d32e50f
+7440f4cb961d34feff587acfc3009b39005f8ef1b91c28718601d140034b4030
+05dcca93b5d4a0778cfc1a3fbf7e489221c88c27e05652d3c3aacae2cbcd9b5a
+439d3687e32bdaa54a317a6f70833c88af86056dcd68e8546832e7662713ce20
+98e5bd9dcfee48545391246e794e408adbeba57fc3a3ba4e18e487abd6f26a3d
+085eed9bf8e30a77c85271294eff2f8e3def17482c5455dd60fb942f85dc73ec
+9f57db31ce83e7e3574e17004ebe6fd903f485e5ea88c8294ac48ed09afa41d3
+80ea17e2cd33190477a0492a51ba20be31a367e6260d0dbab050cedae7659cf5
+a67d94540d7022178ae1d4463f84630d51af81054a6b7ecf1229d9ba0a6773c8
+e3aa1a9d95416fbeea9ed901f1dab166058080d42f90499b415ad8aafd99ac0b
+7220401edb7a32b298bd9b9010679a1f9369a5bbe7cbe04b2c395f1159c2a2fe
+b4a85292714a8f491e29c703932acd583f6405828ca8331612f5f580c049da26
+22a27b7aef2806c427af57147beef345e56a2ad82b0fa3662a31828bab7f6b6a
+abf00d5bdcf2d595ef576d7da2ea634a82458444145803d443560553a7d17313
+b67ce7fa22fe118e9e8187dae14e79860b371c83ae2ae787210a86a6fdcb95d0
+c05f1b2ac98eaf239af2469397fd8afa989eb8ba0c15412b9f90c1555cbef583
+25c0999b1b10ce4345e6e949b375a91ec348eda0b0d418ad25ae482e02cb47d9
+ec19b444406d720a45986bdf85b4181b8064872f65e7a93bde15ff80ebe555dd
+8adfc28b6ab58525a6a72bbe50cde6461edd83ac9359c0042709e63ffda54a50
+a5a6e72058b498b7c494b2a7e68014bf1c354506c4dda52d7173e6530340f834
+7db62785ac8e70a8f560574249630f3f89c159f31ce437b8a86cac7f5b25ccfd
+b2fc41fc8392430c296146477d501ea752cf52ec9bfbf462d12b39291f49ae74
+28485eec80df5a1fa01806b3013bda44477e671e87e82f58fab32ffc10c111cb
+76e7099f297d6a67a7374e26109f751361768ef8118dca742c8f20774549a2d4
+da72d15706888cec1edbfba70bb8149b54655eba7caaa85529df4bea9ce0c633
+38837abff2597c6b75bd058dfe7091d3719efc3964d1a386b7c6b93d491b02ac
+86b08ff115b548abdb68f67de3b6cd280ee1544ddf344782fe30913a21eadc6e
+314f3ea2ab3d9a3783d5f9be76c4caed815af7def664098cf1a167444f31cf02
+b9229bfdd8109322df0cce8fe0405d523bd8020753f3d80f49365d5006829fed
+63cb9571b219b3869dddfdc2212f0fd468aa3a8c78d06f58fc6be0753bf19eb2
+b014e28d06053e931257185ff8a46b2c443b163f9d9997cd2225a33ec6bef513
+41aeafb9f384bdb7f3c78de5d4adb511c16259b1916b29440fd8cc01dde8ccf4
+e8bf0a4dc53a1e26c020f813cab07eda515e7d395348ecbf8c64186fa5a81390
+7653da3f3143382a374b96398d14bf60fcc5f7603512bed7e8b33e7b20529244
+187795b01754b61d5aaab742be9be4532ddcbe6b88671076aa9551ffd58e4930
+1f3fa48529d85586f1e197dd896f91f0c64ce80bd48519f8c1bf9c4816622cad
+d9cbbb97e7628a64f96b6816c5b0312bb98a23715c3de2a797015203e2787aa5
+ef40b3e17cac398805fe76a33819d4825f80654270445ba955779204f5e8fb5f
+418edf66b627b992cd3db5f04b18b5dd3f742689b3182d41760bfe95be97e313
+ed97e32ecdc16d3d574a2ba1092408b5ad6c165a39eb148b2513bcdd01141a77
+0720028f31693360e9909897d85bcb5364188d391e34dc98d86d4909fb41a13a
+cd4e43c7f943889aaf1d430714d1b0f3302432135a39b11be63f77d04780a191
+cb686729a89c7badec30d3a9b416c32350eb416fbd37104d038b0252a8b91f77
+45b543618155a76f06274dfcc284bfea8726e55ee8b47df6b4760e22c8f2020c
+e0da1fbba9564cd974075c1670bbbfa32b5b1598d198a1a9b82d87a7814f5d6a
+e5a97d890ae6e9307f3147d78d4fa40f5388b9759429acdb0e20d9ddc923f4cf
+f2865f95a8fc0595724b0043e90091a2315ea8c071ab631ccd04c3ea77541646
+b2fae2bd69c5bb80849b85fcc583ed6bc743c7ab0e83634e9625262ca557911a
+3715e19e727337fd16171908a75e44fd7f6ba76157167a214f11c228bb1f132a
+b6cb965beb1aeb597276e4e1bf52614076a37eb859f9d61669257c195560586b
+b567183114c9895464a71774bae8eb31e9de3c11e0011f85024f749a571a3e2f
+0fa7d8ce0d53deb20fd2f10895bb8aed95ac89f8956a8c93e809536e9087cca8
+09106a42a59417359e0ec681c5905a6024bd3208fed44320b723392e3f900e90
+767a6af4c4e67b407b215422a6f409d59c309d1999f973fd9b3746d983b0bb9e
+1675aa41b9f6713630710faa59328b3659f559a5e547451191d88e336863256e
+d43a577b77f81bad982c3d06cbe5a12321cf45da2d300346d8534c4ed6f449e5
+14ad627693dd361913862aa14548113a553b5558f8da4f5fe5cce86ef8b6efec
+00b188a5fa1ac6cf819110e6feb793411cfac4f900a379178c2d7990f8adfe06
+4d741594d2134678e7f9789fd72e87985334ce7e531f0855525b9dcac36196cd
+2d75d8bbe2b02ad9b20184d54e9ac6bbcfdb0d13367e2b4b4310b9f89172d59c
+385866af42d06f9477dbb56e8d3bc8ee8c129849080ced3d7b83d9dc1a32da0d
+b79f6e1760b7b836e2d9a0b59dc7312a3cd10932fc771d14f0f2278479e7168f
+2f4e058c0177456811b2de2b5358ef33a162bdbd4d908e3332930d0e1bfdcf35
+ebaad4210a5f80a39279c5faad2803a748d96651778d0ce97289bb70ba010d93
+60ca05073141c30ee35fb9b8d9eb3ba37cb97fe42fdeef382fd604a1cccbee9a
+65716ccdb777bee502ce3b654612362291ab13fcb507ab797d697f4f32d85763
+39b9cf437eb119eba024e775fe01501a8e7982d266531a5a9316abcbaf5b9672
+8ffdd900cd9814cf82b9ee6e789309cbf1dfc11f715b1a201dda33cf7527da51
+cff0e36d2f4856808b522d5344596058508302f36554419f9654f941ca0804e6
+b38a6d596ca3fd660901d1c3553aa92bcc95703219cdb0cc8bb540c2e60ce0ad
+0eaeab36ac18b3ae477967bf586ddc3a45b5949ca5fad78910e834d8c83faed8
+3cd8b0546efd2575a42e8d4e44c80f375c9d960686e6885a6cd283ad3c1f1a9e
+8e0cd7ed0590ffcad9da423285a26c04960dfbde0a5315d81e5170ae081644b0
+2aee581ab984fc189b5adbfb155a52d9f7ed759091062e9d2b2c2b03c9272ebc
+a0101422d252aeba66664b23a123ab5fb05da5c62e83934c10f7a9489fe6a26e
+72ae45fa17dfe3c1badf296c09a375d2451b7b7ed5dfd262a7c74fa4a9a4f5d1
+f431bfd1e79decc99db3f7eddfa78dfc46a47c0881f500f8fdb96aeb4fc4dcaa
+ae0f9687e6edb2519ea85fef772477c3e33ddb52900657f018ff227701992647
+c9db8e4802cb0d6976b1cb0e3dccbc573bfb38ecc9db8a95bed9c4d90c97d3b7
+0f87ecba2fc8b03a7088f1eb02875c27cbfa32efbbf38ddfa77ab23c8fb36d1b
+ce1112bfc0de7f911f1b096461faf86cc41be0bf61ef31581847b1b478fe28c2
+cf6a34770e43a95e08ba67e429545a65bb9e6e18a6c4dd2a34ca9cfbdba9cfe6
+63826142391f15c543076928f9867bde8b2b1acefe68c777fbcb70707f4f91e4
+7eff73b0c3c26986d1ca582bd05873f4e40179723271d1799dc4fc5e3dd9cf77
+64e41b8aa8dfb907abf53e3a0007a714d6c941114f5beaac82c46927441e3402
+36c2fb70de002ae35627ee5119577ad7fcb9fe5deefc239aa09e6bef15aee873
+db24b3cd614565415a3077b20c1b095a5726ae475c889cd9341c93d4a1984709
+5ffa8e8ef4f31ea7dcf6375177f319a05e551a8905bb47c9f23cc5c0e5fcd8e0
+29b3072632a060e6891f2b77bc1da20cf7da33173db210baaaf8270e0315b6ff
+3fd6c2207b1a429577d5d9d66a0f8268d4aaeb29681a21f7319ab813e2a1eadc
+39b8eb7aec1c33cc62809a10ef560d2453ed7551f097960efb4e4708858d5729
+6307189fdfd3ab62c75a7c501fada7428e157752fcabfe629902715193acb11f
+ca4aff2b0ed13442450e4f2a4873d5cc3689f7d4f7e372326e2f7093bd7df4d0
+ca957794a61a2e813e24155ee3a67c4312a06c72f84acba679e67e6c71f43027
+cdf8a21da3bb5f68e576405c1283016e541a3e9eadd67a20ff9ad7a658a8b831
+2f30c18c451f553c1149960156b201304263eff2f2549fef2e4906909c1b4904
+ced62fd9c0c973b82dd66044bfcd36e1991e0b6b84b6102258e205a458952aa9
+53832d094e6915c3a1669d4f532132424fc707dce60bf9ee9e06d4035394192d
+922641adf5777d563ae7960c8cd6175dafb255747737b02c40687953c766601e
+caf56e747afdc67f8163de81bec4dbd48b3712c0d24e92747d98d5d1da952de3
+eb9ccb3a132121cb1c9b2de42fe1417bea313043b5aec119bb0d1e3058a82087
+bea4d00203fefed8ac113723b1081e92ca7e91363b86eec7bb5dc2e123e41c66
+577dce271c93c667cd8665372d5d3b906070bd229489a91867551f3127591bca
+b1ce86d7d9bbd5f265bebdca4c58af03023e9ba2c291d78b629ef48bdd731c45
+591edf98d4eae6290a00c331780943d1c6671ac237a2844cbb84082c06d39cd6
+b04a2e5819d27a25da749ee7c94488fff5f59eb0a3789522ea85eb999c66f359
+d1ecc77cfe14774fd76b97270e30e95bec696aef56f99123db82304bc662d8d4
+6b342e53171a512e7d435f3009de3613d91a6f32f9ec2e11bc98b09c4dc4d516
+8a2ed64ac351109e5e38a68caac84ab583421eafafee02980bf8d8fc700f1a00
+129564d5efcd4f7896130e76fbcc6c6ad66411285958e3d17c2d408960cecab4
+02c5068c43df99d4de6b9876ec4fa2128d9ddcb0f10aa89aa8935f22c9445804
+4c1b0ce6cd07c272cfaddab0719ef5cc8c597960b7eea7b4cb5a10c826bed1b8
+219d464d72a0be58ae80de6edf876c04dd2abdca41253efcefc0552989dea491
+9605795e6ecbac4ffbc39307ce1fc794d4bd78b64ae38b2750546b8613378f70
+7c5c29640874f1bc3549f9a381ec1d13ab38b1c20d59f90dbd2397a573ffc9df
+525a4d4e995618a58148687c5c949e14c0879316236284a571a5a386fc94cb2c
+c5f7327f9269996e2483e9c4f22a813db3ba38cd036a454d335497f53d654d6f
+e28e4583febc2fe34cac50be37bb6e42b8f92f694cfd4f805c6423089bba4461
+8e36e92d90a06f749d8a1dfd93bd0645dc66cd18ee797ffc06d4938ed9fe7959
+ee2ee5daac4e5f2e15a8b4c311eff43f5ea1a13fb288ac57267b71bd0ae02964
+f1901a7b5005a834e366399eae62532648625bbc13c64c006c372491878ef7fc
+645667f249fc7ba564e152012e485320fb3c5dffbfcd936a93916045e0ddf257
+992e927120370994664643e2d57678fb19f0754ec4c483a8b6ceae60d39703d9
+f309e68388cf20bc752caee575c86ba39575a07528b65400cbe9fdae6a5f307a
+b199a54aaf70c5889bc64a30d5cce65c2276ed1d9fb30bcdc94a65941a2b0e76
+3940f7d243c8de8120b5b2f2995d2ec3c7be6421aa1f7a5f8b6050c17771c5f9
+d61330fb818df90f3062f9f21c23fd0a59d6ad28e023e0d3d7eb4dfbcf0c6bc9
+9fdfb74f740579c8460fa6755dfc800c5327da99e494d9e18efc6752f1e6eb31
+5e399606ddfe98339d085bf92634d2f557d2a07db440f45fc2e60732c51fc4c3
+047f9f6dfaccaea71a9b14ae1e22223987cfc33856fa6d78be0c8b4cfbd8d608
+96c0699ff248a80af31d111d3d7437427688430782e1e99858a2379852ca04de
+bf7d0922b11865b5771d902dae865c3ff7aba28da86ce91a6c031a647b6d5676
+672480a7ea057dd805ade4318482e9f5c7e2592df1672342b98c8b67cf25dda2
+f69d55e28f1c35b070acca2e4c5100c18b102164f534b151375bf8e9ec27cd8e
+e43a7a23cca2c5462ea92b202d9eaae4da36f8df69c38a4689b04ba3e6e6a2a7
+8b06763decd52595b21d5348e3f6fbfa775f8b88330a4f35bc3213a5ba19d277
+4fa8c256d06787e6aced43124b422d3ed2ca884c64da93933135926880b21cac
+35e222c4b6076bb2b391357e0c643f04d209788fc140c7303c90a3c3faf5fccc
+046d3b268154e017f1e4082819de8a5bef0c1725f008b936a243b2eb850d0900
+4560651003c30ae5fd462d8e68e4ae51d17b636bf9d45c7fe07255e470d2748e
+f9720203181e528304f71c1fa2fdde7872ccfe55bb77c8a04b529cc5ff114c64
+544c4896f091965dafaa0eef5e8671d258f4303512567dfe2eacc764f0ab9a78
+206ddb0942d1dc868d52241185e7c830c57f31ca9c08453c6a8f35bfd7220a52
+3e3148beb6fca0c2d56048b7755f068220d59d4fc713056bde03b1146e8e4b37
+cb5cb8a90858920236e561fa21f179c12f7be7cb63eba15759bf0b6299ef3835
+b8d41edd37c1f1098fa2bf3cbbfe0f7a98620e7b072f5ce1c90bdb8d5f6fa9e7
+8629f3c6b4bfb047c9ac1869daf234e4a95bc0bb73f036de76595dcfa2d5e856
+22b48bec72edc8a798ae673dd434b01e89019a908f59089c9789f58b8350a43d
+b00ca1fe192390daa4e85e7235492ce567dc403ae5fe8f0761274973e07ec119
+1b0ae1cb7f6f31076771d896139920861da5c58d3403a416f243f1b58cf54e94
+f3dbc9351633887e8d7ea6f88fc4a0dc6d2a471a78f98ebdc2a98613499a80fe
+b166a4b803b7b4ed05ccabefb2405745f1ff28921a05a0245bfae09355910031
+180305de2f64f071a7abb75a72eff13539eecbc4cf54ff0bc87f6d72d8a742cf
+5073aaf7942a137ab2f273e22391ad1d0dec9dafd58ec68553be5fc4e6c4936f
+a3e67a86f4ec045cf294a1cb7f9a60ebe5178026fda700042cf5bfadac3d7ad3
+17f9bfb62ebd5946992569e9aedbdce9f3abfaecd6d8fee82559f0888d48f794
+697c54b805026ceb1d708751d88af0e5cf88332068833ceeb24223f5b5025384
+066f67ce49e586ebc4249bfb15074cb522c3626bf2571af43f0164b044b5aa66
+9d8217230edeae2453fe02f018bf8a8043cfd63d744388c12cc8430ca4157c81
+e7018b963021ef43aeb42f1f5246eedde76ad7507e65225430f2ed40877214ad
+78a2e199f951e52790e30ca09c0ea8bb318756137639532e638661228e314364
+1b1d60aefb5222a3b724674ab6fbbc3445b878f99b629de47e52e36693dc4060
+9fcb048910f3d70211659cdbce05f0733af96afad264d1841b2fe33f3df5262a
+92e98f7a5873f70b931a7c78863dbaacfde460906281d5ba5accd188edb2924a
+bfc1c6313cf0cd29ac91d2d374734280adb1ec4b2dac9b53da1134b7ef26d10e
+e05685ea4b31e5396c4281ba371b59b12516816675ef303fe4f01f1f84de922d
+69edc0d18568c06d4dc79be0b9754b8f88632fc3a74fa418833aa2943c05c912
+b7b60343a7dc7a3f6f1aea9d83011afcc00619ca95cd8f97ea85176570bcb441
+e9b74ce8b100efa22290b3dc8113db1b383ec98f8367eca2844bf1742d752d29
+7cca604ed822c3f7b560300b39afe9fc8d9340735a718b09064157fd10d43dbf
+96302c60195fa1d5bde0c68c4f235184898d0381849a6011239ed7d6c47814e0
+a163b82e56389248e7594fb9f4a2522ccea4eca0d36e1295b3ef67aead84cc8b
+c297009eb5d21eaad7ab4176a443acadee13915c5ca44ff41ccc2bb9abb47fd9
+6461ec3d38876df77e5fa9993a300c39813f788e17320de56592806658b42a04
+dbcdaf7bd0684f445884e6f1a574467e52019ee8fc129ff3fe74fb03a5d67047
+80155de767defb2964317f6d058d5b8cc35324368469291ebb15cd320d566b96
+c5079d12493a8f84dda5005f8f3fd7038c40d1e704b4faade3ccbbdc7e90903d
+fd3da3bfeb37ba41db2557640f2bbd6f3f49d9e37925007cb97f98c6e365d06d
+282a433e1aa95dbef41be2facde3f5a08254a366a74b7a2f5c14898881d4be99
+aec4b0ee10022dcc55501637ef6f6570d437dc8120e63045002d7419057e5c15
+6a5539ebefa7d632d343a41df8804a6f855eaa3186b3f97fb7f79fe1377f5472
+04e186f1a97011fb950ecfbdeec1ff992b1ebc6837afbc0d9362c1712b114bb4
+4747c291759e7fee3f81b000f9ce65feaed5c16287f5e812f152ec27815bc6aa
+35aaa245c882c9176baabcbb81548b5f271c42169287da48a7c6140af35f09a6
+b82abdc84b8220577cbf0ecf0d8edfd303f468ab9d6a2b89d806b3e19297eb13
+eedade8e405ae9e0e9412525f95e6a7716948fa2ac037dce19d67a156c5b813c
+0af189b9b778bbfdf730c2050091018865e23d6cff0ea4fc0d26a0cc510ddf5f
+456f6aa4f1c33fe7b40f5f8576b477970d6487275389ce7b2444f09e3fa5c426
+9090dc59354fba985544a261230fb1758bac67e142c4a1e71664d7f66eafd525
+22b83d1f2cbb5f97f04924e8cc4645b27331eae812266982efccbccc4ee93bed
+e1e0ae7e88768e690cfaa0abba98973caff66daa632834527b26260e0a4b1655
+3994bdc9c729f2d45f72ba1c510a000b731ac3d9191e1faa5c9cbb7b94056d90
+f65df04c47abd4bc12b9ba0c1f84e4d77081d773a9dd939ba4c4b32785bbb337
+ab4df32d20ce0df7ef0374dcbf88be107e8813b5a769d530cded5649ec7de7de
+0f7f373f006ce997b6f7bef0c52d49b8a62a620a37069ee851e7d23244f6a014
+4d50911d347551a63f9ea59cfe0159797af521c09bdf75e12a4a8e4c38ede4c4
+4e7a9712340d42110b7cbf4061ba2f2a5ddcf67a39eef57345975a9198fb8573
+f34b9a350845815873e4ddb7866c702ba7193fb92d21bb74d8bb4c49f2f3c7fc
+3b703bcee9e7745fa637a9383786fc2729c73c29d2efa5ea274d9573265df506
+c1ddb510c9f3fdcd3a80c0ab90748651537efa2d8e0bf374472b5c7bb50b0101
+7263ffae7f90a979c3e5f3cd8a5cea478627890536251c4c16c0f63c1c822efa
+66a75e01a68758fd97c5928bb2b1df6f2b74d2950015f2eacca793e7888c26ee
+723e78f3cd926b1979bdf422bc83b4b51d1a0ae3ce120540e9b653728d769265
+c03c0a3cbee6240c0de90646e7ab730e5e0cf1124566bc16ec17989c1052f8e1
+84590223348e5b4510204322929d8632c4bd136c89169d45718a88babd7f2cda
+62afba21cc46bb3207676b96695d911fb99bbf37b375ff4fb8be949fcc4b0481
+3776a3451fe65a47d623565160358c977d4bebce7aadea5648814b8769dfbaee
+b8bc2da767da69b10daaff6a50b6a7006ab74f8bd0ec64e5681199b7f3bafeb9
+bd0ebd1a79554e8cf3e5896956d279d4d27202a4667afbc46b84c6b9873e8ef6
+9d5b0777a750a5c8ce86f3d5851cf3203e8b47edaabcc6c6256872f31ff228d5
+7b686b38b35d5dca23c755a5ab9e661630e61d1d376a46466b1f0100f66affcb
+fd1d6befb5b196143998848e48119456d6f5791bf1473a2cacb9973bb80421fa
+781d90e0c1e6912dcff9ff07ebe821aaff09597bdea4e71e72136c4e37946f0c
+146b9d507ee79dc7a715cf4d65db2614cd87c5709112938acf9bb2e01187fc03
+5cea0fd5c2ca980adb6bbf5b9eb427971bed47970a13775be150a7a87bb2b8df
+a92f8c86b98a36ab956ece9f5c562071306642d74f177ea0ebc1eadf96cda6ee
+4c53703763505ff273c296a11adf59c4919f63c78f9b7c2fa998f5befc631ab5
+4dfec01d96fbd7d076357fd85f26eef6c10aaf99a7639c5111b3a13bd144bdfa
+daf1fa9633b69feb2590a878ce4621251a2b860b3e1ad8d7a6ac1a896380f206
+158dbd525bde081e9e7c58f7aba0ba68a22065d3fb7638ab4b2027cfdf4dd926
+0f624b197d19691e1219f705d63781d6eac4ed8bddc3cbe2e7c735f73aabbfa8
+01081532536832bb4455483b827fa9f37d547a4d2cfc98707e5a4efe77037671
+faafb5489b64ea22fa51f2df96a89e8f986b3fa39e113be69438f1a4bb1b5d1f
+33ed7ca77228938a98bf47fa54eeb2da8d81ecedec102f71c278d824c2bf5bb5
+37cde6342b1ac156946de7f6c4c12e1d639d83cbe78d8775cce11584a4edbcf4
+59c05abd0b590172401b83fe9cd49b347c01671277ea43400b1ff4212b3d02fa
+cc6d384f815d7fdb652ab34d7bacca2e9b2b120de79e3532f81d778b6081d631
+32c88f10184f07abe8830a3f5efe712e7e3cac875f3b157ca3a0dd8a0417d512
+9554ac58171e09ae6ad91f69d3235be00c67d41e00b6988b7df3a07e5d65538b
+6f600988178e4c98db360c5ded8f7f8b7866e6d3168a085ca9a823a347519ab3
+5f4fb80774aa4bcee175c02cbe39ea9a0ca56044f50ffb2fd637f925339d30ba
+8f4f7fd7ea5a606dfd7b82ba69b4724c960a5cb49ad40f1900a0969cd912957f
+345c08603ed7e8292789984bcfafc504dcfc19eadb79ee198dcb6539164db7bd
+4d210c9bde5bfe4207c363af21967146511d70f7a0fd682afb045cf22a37bfaa
+edf500dc18251dd086a8d2a91ceb979d2a1e9cb45a6b59afedf66174b764dfc1
+1048356c96b585d142f943ec97c62de95f9b8a8253ee0d6b2b0153c445563826
+787921b9a60417cd4075922332dfd82be6d45b581b581c24c4548ac5782f726b
+0bf70d2d08493e9a96668054bccea2db3f66cfa6a4d37b36418f9fc8d8058c9f
+e713810483a5e75b3f61cfc012dae494dfc2b717cc59e417e25e8c0e21f62186
+acab4158cdf47343ad8b73dc8e43dc792dd29897d8aa1fbb977e9a3dd20fd247
+d0ceb53d2fcc627179dabb49f2920cf8a1fa4d57f39da7e5ca0a94d377cbb20e
+2c98445881201bebff5e33ce17d8089f552c3dea96bc70b99cdad2289a3686dc
+b5aea099076ae9450c3aa43f18a3d98d711e43835c31f566866ca556b2945738
+f359ef7e7ade8e1f56bfbb0317fc2d08846163cf343c919adbe19686ab94f7b0
+7a06f3d97d5545df781e11a06b06b175fbdd1316580a66af1d94f4247f158c59
+d8e1fee6ecb6ad565e772fdcfead3898a5be123f2d0303ddda02b8e86c7baeea
+70eca3cbd43509a85b853eb3286deae9e29921782ed417b13cf1e6775921b2dc
+ff5b2424f98bf14408d446d0ab530d88f49d231315c6739ccd0cc8d01cfdc259
+f47bedfe7a53dd893cd5be51674e6ba162e1a8aeb2b21ad54819bd3d648318e5
+4d651933c280e81a327934ef0eebb83b795b3b384a129c16536bdb05bb2ea560
+72241eeb5f35e10fa050fc0f05fe4deb3e2e8eb52a97450c56594746d0278802
+9559abdc108ddd3431c2cea2da1886ebc7a973ef73038004fa13752c80a35ee2
+8e5772676df858dc9ff0d05c735576262b80e3e49751d78f2febd65ae4c1d0d7
+66cb53656583299d2c058bc94f272d398f72728e72368362a69f69af06a708f7
+ceac24a0846496457635fdfae466621eb4e0755230abb71bb5abe293abf7cc5f
+8ea2fc15c66a5b2fc6a6d510a6730d9fb678a485616374f5c1c01b2ce834add5
+6f8dba31a95983c97af9e9ec5b8406fc67dc045c551ddf6131834edd18f79d55
+983aec1d18d5fb2209e87f1157df947772de42d04da8085d3691dc7010505c0f
+a9724190d9a82611cf435b360971bdcd2e569629d98d439da052bda080ce1e33
+bfa5ebd35ef2e7dd77bd517f1cae2250b13a031c69bfe0d147919c53ad773024
+142ecb1a3ba1ab50a941fb54e63ef49edf844306f7e5d12c9090d2819dc6e450
+42936015482c7bd75693e910eaae10f04385f624083d00276d0499cf9891cecc
+d31b06128a7afa49154eed960f37e7fc260e1372f1d4559062471db4f0db6faf
+efd3e6e06b578e2ba8ffa1e9c3f5a787124a22e0111ae960bd85fb1d62b6ca5c
+b2b3a87e3081470706237fcf936e37dc5b408d0c41299f921d810e01b5052751
+cfcc27024185194c147fe01bc1c4409c520b3e3a5c0f5514aea4cc899ca9e9ff
+7834dfe5bb0b4b0b019c1e8163f294fb6ee50b05fec276b53f04160fce3defca
+2c33ff34f6b1515705ecaba0aebd40a99fba99942bd8d451e1c1e489655daf7d
+39437b97be715b11ff28fb291b972b143da98f5c66b2d02a47850765017bf4e9
+82e2bb732dc64b51fd4fdd3d8144d1231548dcc29bb9927280492da505dfe82a
+dd17fb67b02ef0804bc82339d60dcc1c0f8789074747a805a7250f494dd1e9b9
+173110c4b3f2154e865371295ebad4e321f15826b3d3e61a400bdcd15ead2adc
+2a5f00bc25e36413e46e195eab01069a35f34fe5c00f46b90d2e444c8d5e8a53
+bfaf1fa61745cec24611b2854a7ee8532b54b40ad523f955a4fa2a9c546dea87
+e6d9e2de21fc4b3b2da747fb3075a641b29f6d6cfc3ecd725f26972e31594686
+111bfe80caba23be92b04171b738c1709bad40060fb0b603d3a2ed6e7d49daa2
+627ea6916d3fc19815fbd0fcbe5d1ec8a8c7a6a7488b465973d3c1991664bf71
+003353d2b025d571348227ec1700407e16fc5bda2cae07dbe55bcd7dd0207219
+f4e61479f22c8b7aaa0ec7281e933379b5d25a6ad9ce46a1c67a488cbb315f2c
+08fece286194bb86c66bfcda0fbc668b8b84c2af3e9cc85d065e17f55863529c
+d1668f07dcd6e51caca4eca02811c1ffb9a4eaea01a41e8bbb12b1d23cdd10a4
+97d1a6b9ad43927837f9b12b9f703d414070ee06729c1e0f78d5f63629739f5d
+95cbfaa9a695db4862149ee51c566b8f94f79ef9a3de87c0ebfd3bcdf4940bfb
+314e1bcd17595f3d041b65e4e7765b60a192c4ed917b8361ba0b5fb4fce8f49c
+b09412a1ae8f99d878a8fbdd375de3631a63119042e11e6d742f909fcd775784
+1f5a40a168b4da3dddc65d947ad0950a1a275fc72a923422db5fda3d54e4ed03
+a1ae04ab0f59134abf88aa65d6944affa2bd46ed8c5596062e4d32536d2c8ffd
+e5cee1bf927d1affbf9dd4e214ef0f323a9f48af8ce0ef87e858edac7a6cbc3f
+9ee530f7609cf023032a19298b334306ab3f5ed123b7652aaf77ef421dfa4ea2
+e1dbc68390082b50940aef52f583767e8a5d9eb33142f9883ec9dd26a4c0a446
+31e1b1e55031a9defc48060e783c7a56426e4f690aa6cd006c5a9fa76310d351
+9f8ba5c79c301bb370d30c7b3adcab60adb70e4b4cb9b9dbeac8bb08f07aba62
+3fa6c7805a38a4cf9c5b7f2ddd6dd510b174f7c63b2d5f4e391005bacb81b7e8
+5249518ce22a99e8811376e7a464e22fbdc4574ab3684b416dab3526b3bd0c75
+0acea306c0d448fc4942d2c61d44566f8a058ab93651eb319affdd9ecf2655c1
+d00500943b59360b6c75b780beaa2f1b98165ce2ea6a64aa9435ad5b4d57a089
+0fb6274b5f137ff957e2dc801dfcc8f778fec72a96b31e7457f421399dbd9dfa
+c99e611405a24bdf0bdce785d6ade5a5c09ffb66f787bcc2ca4b7e0f5dad5453
+b3d87e5ba383065143952a9364df8cf4063b2f7b3ab30c263e5b92ec64c43c30
+502894c1b01fee36aac472a6e2adbb9b74129074e25e4cfa3c70e8ac2b3d645c
+8f54f45ba3ed89629cb4f2f35c418ef74a194c496c4b2518429067932d57bc0f
+7569bf4fcac26e621327db71e19eeb5335d8a6f25c99d6aea57bc6ca73238c6f
+ea54a43c09c65c83d5319231adc05299a668372a9f77833064c460b312fd39e7
+49426fa209cb1f5d3d90c043603c8f997470de5cded5bef35daf0145f5dca5da
+50de2bb8b678e6f36c53643aa97f3fb0bfb3191ef20abf0022d160732455237d
+45d23239e4700ca5d7b71231d537bd032c3f2e7fee61b5e32caafd5de34b2a31
+9a4745e6e94da94286497233f66637586af51856552b0430710606bb3aefe457
+acaae21b8cdcd140b2bc4ff16705fcc80d04e0bd9b6a3207d933388b624893fc
+349fce3e420690841637e1ce83247d5de15a109350c60944853a42fc3adabeeb
+69e78bb11a5143fd2c465be7f72c9478a96883d1369414bcbc5b20bb60457eb5
+22e748594f23e082c29689369e48e01187efc53b3637218a36813cc4da7faa36
+9e29596f5de513074eb3a364b82e1af8a0cdcc513ec66d60f1173dd50937ee3f
+dc888950c9a6b86ceebd3bf64b6319eee63db2199b824dc84e53553442b80e6a
+6f29d9ed68d767c3d1ae78037e2c7835800e08a67c5be8f57571a71426c25e30
+a80439f9976ba351cc64a15249905b04742ab07e98b867d4985444e7a9096346
+8f70bfe63fe94f0a4f23257703e8793d059ffdc798ef3cf642a870aa311abca2
+c2a19fcbe68054c2bc94e2d030e8bede94db3c839e3d85302c297369903b9c9a
+fc45596809d3c3f2be2c287d8b49273640d1dde3c7a4000616cb0821a01ee775
+e7e1b96c796acb7764ce16478e2c98547840df255eb133fe407b5081d808f368
+c575cc039dfd5fcc9e332e629e8565cf227079d25627dcd5e4d6a0710b486b00
+7189b9cc441a094d4be628d1990b63cbc5cb7fa127f49bd2b5ac659115bbb018
+dfb667d4154218d907abe558d4fa3ea3c753aef0e05b94772e6ddba0b88961ce
+49d8d6f1d85930efde0fbd9dfa0682c5a8adb81d8d0be2fcd209238765af1977
+dcb18c4f80bbafa42b4cccb09f9da4db574398d30754f0c2870f0ff1d628dd4c
+b57e3791ffd27ee4a9793f3ee5e105a917cbf9b6dc9fb7a32c752519b8334b71
+8fbdd41eb77d5e6c5438c6cb200559b914cb5b562cb914d777f889dc0af180a0
+3d2c2036358f8a105ec2a6f6313155cb96c5d792e2dd3c2fec6c56084f295047
+c1ef4ce1317930046ee382913d7df30626801fc5f6d1501fa31e643345128e7c
+1f9dbd43ba580ef2bffd9af99a7a325a4e39f02f4ff5d372fd1ad895c3741914
+b1b944da9fefbe268e9a4763767718dae9d44728591c4e60845231f31ee5e929
+30f7c26c3235548323c5d14c3d7bc73033940071739c215441a9e72f2ff242f5
+5c65173ef32f00001340a53936c3f926a54e0818aa8cb28dd6fe9fd1c62ea09e
+141fd00782dc1203b43dadebeb2104286082a14af250bf64ec9bc75371a9542a
+2d27f971d3ff426371bfaae72a51d2aba44e859625120ccdfb350ba1c7f31413
+4669405f69b8515e23b0e305f3cfb9b0f29b410d26062bc8a1930ca753184e1e
+dc97b40c9769450780c4a742ece35d726475e7d5ca91700e23cd325c7853b6c2
+b9b439ea12ea4576d7267e7e19baa00665f42d0cd312715e3b92493bb6a3a6db
+54afd1f4c5e7f7bb20be232591b37778de18eecb0d6cfd30d247240b777501c8
+82b269a8959952836bf7d26713019f7677937a97354fd1106f6ee6d09f6c75d0
+296b22831ecac76882f68bb9434dfeef9d18f0d5b8ff6615dcafb348ec7a9866
+6fd749afbcf651be1ed1ca671a6013ce0c183f1ea86566dc9159cd9383b9e5ea
+9900ae6c384ce3409aa4db1603fdc010083db0f0ee139b27c6090b8135799e8b
+420f8f7b10e7334d53df7a0b1581485bc449776ca4b2678a490f9d0ec5207514
+de7bf64d8cf9711cbaef78b6b599d518d77b4544434b8cd95d04149e1b546204
+32b266a48da343d0704d10661485e4c11d4fd05fb727ab2db4975482edbc7c42
+b9b3af2806828da2173a304f83b9cff0ac4c5d4f553fe7276caec477bef48321
+ba153884a05e23002239cef2f5c95d8f6e99dc9554ea767409ce0108e73b76a4
+273aa49f123dfd32d27fb45f80622c7f61bc3242b8e00e6f50ea21d0b2c35f0f
+10308818835feeb760d0ae64c755aae98e40eacb8f0ce744c8aa6d6b5c1d256a
+0a476118f5f2d1de2bf12a0dfa68ca2a2e99f5cc0fb1aeb3e56cd8ee3221dd3d
+5ad1fd57901727acb63a9aac3aef6c753f57e34aec57d0876b442066c2e324cf
+b6637243db0a9cb9d2fe8e82e0dd2d513ad2b33f99bdf99b5c551cc0114da38e
+392ac1ba0d3f536963f6e078a6a123f973395ae4846dbd335e30af20c3c23134
+91e2bc5987f44b6d377af7c5242e4f9ffb43517017dc7340f54460977dd8f8b5
+d1461c6707040c47de84d198d4164ddd7e7715a70abd458507fb336b824ba24c
+ac0e6901295372b2863c119d0ee2fab224f7c0b56af33c8b82436ba9303cc0ee
+3a809129e3c15b8c7a45538ec88fd1597406f696adc7ecdce383d3715325bcec
+7563f1f4baaad70af9d24dbe272710dbff77d95c3462aec9e75a1e24e9f0f716
+2f82f1410d4b77344983fcae866279a98112d6718ff23da33bf16255c1b10736
+e8f98e8ef876d73ab139009bda89836d18dd03dfb13e332c50227032ff403ec7
+26dc8fa78d77aaef79bee7e0656275fbb6cc6aba6bec4920167380a1b07f8ede
+5fa970f56f530ea2cb06be96def3b5327ff0f35d2d2152d23d712013bfb47b1f
+e34f9339712f75c84d90df05f9ba2e8ab689f7804c588e5e075942b6dd11d875
+c56c016d18f48d569ff5ddcf4e323fd9fe03d5c702da6b98776601e925c73ff1
+7943756f5a4867c8d9c3f0a23280e873a891a6371c258e1cca3c4dd8be44e16c
+267512e5fcf49a6db090e47da0f7a2f56804992df1c5387639b67aea74912727
+2d54a49823165ad330dd59020f1351f22d2172d018383555b8bd88bd50d5f715
+0839576ac6b14c3d651b54411167189c9b93f44e1783880a4c1b31f671988e19
+be05d3e519b72857420d6053ee7e459e98b31ee77dbe9242fb65d39e7065b67d
+4c4b6619bb0a8bf1f860b98111710a61e2038d8ecf06c4f825322a66d327a631
+0bc1e8941fc36ff52d7286dfa8d2c38b76864f062457c198ee7335602cd975ec
+1958a3930918b4959aeee256b98e0bbba1c370c9ea62913e9ef33ec799bcccea
+de68997283d202476f1f065861c7d611478ffca395677e4152bc82e9686bc4fa
+a82c0cc2a7e8b025eabf0fdc11e0564eab69bcdd8c4a05e5c249164c117ba859
+3b0d1c7293455320b0dd104b95afbfde7a03c0ec5b25f9d9ac6accc4de9ce736
+eab4c6726b23a116ff885b29258a57981be31f03ea5c5bf6db8c9ba21b831f37
+41c32223133c36127a0b3ea1d378a31002722f439564eaa70bf9c6465c3a7d03
+da8deaf66b1534bf11654562b6f4ee776d5fd7f3d288b51bb1e78808d261120b
+b367cab8ac4ad2e910abe6bd80f9d421127cacdd282116a4bd376ff6999746f1
+4202272291588b6acc250700f32398d7ca3229bdad1e2244fa8d5a93af30fd0b
+98f114afb0e4f4f917aa0935f735ec4d5d3293ba3c9d70af980d3fc9b9ba6db0
+ec2d4038a4c9872775c3ff227583bf4a0bb3baa3a14fa3757b01c461b2f6b1c9
+4e549e58ea596670aa747ee95f8b881391593f409cf52daeed278831aaede2f4
+b7dc53a8ea279127c7ac74bd500f97c86a513e546e05b343a3d590b7081df88a
+3acc4d21a3c8bb060bd4ac8cf01971a8ba33d1e7828a5e64453028be2731bb48
+dec51bd85a6114c8dbb2f6ee87ed07af749318c90fb75a672b2b9c656c0b760c
+ee4c6c462f9d6fae1d26469b37a043720fc710031abe62cf4deb987749340f27
+43a142310687a8b5822724b7b0657e7b291e803d14d2eee8b795b432a983f54e
+53b17161d32c7a2d937fc8151c37866d3e25469c346b59c13930312fbbed651b
+3019b9f09ef2c2a217780eebe098bb92f43e86c1062e161110d23b17b9b92682
+e32feb15891454b1c6201c375d58c4f66bb0a322fa8cdcdb2ad5556a9b6f0eea
+2b3066c1c89a44adf94a7ee1cf4e15d51ae4c17052ac66df51d27e2b1cc36871
+14867d0fc33ea44338e9823c1016ee6263b1bf8365b900d2acdf2dc41b53429c
+b64e9e89bf148370f62822b51bc4faf675fac2c9cf47a29f34f37628a471c4e3
+6daa47bc0b23ea7c1933d849ed2cec6eecc3ca56cc93a14a4258ce5148c0dc0c
+f4f236316363140a32b91a4a7d78f7bd49e9e138b037621e52dd5e8e30062fb4
+1c537aac83e2e85b2e57cb43102568966d75c37fedd7799108a24de96670fd6a
+4e5d9b9b778b6d25d0030070ba7329e482c82696e65df223e0579823f0db7323
+e7ff8a4bbe8ed37afde9a15deb7fc8521a1179e9197e2d3e6640e591c50606e9
+11815ea278b0809d5b7ed1dac77d333638b027e340fb624e9f1d6fdc40ad7cf5
+bc8b03e4cae755be841a9c72c86930024006b17f89f9d4ee22bef17b5baf4cd1
+364f889aecf94c1cce61909dd22f6d35a389136125d44a6b4c27efac337d8e46
+6d657a804eefea97ad0b436468e088a93764365d2481aa2d5e79ab437ecde035
+43f6023c3b75a1eb4c5b1685bf0eb3b9e3944a78c9aa0d410d20f7e366670095
+8f17d09d8b713ba121c46774ce83b09ce675193b845ace5496ed1ed96bd0f1bf
+505353ed69f2aab2eef00169531e57f8ae498ec78d5d01aa45f4d7e2c96c486b
+e14a1b21a1b61f6e73c970630692e385184d32c08036af05fe240976397d06e1
+18892245ebace16be7ad3445945b9edfd4794f190bc4bdd159813aba09f80544
+58a0c5d5b5624fe081c09dcf2b1707890dbc43def71d3222f8f853a5d169fdaa
+95a33d1667b9e9bd7bf5883cdab58f17708bed530ebf7eee4acb2c9bae6b8337
+f1b4cb61b37c32cc0b3e390fdf35df5bb198a2d704ffbee24e27c4c1248f3f85
+606de45396611b4ba6ddbe1e9434e7e48273365ec73dd8df8aa378822e6f1f6f
+8f35454c47ac054c77d62fddaa17b41f60997bb9f1ba5b700e7f840f1cbad1cd
+e2305a92564e0f4c88bc4f3ccc6ee1175af3b2f83cbc57fcf10f0e63e7f635e7
+1e428064be1542f59407f2a18f70adb7d0eeff6baf6ed415d7a2a0237d17a726
+e84344dd77c48b43f47451142ae90d22b0e90e993715c55d0be8c808944f24d7
+d3b167f8f6f6469aba9fba2bde048298e85784ade8d96fe228ae328a0c8532b8
+1d97be36095fb1a3930417db8c50713f86e647113b607c7c93bfb424316e1aa4
+4f8543880efeb8b9be6fc7b978a4acaae9782a2721757f32173cc39142103963
+9da323208310b292114a62ff42e3cc0c986f709f986e07b9364634fad4a3be7a
+8a63cb7b26036eb8515b8ae6af058874ca36054c184f2626ec2683bf21304e1b
+5fde01772a0895de5ae8caa031125b614a83b949bf40681252218b10f5d4ec6c
+21e8190dafab34551a3b8712b13d195ad6c934cf96b9da70302e84b34e6f8bc0
+ef3d383ccb7adb2e5d67ee464f9b2124cd034dd4ffb20962a6abd3764694e07f
+4b4d244fad6fcee6167f5f44f943a02caa9b326726e949a8424496a79f5acb37
+d8c7c3b10d5fec76b568ee77b02061eec7bfc67c9e75ea1784e15ecaf2bade6b
+48a80532beea72fbe2ce5062da978663984b2cfcf067ddef4de6155f60a6c34b
+b469c3db6fdc40e5f79f3562cf6f8bc43ff8032692ec0f95a03263e2cd7cbfe7
+5b2f4a7c4dc6b8445dbecf16b800f43a6835ba3226b5b112cb09a18bb0161210
+4ab91a24919291406a436f4cafde0ed998da1b99718d003d3afa3729203b5999
+a87df0b91c5adda6e678039344bb36495fb1b5e5965fcfc86f6f61763d48c0d3
+7c55d221b1fded8a9a359371f8c08c778e269334c2af994b75186f3b75b7f61f
+6d6d48def0aa6856962f7b9c468c795abec3b622ed16241f4c506963acf2cb36
+29ab91296d06193741f36343fe0f315877a090df94858d93c527d44670760ba5
+68b61609a3d750e4153c0f17dcd5f870b3a38b7d2272ee60a24668afc2b54084
+63664a6fff7ebdf7d2bdf9b1636b17041bb12f49ee3cda336f84c77746fb5036
+61b18775cf02fbb4c635fd09886798b09085b8cdb795bab93438ad36f4e9c23b
+b30e1fcff1bab17fe49566f755ff904cbc11da5e966a545c6c7d7259ba4c729a
+391ae47953a99bc4d500d68420204e23a07f6c0e137bd1a7034d670e1e9d8804
+1bc039653a023a6edcae8f73c93ddcd8a2e85396f5debed0d0565be384f21c5f
+1171e37ce2443cd8ea5b20da6bab9b62ce5e8f1f485a4b3fd7fb22ba4bdd28df
+f76493059c56b7a5c65209ee98f2e81ab6e25cd0a0f81cb511004e9da7fcd65a
+8e73b549ee33577db68adc05e0b24e820500cd50523470eb760844155d4ffcd1
+759d5f50b803888f3bb3a616f99aad9a18a745fc6c248684c2b0df40e38234fe
+1d21017d2a7a1def67c9dd2884d2239e9e1790910a8486e5cd001d2aed32e05c
+bf6fd016f4e70e6af610330f47048bfc8d0a490e60b9e27cc75098a74147b30f
+267ca6983b5940b8ce47d4fdbfc3a7f89f78ff4c35ec0a50228aed5907e05dd7
+ea33ef10c079981b1ab1c361d78f58f78fcbb3d9d4a569e0c8e1f86067bd61a6
+cdcc34c490078ea150b792d466b7a6a1a4ed7c46f4ca2e46800f5498820464f2
+c88c8e6ea79bac3535fe2c12f9e121a07588426e60067e13e77999939ac6e36d
+9b63c024d67d2dd1a1e7172a6441a051b2e1405877aea4ad0e78cabb4cff67cb
+82535954d4ba25bbffaf67dfa0d2a889592d2ba5718168b3a620ed8fcc10720f
+b25da0cabd8265af47ce144b68c6058350d643d8f0746c43ace3b7445efebca4
+8d48d6f46c9154a95a4f4b8962fe1392418ab22e84ffe824554c74679bfd6662
+09b79c6d147858aa4ea978389503c1b8f0dd5ce10af89739f19a42a932c3cc14
+25882a16c505ddd2547572b93581ae8f0eea2c7725f91b8b2bddfed70ce9b39c
+398a0beb2d83471822dc81039695f6fda204907ea0078d854dc4b86318921169
+c744ac7d846af8980e123b6219f8663b9fdbaa3416e6cba8ae367755309372ee
+84b812650858053cd0f7f2d4e62d8905b0cd349112adac19953517ac36219044
+3cfb831fbe6e045dc567c182337d4148036e6e715a366a7e2be5bf0da704808d
+7bf418275826e99d696b0c296e7b5a15f5e63f9c90c5ac093822290c8d254e7e
+828104afc3ef7c5a8d8fe631f191e266434f34d9e10619a7f4b7df6566c86463
+a86f6dfff94f01f8b4c7688e999f306a65628679ab9123af6dca39e88808dfe3
+e99107b918a8dbb02b1d5ed0f6bb82d115cb36889e5aa14c9cef78bf09d3b429
+c1e3cf2ff96d289a6279d186130ec5cfcdd5a7dea4d23124f012646dca173108
+2ad555c142a587d98fca7b8308cccf3856b0901dbb3ca53082b368cd2850613b
+32da388cffd23ab28d932eeff2a7388295286539aaf03746f35eb28338ad23f9
+f4fb3c91c79ab2fef1e061cdf2aa1f2a991b39fd0afa1063cd54dae5d31d2f44
+516cd6be0ee051bbb0201cc747a04d5b171d4f13686e77b9ebf9ba2236886c4a
+505461037b7a5f2ee8db790e6fdfd047033354f60786c1f2c00aa6847c8fa0f6
+3ab3215c78229d47364fc91ac88f98eec9e5d96ecaf41c0aedb88dc216964a52
+54bf9f88a7bc9f5ed16fd210252dd2f8e7f54ca4b4ef4a7356023556fb69a31e
+72df664882f57b786417d6955b17783e9c206fd33064f6d9a9e23ca274189782
+1c18375d12d1ee22e74713f6911c3ab08b1d7f35f00f18f5e9b669ad15d4e1ad
+0831fb8edaa74fc257fcc5ab9ade88ed85a19cc22d32b2a9e2ff3830e76caa2d
+15f5c1fe3fc21bd1eb96d1d35e8966ac563d1ea40d6d3d2b79a9c602bafadceb
+31cc10aa90012955cef8982620ae3d6d01ce14bc184f5dcdbebf94cfb5b10c42
+d174ae261dbed22fb969fcf1bb64f2bdfe0e43ef54eacce5fb5e537e872eb1bd
+d7070d3bee6768186c4bc824cb828830b8696af783d3410a62fca2b996aaafab
+4ee639122e65f121b941485cfb581c57df7e0c5b7e4c912b75eb6409352ff5c0
+33b1c7e4dca272245235cd8b23a5e9452652d212fad18eaa899935b90bebf320
+3c50b223eb1caaa160a4ce8469a1311c69ba2ae787edc9ee304f32afa013a0e9
+092d80c29dde16413909f3d00f9844e86dc234442748128e96b3ee0d243ac8a8
+00d872aba50e81604e5270aa9972e57b021dbb1eac08a064d250df6acf727c6a
+098c99b2074af3b4bf14913fe867707fe0f9b058e05c38205d1603925f7fe1a2
+54eaa39ce49ff00bfb494cbfeec9b738750b53feaead8bce2bfa1e20cedb5e2f
+d815755c40352198c1daa5d092c700d3745eaf183bc281b86e7762985bb5f730
+baa1ffa889dbb0e2f7aee08d5abc2180466eecef7c588a1c0f78453685526911
+165bcbf5cf3e9e
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F17_0 /QYKIKI+NimbusMonL-Regu 1 1
+[ /.notdef/.notdef/fi/fl/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+ /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+ /zero/one/two/three/four/five/six/seven
+ /eight/nine/colon/semicolon/less/equal/greater/question
+ /at/A/B/C/D/E/F/G
+ /H/I/J/K/L/M/N/O
+ /P/Q/R/S/T/U/V/W
+ /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+ /quoteleft/a/b/c/d/e/f/g
+ /h/i/j/k/l/m/n/o
+ /p/q/r/s/t/u/v/w
+ /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+ /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+ /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+ /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+ /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+ /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+ /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+ /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+ /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+ /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font BITXNG+CMMI10
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /BITXNG+CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/UniqueID 5087385 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 45 /arrowhookright put
+dup 58 /period put
+readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab284bcf8b0411b772de5ce3c05ef98f858322dcea45e0874c5
+45d25fe192539d9cda4baa46d9c431465e6abf4e4271f89eded7f37be4b31fb4
+7934f62d1f46e8671f6290d6fff601d4937bf71c22d60fb800a15796421e3aa7
+72c500501d8b10c0093f6467c553250f7c27b2c3d893772614a846374a85bc4e
+bec0b0a89c4c161c3956ece25274b962c854e535f418279fe26d8f83e38c5c89
+974e9a224b3cbef90a9277af10e0c7cac8dc11c41dc18b814a7682e5f0248674
+11453bc81c443407af56dca20efc9fa776eb9a127b62471340eb64c5abdf2996
+f8b24ef268e4f2eb5d212894c037686094668c31ec7af91d1170dc14429872a0
+a3e68a64db9e871f03b7c73e93f77356c3996948c2deade21d6b4a87854b79da
+d4c3d1e0fc754b97495bcfc684282c4d923dfeace4ec7db525bd8d76668602ba
+27b09611e4452b169c29ea7d6683a2c6246c9ddcf62885d457325b389868bc54
+3ea6dc3984ba80581133330d766998ae550e2fb5e7c707a559f67b7a34fea2f3
+bebe4226da71af8b6e8d128c7ae0b3dc7c9aa4a1faef312fc9b46399b18c437a
+776de1f67caf78e15d4cc76d6fa57dad7abc6d35ede0d7118e8c6f3a201f9ea9
+eabf8a848d182eba8922addbe3c488f51eac02906400a84ea0abfaf48116cdc6
+6fbc00330a76a8818cfaeb7afdeb029a204e0a70b47a05aa50153b56d2bf6736
+c7a2c50b023ed92cfff13eba974f804a346d4130ccfd5233b6d6b92a14c87bbe
+2ba216bae4123911e1856975e5cf4d94e44f400f687d2d13db288e0d821451c8
+83e9928f8cbc41e0f4b99f8b29d3b11bd4ed0cbca83d81082e39a9e79cebf433
+671b1af39c3d0e1f5bbe5f1fff62ff6f5f15f0421c56a4dffac682cb07b6f257
+221fed1902e4b69d9bc2e061f2e96f5a46734f91298494a425ef6432f2b9778c
+4ebbadd3483ef5447df5f008db9d91c559950ebcedb4b1316a5aae8367a80e06
+bf3162beb99c4aaa617c60be688da7627f29c1775983ef635b26306a94f0b258
+003779f8670a1398681953b785a226057f7d1270fe2dd2ea66d65e2061fbd65f
+0ac51b6c347a56e9f3e86e52f3e0bf1d5f8d6540afb32a027a7c96919557692e
+b739cc298ec7999b4286538edf7333cf8f8f6ba02c5e8c62929af07acbb90861
+0bcb85345f4206e3ea130512dcfbc6cefa31ef2bd1da11d3010fec57b5b232ca
+706f9c44fb9cab8903be783eca66d748b3fa5b1f5d5445f6c16a9a52c88a7e2f
+2bfb0be4e416ea209a9810dd6c38e47a58dc9270b2f49f9b9d482156f7dc8164
+b621b6803b6434a2a354a50fd9353a2ce3fa761423634b8f2adcd63b2b7acf15
+07588caf127a0d6b2017a451d3df77c53e6171c66236e5318d49fab9ce4b1026
+853f65d0d5f7913d88ea66b9b63cf06a4bfc8ed3246bb86cf6de255ff46d245d
+109939e32dc483a0e5176b614ccb7f1adcf99854cf50317bd081131a146ea089
+8ed59e46da7b6254bdccbc660686e2eda0ad7b894cd2eb2688c0c00aca589d39
+e3caa6e0faf7eeb5df3e3f8113dae4b454a0d8c86fee52779ad3e13a0a871e9b
+65b9ef0a2ff20989bae81d1cc1181679fbedb80e7d84a08774e6da58a283ba22
+3780f2717484e066fa7dc012e6d19429b08638045352d358957917123c9c73b4
+326a954f5ebce183ba1025c00c8f559dba85e07b3ed48d2fa0acafa9436d6fdf
+e530ce25ac7da170db1764e77b6816343e8a128a075e7744a6f0406551f4640e
+c403ea61696459d15ee040bfb53f08700c69333b1cb28142c5b9411d65fbfb1e
+c7f4f50c03d122ad4b63e9e65f0a0af43efcc9fc546fd13da42a1c13b8c9cbfa
+79a480d923701306249955ce1c61a680b2809d3551325a333a189db71bc83c59
+47d17b31f8ff63564919b00336285f724d22f889748564808083ddaa4eeb8632
+5d636961e1f634f3ff3def1dcd7299bb7679dbaf685e2ac1484bd9b17c5cf4d8
+59897713b51a4deba3332c2ab5c48a76357d2eaaa539a617b09f223661bcb411
+0e6559e99a7d900336a9327d4b8330ee5f56b016cebb8c07dbcc2fa736c07ecb
+8930f26b429288c6fe6cee3e7792de58ea3ce248598db0c604787612bd137d80
+e4462d249b229b62142128b57a6b44515262743bb3c70ee96aa4b8c49d6b0be4
+4e19f634add30634f999f4dfb3dcff6a412a9b6067d28751aab1b20928a6e73b
+cb81b0510d551f84437062e8cd403bf8c343003965e926465b288b0aa2fc85f9
+90f9a63fce188d72008aed98bcba5ff4ae850711d2664f0857ded002e3a89fa8
+75f930ddf7918d6b2f92ae26af35f50cc9d2a8f9b5d5d80981b12ddf4c59565a
+aa62ec34589e5bcc3075cc6a163e45d46bb280b22158c5c04c90beb6f8a1c791
+5597b0f69be3204d876cfa54481cc86ed2fe799bc46555c6c6fffc73854104dc
+9c8a6f85331fce7c5d1f20af5d99e4e61b7ab981dd4eae26951a9447d5553140
+b5862e2f39023bc7d14901eacf467a9424a6be8055d82f4b02036cd766367871
+e0a01d09790ab2777db18248482fb32a25fadb62956b93affc59b1796f78d0b6
+6aaeee9778a3b253bd98035c79b5296e173fba9e56e8824ab6191ef9062b1fc8
+1b6b6185a05b167adccc6698b1801297d766492add5b66193d024d121633d329
+25bcf1a9ae109371aaaeb64f2805bf5c2d5a218c191e9eeb4ac30a48291c7251
+f690b51d5135f6a37f5418624c7d2f3ece356b12ec18f73d5177a24ffe371635
+fc88231b3a95d72ca2555f164c503f91b5c7ca174e43aee6534df6d569efd50d
+da3e950e11c6cff788e50ce5f1332ad76a2357c39d44ea38e88b24f2d37cf29e
+21b7468adfcacc8ab8fe1ae9da4c933b5f7f0a6451964a4924b6ba96c359c828
+d818166d5271e813f7a34a5b18927e66d61003392c96ab36b3e2175f31faa3d3
+7e77200bbbeba91c532c053f318f3f83080bf3d641d4c5df796c2882e34c01b9
+cf74bba01f03ef559012eeece809c019ab6d40d22a16fb9054143990db45b902
+a5574f672dda96d6c18c0fb048e970e6180e6148061e22085c7aa4fdc2102fd2
+d31e84456a56057b9d3189f331cc8354b195564cfdd23579574b7c7a80d2f3e3
+97f07cdab67407a46a4264e985563dae7ad933dac054d64a7ebce65bb2beb5fe
+d53360fd76a0fe706e7283550c4d5657aa9bf62ee713592d74e89998e9b0adb2
+327a9dd5f19184a500870a3c53367431b56cc4dd60bb629ae68a009fba0049eb
+16d11d5f299d5a99f3d45f6510450e53740da5556335eccd43e1408b826fc535
+10c7784c44cdbf41988ab67ffdc54ea61dd05208204c8bed9c66c678e6324428
+9682cc6ea0b2dad69cdb69dc8daacfd1a98c730dc3d9bc8d83e2fa2e72de08b0
+031ef3455ba92d03acfdb7ecf50ee883a8817abd96e58f72ae050feae0d224a5
+42aa0b4c022f8a90e73ab84216f520d6ded72680471b9ed2ce317536305d7360
+810a92f4957c9aba9328b116349fdfa728e9f042b2fd2d116bbcbbb99ec6966b
+a5e1f4fbbb4b1eae6d8bdd40de5fa44127e6d7c05abad3c012082c245265096d
+d4445b03ad8dc08d707ecbf0aef0890b0658dc9341fd386d417ad9f5e79c0464
+be4e3b22e4997e1806d192a8be70dfbcf69715b8194347a60e80934ed09fb08e
+c4df7c3b204b07ee3610c041dff7d4c76060e4be6a3a2f0b0217005ab38f80ff
+fe55a6252afa361b5cd8f3b642e6e193da913ccaeae5508c2470036aad80c0c6
+e977c374852b69a8de69aea44aaad49eb7fcd420bd55a5c5cbf073e859ba9d6a
+857da20a5cc2744843ea07efcaf91e992f0a44e1e520bbca097b6965c4e30c99
+03ac3ca1af1bbeeacffd7cc22e7b9763b0876cf8308ea38828a716da7f430898
+2beecd1cb81cd95ab8fe70242026f11061a70fb42445aa9246488d6d0029df17
+dea43305ac74df52e5699b6c243025786b21fd43993a8039e9e75fce2dbb7d6b
+7e4cd140e7edacc20dcb473dc45eab68d8ea296baf9bb969093862d391f84073
+5e17f87847ff2e9186080feb184ff7869a5a8bee6aafe3461454dcbcd00d2c24
+61ef831a52dbb0fa736694b4a3a4d85c6d80636b316fb12be67f0887cce6df04
+80c145ea8762ef8b2c43ae71f3c32686fd5813eb49a39bc6d4980472bd5cdbb6
+c282c9ffe2fb52656f607692e1ba726417703feccfd4aeaf9c66d543ce1506b1
+a9d6b95705f67086d4f36b06a283cec841a01f1028d95d4de419d7110f091014
+f6dc905e81add1d54f95b16cddcfd0793d1cf4a85e7a35458c81197a24fe82cb
+63edde30cb6b538a708fbd41f00268a772730b85bd8860054acd93fe6b8bbcb9
+cc474568d426e83f15838520a313e0ae1b60959de340398b21986f5c404c9361
+54975d52740bec0f7abfaf271a2ac1f7553b862d45d11ae585936fbb5462e2dd
+bf35e4afb7bffcbd3294be3eabec4b787133c3a5e0c95f74a71dad9be990d07c
+d157d7258830a3cc3de6459140afba942eef325ee072b3a53a9f281d483eac65
+e8da50ccddb3d43baff7d8c7d7a1847d6d579ce92df1b54de141ce7a73607362
+7d909e8cd9fdc373b840145f9373bc2f02979ee34688bf840f4f9245c2ab976c
+ee8bde685c47606201f6611e38a49ab72428def2c85e553313af719ab4d4f5ef
+e3f3430522abff76bf8bb8f56afe11008d3f989ffadccb411dd3b7e6352ea873
+3abe5dc71b3b4832ae85bdb23f6cbfb4b2631412e4fe0050a5f7f4216508a3db
+ea2d74318ed82f1a2fc791623c869593dcfd6bfb2fe57bdf06e9d1946f9bcea0
+13848fcdc603e3eca5384725118970cebcc9ebc6b74df13ad395fa6efdc22463
+5380eb1b3521aa929eba30958ae2da40852196b67ee44409d323383b0c7fa1f2
+b4fff373041d9f5eeab03d6743f0a291b481dd3ff9e8ebd77a073b8d5f5d93bc
+727e6566204893af892f74fc0bc3f3e83643a93747678eb998f9c91b3a0ff942
+3d3924f507f1c7eb18249b2ab73691f5fac868720ff52183091f65ac3be8cb0e
+80d257c52ea8647ef747fe304598e1ce0900a4de4031e4b6a58d7869b08a56aa
+710c91ccb8afab94ad10d670e767a44e0177795ddfd65c9cdc7332716deefe3f
+9e2ed8a54bb6faf63b7bf5f554b934821086c09fc28fa74ea2efd410e006be6b
+ebe0c464e078c14968453dc783a788a55d925d72205492c07d0dbaee4982fbed
+9b32dd19ae230da5870499feeac55b09b0970ad5926375fd79b95552816be003
+90515262b5ca891babcd81bf86847cbc5850d4a056bdc528e97aded1ea6d7b76
+bd8ec34e742a9fccf19a6310004499b1cc1a920b5f3b746bd4de2d9b9dea341d
+25a7a7b60546a8f9ef99190cf8ddedb21a0103414f9f28ae8673c966b12528dc
+fb70ce44db4822322605982d708a0b4bef7eb08962e3f433213d7545f351e994
+970828eb443c3bb36ab0c4cab7fadfd949e5f93273141da2b6dffb41b4678647
+93cd4e53c78a63c632d4fcbad772122e86dde337d5438e5e4342a0e18be8b014
+3ddd7290d16096f2149c6c71ad28325dddbf994e651b9d4be89430b31dec3fa7
+d2703196f7f10b5e8d98f20e14151160507e53ff1f3d4bddff3f45f9e64b1b9b
+9b26b32bf389a3725c243209245bd78c2f78d67033be00ebe25955a1ac718305
+b52a0260a07220a9f7410bad935538c6c7c56f902a70730c1cf90d45a5f66c6b
+a762406e512bf3cc3b52918c6e9e92893279cf86af1684d9b67d1ebbe84be9d8
+4b56548323ab381ae18c9e9570453abe77ca9d9ed1164563120b939fc3acc33d
+49f5e989a74ac760f0c99458295278efde92e99003c4780935d12eda68a82308
+ba444819ea9fd930c80263b57ec1b9164aa50ce386b8ef81a53a710416c6c868
+794bddb4fe463b3c59ff9fd085fc7ec37cf2abb7df09d41113f4542f72bffda6
+1fafef41c462eabcc7a3b4fbe46cac256c7af4309a617e73e7934450434e344b
+5cb6ddf2e63f4523f1526ed2f79522eae16b23dd9ff4924053a0fa7c4a0b29ff
+f4485c041b06147d2c94d276553f443c2980cb96ef5da49bfda4ee95bbf092ac
+e2dee947d0c711c1930500b79a5424e8494df6e1798b009a3816342f4d1d7cb0
+b7bf239f3d60361ac605020591740d13ce386bca1e69a2e8063c62f9959c9fb9
+010ae39f18882b1e3b3d0d9b0447db7f7f7a3810375372702686b224896bf5e4
+cd40e308b5a6988b614d8088c296171423cab2657cfb98f462afe21e990b0c74
+4c8738d1b13097ca887ccfd3eabe4f1e29df71d0e51046957409964f9f02a33d
+78b2a5bac5058bda0dd8a65fe6c53dff9310fd2b97afd24f39e586417dcc18a1
+5c0be1795e0f2c3d785f8cc1ab5505bb8fc0dfa1364f08876a42dae3383f853f
+84e7e54405bb8d00911c5b8ef4794494d9bf076d57a65f2392628b61ff967c77
+29114960e00fadc36961617c61c673bd2d2e4a9d54702233c8414026e67940bd
+ed16e2d3822f06068502c0966f2ff68f74d11a0b780b95f3f52bcc162a37b6ef
+48cf5ff8513cf4183176734f80b9835401b3db6bd53597645873fa96488eb183
+646b577037e5717952d23cc71ee1780b3df42d9c768804fc47cf147db059b9ee
+7a6399d4f4afcf2d296902f16d56d6df28ac4c9a96e357678ba901fe72ce3d2f
+b10fbf263146547d455df1bc33a1dfa753251c264db8798da35943a4940962f9
+e3b8a68d2b094177154ba30af7bd201cad919c09a34536e41d6c5772873c0634
+fef84dca5f1a5d5488997e279876af1dfb3f51790a6ae085d09ea4e1947fc10b
+987c2db0634c100484f4b45404119fee7a7ec81111029cff1b4cfa1a8637d4a5
+ad472b5ac0cb9f428cb1df8abfea3db8082a26cc815437ab387e7f87902398d2
+e0c6bf6c95c2381f15b61fb2c5bdb8684afbb7a6c1a01ca2286a8dff62e52a16
+3d7c748c1b2c63d2933012c5306cb7efb0b4cd733c56ba7700acc731d294f7a1
+1f2a1f8f461983f2972da8c3dbb3f9117f7a6f3583c8a5dcabb364ac0310457f
+93fbca26c31482d806c6a7a4f87f4cb92e3f30b4dd2dd5e3da5360430c008237
+7165549aa416a73c62a50b707074b2b7ded2b07454574f60861cd2f0342e4f78
+24789278e711f18ef858b819a0accb67384b47145fee30b32181d66ff47aa657
+83f0cccb693ac70657bc2bf204974bb3bcbffcd6540477e7a973718754acbe68
+823672daeaf24c93263a57598ac4bc999120e367aaa4b54c643e8c8987024b07
+9b0d40fb33d55cee534e3a38a1a316276704e9a6df08553fde29e4d4526225d1
+fbda6f8cb78098e83e8a360de3c4c77e2998094f920aaba9c7587735cd2f22cb
+e17c6b99a8286519242f18de4aabbe470bb8e0931ec7f5c19e1c304df56f2368
+70d154e925c4f2e5012d52a0283ea52acefa09d2a8ecc832358868bce8efba7c
+492e3575c1605150a3f7d6822960f1a9975151c7b6e928fc07f73493351895b3
+5ea783de8482144ddfaf6f881d0835472a603fcd52464da80de0c380fed5cc67
+e38eea70c066dadf026e03fe00be35c6310f64aca4b991ed4bc4eb125b4c0a79
+b87109b442c0b624c340271988ca36e92157ebe00ace90fa4515b6c649b9ef36
+f82cfb4954c124878dfece799bd987ee930148967069b9e6ff5663689e5d186c
+26dbdfa146c3dd3ab9c2104fa4e92423c88a0821443aa8008b11008525290207
+146118e39b4d7893fdc8c7225f4c97fa3f1cc264122afa3a87d630ef325d3778
+28ecba34700bae5038bc2a1c2e0476351d9e73cb623cf58eb35d4c518630ef2a
+f8b64bed95d72bb7403e652e2dda6faad38fe8fe4319ae190f0496a1c6806cca
+10efc6d15c7e19522b152476c36f9644a599da6786df08fe7981f9eaa0e8611f
+880ce7444e6e72e82aefccf6ae7aa0ae68f883d9f85b8126a6c52687c0ffe6d4
+fc712eae8bcaf81dbfddd0a58717c4cea5ebc76c94567833f5549daa0cf6254c
+627a1a0662537ad3b43c6f3a90d553bd6e7e841769777c502e4dd5fb8b15431a
+61ad9b26cd69b5d7d2b28776074e7b7beb25da2d5b8ce39e2d982b9fb9122e6f
+401cdba8684365458bd82680150de4ea9c386dc6666e613f4de18bcf4540ce5e
+663a6f3de86e8ff97339085dd62fc33bdaed076740de76c1830a14618ced99f8
+07519a5526f787b5f96e8086ff187ddc36ab3b385520dd23ceb0b0a779c97537
+496cdcbd8b82bc87bd2473acc490c6a86a6e6f85496a2dabbe2c92f4394c23bb
+714c0cdce7c02a397f2a66862ac165931eadc3dd374873357e315c8cd99f00b9
+20d3c62c04401d15413d4c640c2aa4caf5fa5db6eecf4ecf43478b2ed317e06f
+cdbab783a6921463b346d8bf72e98a4d7fbe011cbe565cb54a7157af3fa4d5c9
+d6a36c7600f5a884595278efddf5085f74c3d7d8e9beb3be3f7f6131e8233b08
+4b16dfda9cc778dc10adda42786156d707750d12c920cc297e8f58578d5084a8
+6d68a5180a
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F123_0 /BITXNG+CMMI10 1 1
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/arrowhookright/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/period/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font ZWXELK+NimbusMonL-Bold
+%!PS-AdobeFont-1.0: NimbusMonL-Bold 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Mono L Bold) readonly def
+/FamilyName (Nimbus Mono L) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /ZWXELK+NimbusMonL-Bold def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-43 -278 681 871} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa7637750ee32abe88
+6f7c1368d9ce6c8e0c490dfce9b86d093c646a926013616599be4a08eeab1ef9
+4d9066aa43407ce8754ca1bb33035af23db30794e2d3368c4fa14ccccbdeaf01
+2caf3cd75f4a9430011661c1bf054a530ddc57f032ecffb56ef20be97a76074d
+a40f2ab5f5ca4b83c12482c76211aebb54d996a3771a33008145b436f16e5100
+3c766da4e9fc3ac88ac60879f47b0d72099a606f615cd397a05aed4a92a6e86b
+6a9685a3fce4cb303371639026c74f19dd67a353e70a7f40b4d317f830c0342a
+9f2fec7a3304e4c4009e2bc3f0dcee97c8381bc7682c6d3f80d93a69ce5d74bb
+b3ae9b016bca6cf044056c8ab210f7f1ab28c6b4c457d0184278951c4e2bd743
+41f9c9c8fafb9f11da77c2ce9f820e65ba3b7184d08598f9ecc956d38ffa3d71
+0ef485905434474fbb7cf4b43b193a537efe076c26a9251d45d06ff575a5b9a6
+20ec66effcfa67a9e089a1a78ab7331d3841898dd7476d70a2a97c8f6c283fae
+4010a9eb770604ba65878fa2105d063a44c56e21bd4847b542af04cec1cfc7d5
+ec2b1ee2103bd35e162f2dc6d1f224925a0d7eb5b883a6eff782245605bb8fcc
+1e0453694af4725205d9225ffa329bbdd4392fcccb8dac6a0e8be2059177757e
+2fc359426f4e1ed2e19ca9b5311c2e77ef9f97618b0c337a906ff39926d2b0b7
+883abba6508102d9f4fb0387d88d82973b53718c98d58c9b83d2a62386b74c16
+9cb5c33dda965420dd78aa19ff23f88bd2355f93ebaca543d8b18ea36b4ee8fc
+b5924e01f73a9501819be812383107d361fe8c805163a6957de6aa4af7fa6963
+e77ac8e5d39349be33448d2f6258da61aaf47917c66c7c5ae99a990b727c6c70
+20f14175225efea39202b489cb6623c51f41fe9a5f6d3be27796e51be6945774
+6cdc1ec49ed6114400f4724ecff05fe0bed476dd3d5650ce735475ff6f232456
+5918f9ed222319d2a544aa4a74be19f45cd466fcf191e7ea641ea38f9d3133f8
+872bafe19691dcdf0bce48ed6fd0e0ee9a81faa6dff8b239874ffe2072a73107
+0ffb5095f90a653a1690655a9b4287545138b8049e04eeb928256a05a73edf71
+4e0c8692f37cf1d7e3defd43b2b428f853f35bd79f3811fa7bf788d1c1cf4a61
+65b8eebc60521fac324403d3bca11817c9d15012e0be84e194435fd27361e68d
+79b52b6c9a96c1a40596f048a31c49088b883ee21d9bd24b48e4d1e03e7378c0
+5b62dc00623f9c5dbe5087eb9122de23199ac72b491ff847674d6141ca7facd9
+6bdbfc373e1e1f87881fd7bc3a7d64292c55a687f3837424612103bd6be8fe2c
+0b3f529ff61d27d3fe8cbb25636f48e6a41f205d04a802e50fd974cfa67f94ec
+19c3ec32aa714e650af284926ec5f2e29bb880efc696d77d210536d7d1148ac9
+ea9263bc02d2ba97369f2ab531944e132484c3f2c2638b01fc97731f1b39a492
+4822b5265773a5e86a17a41e7346b7c4c48029f58450663e0d09836d75ca7f8a
+d9a78eeea4f41976945501f32bb383455467d217777e642f32777bbd74cff9c7
+97041d0a982ab1c0d4999077201cc9ab52a92cf959cafd2e6790ab45f6927c7e
+96f24481280a0242e823e22a4e32669bc829ef1b7ec3fa34e9cdd920b0f7e2c3
+8f138ee0922fbdd3d7bec614805aa562591c3969760019c54ede008db2c2f8af
+bc66034e5810bc32c823b819eb39a15c0f25be8f2dfe5a01b90848a5adcc95de
+49241dc602f4b71f8901fbb38725ee7ff097f769c017f16598b835a0b93cc6aa
+c437310f1a7d586cc05048684af27ef3c09f72ac62adb2f4fe7f99d1340d27c4
+479c144afdc37e4131d8fc6479afbb1004ba15e3e5d0ee470b9811a0f51294c6
+dee3fa7431267cb6ec7a96c590ebc1cc7333a103eddc21219f392ddbea601d6d
+dce7a8645953235a0ab6d46578e8e438ffc41be6b509b844b73e586131f694bf
+f0ed77a7847f7c747410cbba2473f5869eda83ec8118d800f3b2a7b5ea03e16b
+204962bc68ac47bcc5d29f88aee951c2452d22aa967d32c3f37a91ba88baad3d
+bc74cf2c7fbf0c76faa4eb347390dd08303b439cb1f1a3363d265fec5734c81c
+bf1af913f88820cc29f4a3b54c712e006e1d6bd993668999c3ad54676c71fda5
+e29df4c794a4fa812b13ad32b28bc57e05c7908b8334bd4fe842d57b04423fd0
+db3a43eb047f86eb925dfe31a012031f36d5f6099187724b0e2203ca1da764db
+623d1e0a59b9fe47d7d4d67c241d297bc5a6641770f5e9f75c572675ae6e69e7
+ae37627c1e4d3ba60b95605da55c67c5f6ef7ae2049ea3d1246a0c03309ebd39
+951a398883fc919a711e8e891d914459d4296bc3a584610663af1c2ff053c137
+9f447f918ca55c5dd4a52a060d1725c26e6940371eb4fd9d254749d04ebc0f11
+06f62a30d3f714a33e4f65f4dd0b20daaa10aa02b9a6e6eeec07fd93d19f9c0a
+6cd6bde1d7ccd1a973bf297fe6a8821e03a381c468b9adfde87a4b7f484a55ff
+a5b83052ac23f4b3644234d935485f912cba1c84227a609b32509552ad1d7ce4
+6f564f7f9da1e131d9921befbf53cad1adfee699702cb6bc949688b30f0b4f3f
+d3afc9caa04a796e5afe2aa8f8e14a7959731a74dc4b215d7ec095ebe86a3863
+ef6d7975c3d2edc2e7c2f5d2c8cfc5f6fda37368a54dc07a7026ebe9e2d290b1
+eedfe0322838aad2f5be5c299a658f47d0487584b1f9e7def39aaddd212138e0
+8a8d2479be76477e5193944353796d86aa5e2ebce0a453bae8cd9bc976a14910
+93b30d44f25a29808227330b98bb42bad91b4964f6832f2946b0ff1701853c49
+dc522636d5b7fb6ef764097a17da725c3af793585d24c91627f49e83271b7498
+cbd67abde015c94f5f24579852564ef01dc4ad98f15d522bd15fb9043b241350
+2b1f128d874c1d119798ebb0e11be341f78db622204aef7778aa81055bf4b7e8
+c455a6398d7d5dac94a5007b4f76265bc8875392b5354bd38ddc111dbb8b5b92
+15beaf72f041f17d55b49b81f3d1279bb7a5ccb1a9daaf125e79d5ad7dab0595
+9e694040bce7da09f795dd3cd508b405c6bd07cc7ee9bfe298156ff2620bc3cb
+cc7b27d9618e04a2ee6e3744d7a344f6554e0baa2290b2082f996026adc420c6
+76ad5978868e062323522240a388179de4d224f19182ba7a35c3aa952844df49
+f6c532d429e5c86f89d1e697fce1b50861cca95504dd63423bf603b14459b7c6
+91bf64bed93e5ca158ed057c9bf9160f61584608ee366e3be548bf2dc46c219e
+9e0acdbaaca1a5b02770bbf21dede6a80f3af65ae92a9089683dce3ec5e6ec68
+9de2dc208f7304afddf88f35e1f428dbe74e7042766346ec02e1eda87b8c246f
+89a0eb22d1c6fdb17142af0c8c0b565ab6db819d2ae2bb3bad7c7778c53b2686
+72191116278357d8659bcc81753c2906eac08fc3fb966aa5ded522da2a5edf40
+9a3eeb5735617e77a7a77009cd38c2b62bcb89ab73052cce4526f4f02bbec777
+e6ca65c90ff5931dadf03da48afb8561fc2e71008fb1d1d4343512ada1b78e71
+0a10079f211faa5227eb0b30588e9e03fad6d901dca2b6bac956eb8cd2ccfad8
+80e8cb37e31fa6a8206f6a9a2a9e1cfff1205345019a0feaecde57fb0fa418c6
+f4cb83025e7180e50394f52064d8ea0383b80482e48ac91c24d10c7ddabe98b2
+13eaacad917275e916fc0803796efc1f9597f8952547d27dee1fad9ac1fa6d10
+27127514e0f2dcdf9ca30393cefc7cda027c85e53d10ce53796529fb13b079c2
+0c7402109235a0c25965b3b7d741e90e500ec2476c5dd11dfae57d6f57b218c4
+b9cce956161aff0a55a52eb58a59d7a62d90b110f9a0dd26b8c902122271a38b
+7923957a15d11cf1427ce56323c7e4428d2ee1ec6b1c465be35668b0a7ac8eb8
+af1f080a993c3c74871e4b7bdb2602d07587aed96ddb05374c2aadaa24486f9a
+831ba1179b2ea3602d071411f1756b58168f9ffb572d787b2ffe01bc07c04d48
+f893271ee576454a86a0c216b224e0de81d66ace456d352a5b2537eb96be26e0
+342e4165d30208448c9314ec962ac31ee36f887d0cf61a575444b31180850172
+10ce125407e77e5c63c947fa320845efd26c85ae8813a99e518d679137ae1dfa
+9e9f19c49b461da073dc1be4a9d32f6ad62d05afdcdce4e33091132d471edcae
+38607b7f5a17e7340b4e1a110bf7ed2bbbb9ad9b8ab909430f29f87b1db0a04f
+a4a80796d144bc1875a846990df6fb3f14a1457be695a3cf1a5c16878d44be38
+107e327ec4096cd66caa90efb30bf9837ad04d995c4f9165b1ef14d394b71ff1
+281b0d67d4d3cd375c79603efa6e0830183be17f77e7d5423dbe0776fa1387d7
+df0dccfbda67f6ada4d87dc8c6325f0460690be677aa6db7e0250b5196b420d0
+cc8d66fec329d81a7584a5d001c2c3e42350eb22313f036b5ae64868fc6aeed9
+af95ec8f2aeefe4a95e69cc77f321fb7e7aeaa45b2f56d92d0956bf321ad859b
+d2e2bbe984b17fe9303f13428a68d6a1959288ffb63d800c11ffb6226920324f
+6517eb5373f2b8f058be35adbc7ff15a2b0a81683aea4ff11071451a49efd1cc
+f15664182fc26672cf89416da86a3b8cfb45510e1ebbe11060963434bcb7581c
+4816bbd63c6d79dbdca7dcf26a4217bff8060ad7955402af67fe4743997a028c
+c33d49847b57712e0e23a1c5b72da33198426130a132be52890df4423fe21d4d
+2625e646ce72588478bf941f1f74e875812f7d7ac9c54d0ddcd12178abf50bcf
+f5131713cf9c42d0faf6cde696534896406a8a5234a8ac19bfd531ca934c35e1
+576099082701fce199811dd294cc46ca147d5a187c3737d3d128ee8d437a2afb
+114183da45b49ddc768c31e35c395c3bf67a79f8b1ac292f38ab2ef721453256
+523e9dc08e80bedabece9bc9af135276c819140d7a0e966156dea6e2f7aae463
+c634c4de83feff86407b556651a455077d64b52c5ff4b80250d312dbdf83dc0e
+b9ebd541aa9fbfddef1f775be0c411788b054aad44c85d8723ca7d2a6b00cca2
+4ac55e90ec48e4acc15be17b9544bb71ad967c4b8437470e4d020fc6e8677251
+92e2307b51148b2cf46fc1b7f2b149ebc1ebb02c33477b4c56e56a9f06566377
+d2de31c00d90ff5ddb509f8ed457e915c6fee8103da73b5d782bffad7f7c029e
+12e1930e95fd7b7bb37c48b7cc48d99dc9aa79388c90bf6c7c0b83c7f7fc0935
+8fd5f673dcc906c7e0fa7711abe8258828289ef48a40723e39b7ec79f2d3822c
+6f45a6ae0745413ce860467d7cc0aef52c680b8cf1767915d3550d9813b5bde7
+1c21b0f7b7119bb0e1eae6a7874ff0588adf14626d101b4e117c63f2e7a60627
+dc40cb9ab16032434469f390804b9039e21f1afc9380f26571e3b2c64a86c851
+74fc32a61b787769985079d60cf71131977accec6954da9032b1333396fd5450
+00e364e7e6a79bdbc9f1e842e222ca480f1f22089a38079692312519392296ef
+08f00707ec53e1cf114795631e3b14687b9e351f1b7bd44d6f7d41ac91e8404d
+8ae952c3c78e4a6bc9ad64ac1baeb952053c409cfad43a877a7c420006ce3e9e
+0278a33cebd6d9d9737432c982165ed82c45d26f55c133162a41be27005cd6fd
+e60cc41bc098314a5a1619dedc6bd9acc637f398219f9a3c543f8421ad4c4e58
+9265d23edb6cb45f2273a908ca416ad8c32c2992d9efa95d86e631ac8fad778f
+ef9936c2dff4053cfb253c24c65bd20fd534d6509c0c141a358d4ad95bd9b5af
+8abb5cacb94788cbf6c43bb54d52751d05a1a2e6848c33ab9b769ca9bccd8e3b
+ee742c0d93ecba4c5c31c1d32a567d4213522f2a5687b014351cc01a42c14208
+69ef5852aa703ba076abcd4c6653fe6c4100bfbe047e34d4d6e9c62a6e5532e3
+f9ac9e7cac24e076546134c226f38ad0f51f8f2dd8501a001b5c0da65d9286eb
+3560b947ee38fa27a502e87f8c99ffcd54b1d128096360be6c5b6f3e536c57e9
+1acffa0392e87026f5acadd1d81295d54155ac6154e247d95bad5d9ace11215a
+e0ca996979f6dd8e94e7567ea17b8827ea4d5d5c9a8484ca568332bac134f993
+91505c7fbd8ba336f9c37d6dedd17261483c232995658b078fe8f1a312cf74ca
+de87453964bc73a936a0ea09f74e9b0822b8336cc888f0f1f399061c342c8b18
+1d93b17a0afe2a2a69acf2f91ecbc8441db2aa35091968a0408b2abbfa35e4cc
+77208f81b76a199312d8b3c3426e49e08f8359e6ceb694550f4b8fb113f2b977
+937eb20585083e72e0abd60e60ca4ac0f216b65b7a9bcbe1005c5b8bbddb702d
+ca9da36f1fd416315266905f3ca5ed221be1ec496c5b16070bbe38ea094ae5ef
+be93eb0eacb95603d7c36ba04f606a11ad22580b1ee5498ffae48f218108b774
+d71bde64b7de26f696d95abd3c13853aa368cd2582f2b03be9b7ac59e9bf0207
+df0ad55054c594811c5e89277d3804d058e1fa5419b15d11605066742d284108
+7411f111e7375c6710060d26e0b60f6aa8387f348cf2bcc5762c16ef320e24c1
+755f88376f5f2ec00b4121861518c97145a7105bd0d571454c177da407fbfbc3
+4a93ee4852b09cb436f682f9f84da4d61ecf72f8f801a548a9304f19163d6bb8
+12f5de6e1f2b4ccc494015627416d54877ee71221b95fe357bf67271242a8f17
+a4eb4be3b7a649c234524b2554a8fd24210b7acefdecb2198265167b8bb28593
+07ed7a654e9a6e2119e6dd14fb33faa084c71e930b8035952b87fe8b4a297dc0
+e4a89d17214cf1063caac03d4bdd5b4fd62bfa6897811c3494ec3018c558282c
+2efa94538edde156727152eea21c6e3f88f68a0176aaee333b79e6b37344bfe2
+77292544c72d4023a3728c2e39d2841c2450465852d02503fe0a871700b470c1
+a73d8c1db644db39e9c1ce3ccbf2149625e915599ecc3091e15e0a74768ed5b1
+8271fc242e10bd83e73b4636cf874ca6e6d756e707e671d99fc43d61ce6bf80c
+3a3be178d9f5d3cb32ca669cf99b70b10dad7d270d0cd85a9865d60df07fdd94
+cd
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F335_0 /ZWXELK+NimbusMonL-Bold 1 1
+[ /.notdef/.notdef/fi/fl/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+ /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+ /zero/one/two/three/four/five/six/seven
+ /eight/nine/colon/semicolon/less/equal/greater/question
+ /at/A/B/C/D/E/F/G
+ /H/I/J/K/L/M/N/O
+ /P/Q/R/S/T/U/V/W
+ /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+ /quoteleft/a/b/c/d/e/f/g
+ /h/i/j/k/l/m/n/o
+ /p/q/r/s/t/u/v/w
+ /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+ /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+ /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+ /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+ /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+ /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+ /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+ /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+ /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+ /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font FRBTTO+CMSY10
+%!PS-AdobeFont-1.0: CMSY10 003.002
+%%Title: CMSY10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
+/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /FRBTTO+CMSY10 def
+/FontBBox {-29 -960 1116 775 }readonly def
+/UniqueID 5096651 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
+/FullName (CMSY10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 32 /arrowleft put
+readonly def
+currentdict end
+currentfile eexec
+d9d66f633b846ab284bcf8b0411b772de5cd06dfe1be899059c588357426d7a0
+7b684c079a47d271426064ad18cb9750d8a986d1d67c1b2aeef8ce785cc19c81
+de96489f740045c5e342f02da1c9f9f3c167651e646f1a67cf379789e311ef91
+511d0f605b045b279357d6fc8537c233e7aee6a4fdbe73e75a39eb206d20a6f6
+1021961b748d419ebeeb028b592124e174ca595c108e12725b9875544955cffd
+028b698ef742bc8c19f979e35b8e99caddddc89cc6c59733f2a24bc3af36ad86
+1319147a4a219ecb92c71915919c4ab77300264235f643a995902219a56d8626
+de036037defbd3a2c6bb91c73375b5674e43810b4f7eccb675b36f35d63d9ec2
+def21c5fe49b54f92f0d18b89289682cb097244225af6400f6ca98efaf336c9f
+c304161e2006b3bedbff4dd36fa7a8f7594c02dab68c077e83335ee6d018f860
+8d9a9131325d953d6c38c7e0a34236506c1e70cb6657dafc3c9520131a251350
+49034e216ae175cb232c2ef5a3c569ab581f936ef4e8b8c8bccac287f06f24ee
+1d15d2819058bd9aebc4ea91b74935f6d411562a453674b14bd76fbf5f298f9e
+8fd37f529f9e0450bbbe473b5a4039d8d0228f56330fa15411d7544ce700984e
+09593a854180d3100e136beea91daedaac36cca03d82b83d953880307edbd0f0
+014451ec8f10b1e30b51c2f9055e906272f02f32085e4b9fbe5a6860a74e274a
+74349069b6eb90fce84259d281f037d6de9f42fe557f5f13a87e5c9f668dfb8e
+f5e7f4b5ef9f5841b3885a6c8994bfd27fe35fa3cc1dbd5ac68e1c98c0d0ecc3
+bd2795e77848b5faf604f01362ca473ac72284a56cabb68f35ba43ddc6158955
+5bc6614cbcf4b80872c2cc66b6f4f90c315bf73b34e481705ee8b54eef70fbaa
+71424420120f27d8853933e3ad4d8026397b040c88567f440df538120d61d0b5
+8232d66e2e006866b60ae46c3f4bda16a2eb5b248bb88a11b3fa4770f0f6c31c
+dd13bab11c2f4ac77a63f703a5824638fb765033dce02f584f36c879416fbfb1
+ee7eebe75d57711b44824db906885934dfa7f386b811a2598fd5cca2585045f0
+4cfd32e35f32b90badb9a96f48957b0a311778d21914c9ea27bfbc75197cbb6f
+0df8f6fa574e1f1d529a4594f2a6ed99b98fd302f4fb2694e3986c1f46ff165c
+7f4c1102526831ae1e469e62f1a6adcf7d2b876c0d43f85d20a6a5dbc2280884
+1c7666d56f832b66cf189c4debed1fb37df76c3f1c632ade8822eead5e7f52ac
+e65daa6d86e410d469a7844baa4fc9d28e21490b8cb2d3b2fbe718f55211fe5f
+74d3573b99bfccf198c775402823aa742acca713d30b55a09c7b7ce3f5f5517d
+6133e546a86c0395bef3387804ac1b07a4d27492485741a8c2ade23bb321da56
+ded0fe0d43baca1483566fb397db76ba9eec923fc2b3941f3b949cb13dcbdc3e
+2c84c6e3a7abbe5c22abf9b6959a17d152ed0576524395d8a5049c5144680a19
+0ed3405f2c9ec716cb9c0fbd6b12168d62666ce74149f8505e02aab39977d99a
+13a66449c9487a6b2863f7338378fb901e8ac981ec53ca555049b3667b4bcea9
+cd731a850ceecd59afbca1ed2fec76c18fcf5ba1b9fbd81eb84c254fa140eb99
+48838693123cde50278e4aa3cbdb7f7691d52cc624b4226855a74d3ff4b3eb3f
+e193702ad68437760ed7173ddb5031737de3470f9340a44e92355ef033958954
+e5b33866ba86201a7951a68783b94f2984b40dac3037d3e6d2250e850984470c
+a4fa92527aa313f3f366e97b87d05e114468dcf43ce4a27b9999e24295cbead6
+7dfac0c6d99e7332662743f379dee2b05fc7aed3ae405d631e3893b16e1a3771
+278319e6014b88fc346b4f3d17edfeab40d6552092a8dc6c2cdd506f458bde17
+e66b02d4992a0e370871035bda2106ecf7fab7ced8e8d35c6fbb825ed724b726
+8ce5f3f25d11386c958fe4b773b9268484c12f90e2e25e299a2154e5c480610d
+f302e1aceed9d0b3e11681bd5322a13b8fe895fc755e0053890a4135f2993642
+3d11dba2766edb9954e308ad998fb1cfbc2285d1f7a9135d2f06cd2d7f7d7b88
+d1c6c9409fd3962b8b1c9a690e01fda96361ce706ec9dbe3b4d3e0d57baa0d4e
+a98200ef682573f9aae9f09e2000b9d7e14ea41682e4e5ac56dae4cec783bf61
+a99a5df4e83fd52c0c02edf26274a16c939868103691ff4f8876c25fa70652e9
+ccb3399053205e0350ed215170f709c1901bf7b97236f7bcc13ba5b35a96e8bf
+c6e476d81e396b0c79118e16b5489279703b1a44c9d7e320936a19ed319cd03a
+f052845dacdd9b627a47433f2225827c65dda57721e8b196cd368dcba55250e8
+24e6b7b93affbdd429c9bd8e4523d8e8a56427acc3e5bf1b2db9b60cc832002f
+1bc52025f18e7d87d9bf1b8cd8dc170c6dcb85af5afc1ac4a24c0e38cfc0f4d9
+8d63cbf3b5cf6f14d902ac8a9b4c48a5d4ba4bdcf4f3b69e2998f507719e2bd7
+db63597995c5cdbba59f9b010a135f4dcc8cfd602d40b30730125606fd1b27f4
+9ccfb1d0f6a97453a8c9a40f643fddb1581504132883598385c4f76b4e57b559
+c0ed46d83ce8427db396e96bb3dbc307df52ed28dad5cf5e32d82510300241fc
+fdec6d84bb008cce0fe96c7c6d836fd3c8eca9341951e5ba15ad84a1799d137c
+938fda761f12ef2b7e90a49f1ec49445b5638ed4b2d903924dc6ebd72fadf61d
+16eb74d88503fc48659a86d95043b4e9764eeee72247367d0ca6ec0dee079f9e
+5db531a1411790c08c942b7ce7b028e4b956d5f1df8a47a8ac6c37824b661b57
+147ade729f5fed3dfb47227b27aa34cb86584d20a628bf18c395b186ef197a2f
+dcb3b6d97ad24cc35a847cb98944011ec6342d0ff9e13045ed70b68a1a5a53fa
+b8f341c7e187ac0888b3c8e119d8b841e494b9c1bd746cbeb1ce48fda15b0054
+817873ce4da21d8550892ab4a06565a98fa666a6be00776bda87181ef8483129
+3708a88f69228dd0c3ef8224301dd8fe81b4abc3563f69bf1212897af3e738c6
+c57cbfa53e64ff6a79549a8d81c3b5566dc7e697e11971a7cc6743ca1991f391
+efd8c0ba9a01397a05bbe5548843de7f2fc4747eba91c5988605a76f1d2aed97
+398cc672cfd5498ba16f6aaf55ed4bf613786aa1ba2e092c06cdf82b6231b0d6
+b2f10cc3499b6c444cef515a033381f7b6502d6e6ff4bcf2bd273cd059bddf06
+652dec312ff80e8c9f37818c2a453523976487f1a46f8e967b5d43aa3e24fe03
+46097a6721d0882aa36fba00d3056a8ad42d4efb81edcda5cdad6ff2388fc54b
+775167dd8d709c2a315e130e822ed68a889dcec2ebb10c4c56897ef4c8fffcf8
+6d0d146c61ce0d5d2514ec2e22a66090bba95fae51b7691c7f1ae470c0f6c58e
+1eca070773920235792e58838f031cd2cdae29f1e61ca254a1ed00a6f664314b
+9fa26bababcc8a6add7faba2081b6e307a17aa47ae1de11f7189b78feb61a957
+51e9257a84d3184ab2b9d858a41aa2c23374497930c4bea32e04d32389c55b93
+23a41d83442345d482927070af462aaba8f5b1de9876ef724fd364ce6e376e0b
+a411d2036639832aaf1bec583af5bee73ec7bc9a3a2acdde4c1d6602cd8d15c3
+39922661926a3b2b1d7b15bb30870929d0da419267c3b04b2aea81584bc202db
+56b6277ad95af3cc411dda29096eeef6cf0bb3d554bc9411c39990db4ccedf0e
+4aebeff2e95e4469a8fd5ba6f03a733c9ddcb832c221f114de5587fa7c9b0096
+2306f9355684eb66d1558aea7150817df7fcd27c3dff8c9abbbe47c2354f7c50
+c306e8739a39f1a71e8e7de4e5932a0a1d2b677041802cb02cc13d7c6aab3235
+1143c982379bf5d50c92ef96afb597d81c107f2ee92f46a81b1bc9b9cb30a296
+74529ce1ba8a022e221c77650c681a19bf0e5080a065e4d66d70f2ee4a876fb4
+40b0b1e29681ff5ff0ea41d27f33a7e25115e9bf421e56f47e24f03945a2ba16
+906a3d0a8b5d3f20abe89d7b7705af5f0f3533f7a546ee67d3bfb3349d4299e8
+e49bec41a8ab12e1bd71b2cff0cb0f1fdfc0ded134b5078a1e87a490d0ee31ae
+506618d409acf32cd653c59f36f4e3bc051ca072a4a75b91ddc17660e00cbcb5
+b1fb8d17f4bf7f78f74724ff9f1b84a5eacf2e7da1b9ce0bcc94b7a817dccfbe
+46cd999463b0b19a91823d18adc1662117011f2acbbdaa2e062fe77706c48952
+38ba2840d9d98b9a7a0d63b8bd40c34e26496d979edda33e5821c86d9565f1ca
+40ce6c160e57ff22d2564348e8f89d38d46b17d591053c79f89c4e750d619407
+eaa5a8bdc52ea6c6ef02744eb4a5c4886c32b210b86b41495d8729174df80f7f
+b653a2e6ff5996d96eb51a828d0606998fd526a82a5e8e1dc79127fc6340000f
+e218fc26b7c97c3cdfcec5a497f7be1ed11aedb012ffead9aa2b94630ead80b6
+3ca17e79276dec733c9955e9813970215fbe02a751bcdaf5e427a64e9b47b4ef
+e105983e0e02c5a8cdc06a5db4126ef333583e4aa17a3fd944ed803d4ef88501
+bd626e0d1d8d7b71176259283e22d9382ae88bbec9cd6ba87933f86fe28af800
+dc2080f38948e3c20d8f4477e2b9f85da4800cbd1b9015eb64a07b459215caa5
+c38b7781d919e199112e241556e1e7681a749cf67a6b246b6b245d34ebaf1504
+f06366b8a1faaf10bb4304579640f2cbf3fb339df697701f6c51afa09351e699
+890462e1a8152f70f301b5f3a01c549371be46d138045ffed5411192bf6eeb13
+51d407ffa26d4b8e7b267a3b3cd5bf9e06816df2e35b6937cccf16b4eb9ca3f1
+272a16fd71588054016ef2743c1bd58c6bf22f083fa9326d19299ecbcf66f4b9
+afed95e1e2a2f8792328e3af6025da7baa1b10a721bc511e9c2f302673df78b9
+f466e742ab2bacd5728bef45dfef5b74d1da674f4b1c8d51a324fa24b23d141a
+e082d79c3fea6440336329105d33aa1a960eead51cd500252a4d7d481cc31a99
+e9a59e3b4364a3e19805c97270bd19b031146afd9f46111a10bf886385731d74
+95ed4727f7e2435c96ba702904ad29f606fe9c5f1f9a11a229b1d528b9fa9ba5
+b50b4d4dba0ab5b3840d71c67626b6afcaf743dfe5334e00b64c5a73b3775450
+757b911673bcbacfb0f8509e8b2b2d9dada9a1558b97b146f555f85022bb4bce
+86862babbcd259be6537133f30ab2895f60869641b1b9a4cb43b676b0739c112
+2859492d908c6c60aef5ee3b60d515e7e641d008483ab4aea0e159481d623193
+b5e2bb48c77bb87783c7525e59d19a190e2c0aa02446a8d4964844d9f2561a3f
+70f20779d197b91450de25463dbb82c2c7c6428706f6d9f6a1474bd85068b37e
+4eb45bb80449ca5fea88804308f054167aded26609e7093cd396948cfc810160
+347c6d834531d64a27bcfde1dd24607d5209060f8207da7f5ca88011e24e326b
+66a261f36f754a37339d7f10eab4f276e1eabff47f4bdb577b9c4dd3de333fd7
+8f8da94df25df93a57193b1411761f908510980558e23b0584421f920989a758
+138f2e50e1493b3f9f2154a488202e0bb77316ec03f6555de4ae83923dd1588a
+fe0bfd9235b4c08a8072804d743e793daf862ae381624303be7e5e0dbd74c51b
+4172b1a16c27b6f8c5a695fcf3015cf4f7d89fc91c4c8102eb83a15093263774
+740f02f675477a3b4b6734daf3d18d1e3bb7752922e9b33bfadc539596c276bd
+cbf0fcf5437eb33fbf4a83bb2f92462236552eb0303ee70602f42bdc4b51d384
+301922cad3abd13deb81f173e9deed83786f4a5de1d7aa21cc77fc364fdd2e7d
+8b9e8074ebcb7f3511f0a256e2cba9b32bac11a5b7acadc0fc1d378ab3557382
+9aaed6a9c679e7e5cac49307549f8c4335fc477267e25506c41035cc248f8797
+8c267cb08fb5bf8a087e95dd47aae4d8389e97ea0da1af064d76e5df286a1774
+a783e3df200df1cfa26ef1ed9b5dce5dc55102cc5718854fd8911a886d0e2e8c
+a38eadf009525bbe17d0986f4e3c6a23e608fe2782e7c4bc31ad13d80ec03b7d
+1f0ff0855c4d7f9d63d6283ad8658fb13ff68586e3135a99341e4b88678704a9
+c5e8a4c2a9e70f13408c9c54ac9420d52761f62225c64b7c60514b7de0a2c8e3
+f27544869c93890e7df32680fdc438392efdd6a7bbe7621a7642632b7f45bf2b
+3f0cc935a688266c39f458b9503ed06e67f4094946e73a3fc27494d890065355
+4fce63c60e6a32436d5ba5e0ab4f373e816b57fa6ba5a2a9bd02cb58af2783b2
+ee1da6169c0f15c23c55a7b2d74edb384c6f646adb73d70e3310873e0c99231b
+1af196d1742758956415392b4537b1f04ee4060899648c387bc55df28c6db99d
+2f87190bc6f1109ebbd78e15a5641a76198b590286065996f6fe1f776f7013f4
+e999219945c4509d37463f6f18cfc46a500f39e2f2ad229bc16793428a9d8cce
+c5d950ee8ef43b425e518f4fa99333f9bf2a420b33b383756ebb0324b7df49c6
+0eeaff9f5f4f0665fe60d40a1f9824c0df60827d2d3915512fc4a5e54db36580
+9e3fd8c1c7c9ead2b0b5011e10ec68e4035d8aa662f0bf09fde9bbeaab5fea32
+3cd1f8cd96c62b0410ec741cc2aab05bcf9cb188194aa1fea94f40a4254d9149
+82dee90d74a6b5d876068386d55c1ab92f62e3d1c3f24d564615ca3035ffce2b
+6b49e53257393e66967da9b72010d0f8c4b6f4337487b6abffbaa16aaa86a6c3
+7c22a7b4e6f4ee90d60a9fc7c95b15d34c8a689f028e591215b329d86f35376b
+15dffe9323257f0748925c002cac78ce7cf473af7378eda5489e3c464b11e3e4
+87d805cded68a70bb95a36d01885006d2cded168532d575a128f0e03ce4a1827
+b7b0f7ca3da8e4dc774ee59db3616caa3a8924f84f35df50e48477c35fd08945
+308a214bde3389d0cb225ee5d1f96771fe3930b16645c6283b70223dfeca6663
+d72e9b6b4773edd543cbeb81e38a094ff9f1eb6012ca08a77092987bb8dfa849
+361743964bfd43032f77b09d6d1407abdcca53d424ae51fb1ed1434cf4a2f391
+b81678987709e0bea61d8546b8de9b05260d7e2284e445933ecd867cb63b6004
+0fc50c76fb25f81fdaaf545bed63d6065def8265028a224797551a6a8ddfab06
+84798af0747678d53a7564519116755a795f14b254642293aaa3622be7c14f86
+5dd86caf78e0273677f2e33658b24310bf444b1e4f0719c187669b286740775d
+66a65699cbc25bea7f7eeb8c3146f9e91e5e0f413376ac09c7e24f9b76d2af1c
+b63201760c0a7afae554b8defacb30d9dd146223f69b015b9b7a79cf92d52404
+6531acdb6bd53597645241ec6028c585407b903d0579573ebff088e43efa91af
+e77940e6c5ffb955e1fa083b949cb13dc3483bc7637b96f03c79426237a96c21
+26788fbaf00540a987d4ef95082d64a104dbbd75e4ea5c00c2cd02e622987ff7
+2775eeca7c15213edb33fb30b48d17c3bca35ed5ae941829d5992d7bb74f8fb9
+b04fd6fa321052a8c2b40f78c8e8eb081f8851c508f4774267d091e2bcfd53fd
+bb9e9b22d7aa6c9b62f0f67a3bb9b1984979d55c45d705c1cbea897072a86b4d
+0cb7400640c26526c0a03395986cc3ca897453f7e6c4251d81ed29e82f7052c7
+f8ded9c0aa221832b5750a9845659235f82bc4d9b073a75af2271a0814b1b9a7
+f598e0e7628851b21af4f0b0536c129f6ac5f62090191a7a0776190010de80e2
+7e252e134b7a5c4e14a18a84e7fce3f71645ea072ce3655632d2113d4d176f13
+29142d814a63c756e0a43ad21a55d932d1b83ec93188d7c893220fbf5157baa0
+834ffdf5d191342a4f7afbba2e63b8f36a6394ab5926fcdfdcd8d8cf138fecea
+3deb371294591899b4f6f8c8f0ea2c41356eca49df468a952f9c3ffccc8a99e1
+0d5d61732eb44e2ae7b254bab320d13990ffcdb63f3d541ed21ae022e86ddf20
+1eac6701a072aaf27664dd4e7874c4e428682c44de9d9b14c25fa8c2e8760acd
+79f11c13e198602be9d9573f6f04643b80abae1cb6269e00c8ab419d49c3606b
+11b1f8f46e7977789b19ee83c5bc35bfc48da6d32dd4d16c1303b0799dfe98fa
+0cf8531205195af9e992dac76c6cb79ef51865e6b012f29df6d3333daae56b36
+8ede2fc26a580344fdedcdf9c61366f5887fb1e7300f7898e38de35b4dac436d
+c4f79f7b365cdf9b6a32d842b6f8494b7b6c91c122af116dd8a3c3c1a35a21a9
+509f5c0c8479c5e57b2c0e175fbb4a85d3b52c927a20fd0cfdf3e2273ec8726b
+58c23b0d4f56d69ec2c59d8ce896ea7dd86cea423c2f7250170a09991fdba4f2
+40a6df094cd170ee83bab69d4b8706441730cf417284c8206c646b5105d592da
+9274bc54d07e141fcdcd130e51bacc353ea2e99dfae63ecfb9138e0aaa07178e
+de98a4f4d365375190585c8579e73929b840667afbc659f5ba4b9f25fe55c75a
+2a42fe330a4b90f3a088202806baa50fa1e99fb32973f23819fba8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F430_0 /FRBTTO+CMSY10 1 1
+[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /arrowleft/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+%%BeginResource: font AMYDOG+NimbusRomNo9L-ReguItal
+%!PS-AdobeFont-1.0: NimbusRomNo9L-ReguItal 1.05
+%%CreationDate: Wed Dec 22 1999
+% Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development
+% (URW)++,Copyright 1999 by (URW)++ Design & Development
+% See the file COPYING (GNU General Public License) for license conditions.
+% As a special exception, permission is granted to include this font
+% program in a Postscript or PDF file that consists of a document that
+% contains text to be displayed or printed using this font, regardless
+% of the conditions or license applying to the document itself.
+12 dict begin
+/FontInfo 10 dict dup begin
+/version (1.05) readonly def
+/Notice ((URW)++,Copyright 1999 by (URW)++ Design & Development. See the file COPYING (GNU General Public License) for license conditions. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself.) readonly def
+/Copyright (Copyright (URW)++,Copyright 1999 by (URW)++ Design & Development) readonly def
+/FullName (Nimbus Roman No9 L Regular Italic) readonly def
+/FamilyName (Nimbus Roman No9 L) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle -15.5 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/FontName /AMYDOG+NimbusRomNo9L-ReguItal def
+/PaintType 0 def
+/WMode 0 def
+/FontBBox {-169 -270 1010 924} readonly def
+/FontType 1 def
+/FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0] readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae
+6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27
+bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf
+045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670
+0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4
+1b2b9e8f09253b61177e95ea219474796072f4b363fe05fa7637750b770d7b13
+99fd7523816e22986f43b17ad2f9328028bba7f383ce5c429773b3d968b4307a
+efc6f468433d2320871c85fc9a377c8146b0238e6386f2f010e4c23bf50f301c
+95de2b4a559abd765880f5b3d8960d7c462f28339aec4978f261a05761583468
+b73b46da2852db1d9b0b53f6427551b6e87f1a1492a19dd774ccc6a1d0bf8d1f
+afb24bc1b3a56e452791e8fb9206a2c9df1677e848a67c4dc754cd0833116c84
+25127a919ffae922f6ec724252ae53662f3eeab1dba230a6ab6ad98cf27afcb2
+6837487ece5214be13a113d27d5ec449ac017cc7f12ff7b731b6aea24462f3bf
+e743debd18a99eda36d085ad3602ee939e3c2a40fb9551f4e5e904578e8df0ae
+a6e10910d5205c917b45b0d0f44caa993ea6fc2e17ea43b83e62abb31717b3cf
+d783d25486084caa1c642a4d9719906889510d7e60c8ba0b48b9d40222d36a01
+1aa4c8148ba57f165bb7181534df0a597bcd1df98fd644fd3e3a09a21bb018bf
+637e620e494eeb843c575bdc71016214e19d0d3d030b8a9eaea88822ee97d8ba
+ffbd2f522d3ac2f34927961e189b0c163c365ebb410088e95a5bd200e62bd5b5
+e846bdf4c127018a54a78bce6dc744c4c1aec0087df470d72e461c8079f1e8a5
+12794d770d391a02d428fccaaa4fc4ce3eefcf12b553d8fc59588b922565aba2
+c179b29dcecea5254dd73f388bb94a7ea4f16c0ea0278deaa11f2be56dadb4b0
+43bf781fb5151a4d2491bfa2d439082e8cf7a05cbc84393aa92f1d09af1e69f1
+692065dfb293c7d7bb552469bead4b1479ad1b75e552af4c162d37027dda9863
+5e1ff0b4c3ba9cdb41e9c292e901446d40a10906ca0c3f649f7968b4ffd2c653
+650bb2320e55fa19938e4c3775f286a05a1011cff4e4c7f353bfdd88ce318584
+799cd9350da919e462621dc3556b48bf53edce91940eab01870741f0fbbebd2b
+c6a26e593fd78e7ab5d05af43231c262477a5309acf964c0fbc114419c98df24
+279612da5ae02b2db3eb07c329891aeab0da742593183a92a619912d6e53b33e
+f9489dfb011045b4f20c79a7038e473f435dcc8dfed5b9071acab5a322d4e4b9
+f225eef68b8281688882693085432c16d81dbadaa3df3c2ed508a5547c4b8b18
+2cbe2aab5bfd98acf80d5927a07da8a3aa987a899e28e69a49aca9aa960b45b0
+53079246f09b1f8be89a5912784ef566497df949ac722c37b8b4c641f602217d
+e1c7fcd757c04c263aa2a4a08d7e08055e5b922d850c2a898cf32baf2418e0a1
+fa6e54e2459ef6283fbcdd406b9079950669763106c9d8b16d0aac8815fe894b
+e1c7af9702ca13b36325fdd90110f1b8a03ce3e7aff614a0a2b1b15a1041800b
+b72ceea17cf4a939410c53d5bac0b89eeeb9e2f9cfc6bcdfd9a438c109784adf
+9d2843fc809a040b9287f0c71d93f7c2b3273d39c5ed535a8e130b46d3c97f4d
+e0bf14ef07eec07f1c747a6b5d294cf4d47ac12f1d9282d2de0f808a4c609e4a
+0e2a68646e9583b6b9a75c95840bab3fe259ad8846a82af91f44923f25bac677
+3c8ad0a810731fafb0a95a5445b5800d0be0378909aec60f544c3e7438760b6b
+feb2b9b16652caab36f65ac444ce9358670e060a90cc422043b8ea8f0b065446
+0b4ed94690003cc77027d8a3c0a06a48bccdf5d6d6770402b4f44ed2673b1329
+06d4f88bf12a3445794fc9db3f1bb4afb8d380def7dc1dc78624c748192fa321
+c96b32dc26b30e54dffe770165d1759d82a5542cfc4a772d8c2cadcd2e2fb1ca
+1517ac15deb0bccf94ce83436e989adba2903489abb6b2eb9f977f3f4d690b31
+e8f6e27faa56bde2c4fd331ceb502ad286857dd67d898f8b86e13a98044f77c9
+ef13c7b14a754fd0e07c68a90940f3fe3594afe83c605102c08ccb046b807975
+e69c165c9b833f41da40d17653b80730495803061fe194ca599d53a3367ba3c2
+8db6183ae68f6564178dc0372c58a103da58de056b7b0f8795cccb1cbd4239ee
+a2b6af7eeec2f7da99f12110e07d663dfbdc0645dbf9e051f91924855405f022
+13933f1c51af2ca7a39ae3204ed31d68b15f2b74914bf86548d87316170a909e
+e9638b25282a209e9d8bbea3ecfa3ed46c2dba5cb3b38d8fadd66baf9417f5cb
+6b3a9186e34d1710c011e3a16fe8f9dbc207edeaa72c2f7d4b7b7112bfdd1b0a
+1330a7f88ee867f55c828a9154dda3c57b6e596b830b33ff636e46d8d00fb39e
+cc497f82e037ae6f7975a36876d66694e3dfccdd4a5f9ee70883fde704969531
+9cf38a1bbe0c7fbea056326e41636e17d93850a1df92ee50089f30f3c4ade4d3
+07305271d998208c7ac0f998b96ab3e3e182e29b819fd861e52b04e00f9b6be0
+8f5766fa4f3557d0ccc9edf31bf84531d664fc186ae2e7f9c81fe8c4f9f1f2ae
+3b9560c9df5fe69d969a0d6c120a6621bd68991fd5593f3197223c9f09613eb7
+1ae0c78d9ffad6be1e36df5885f657994ffb6eefb5e0949674c34768f001827f
+12f1ba77ae821657e3e96f17de324f9355152cd28c7bc3bb93b0bd0d40d17d35
+2b303f2518e05cfdc4dfa697683ecbd6a949a2eab9cce57b8b14c53ba2265a49
+5c28d22dab35e36b5b02d2fc02738aa6fa7c4cc66c88f5bf25b2be88a4987cfd
+39ca40be4ebe0174ba827e7dba9579fe52b869142fe488f9ea5cff30111d6400
+ac3cdd3e1476468fb113f2b977937e70b7214069a06007d987d0f3ade59460c4
+35361b9ee2378b0b2365178ce4fdaff19dc8e52a4eba7cea25387a2e330bea1f
+dac191c9e385c837ee253220a279f05876328864c9c2248258814f7a16030c60
+5a0da56b130757b262ba58ab68340b32d30ba67ae01efd748994a6510bdfb15b
+50c31f5dedaa1866ee9123cfc235591e6516e8210dc0157687a8f081c3aae846
+7481d16e8af6d8caa9c8596c801dd5948cf7361cafb8e01268eaf0cb40ae29d0
+de3bb879970e06fea94930ffce9d4a15ff822de7486a4023fb6bcf27d496e0a5
+2c73d409ed6aea6923de8e6ddcd7615d76b5af4f2be2cee210bb781fd622574e
+042b2fa03ff6e45cbefae7dfb53447fc56da42938717098806352776208567e1
+f07e8372e0bd8a19332de3a09320e82dfb6ac58689a65ec1fb97808e3ecfc84c
+1173378bbcabc629bb8d4f2642cfbe1bfa1a25137db295526810f349baa1e4fe
+9bc755f32a1ed330171ada792e10540d41b177bffbd9b94c2c008ff74a20138b
+eb2d0b23fcdc136e434d7fc5e7710559b91756ad1171ed3bae249960384eb4b8
+4ec4c71e91d872b1db3b7ee412aa9b4e66c8e5a03d5f1d98de47ab51dd77014c
+2926ab5e994a095d9ee5fb336746bba506603279bfa91724f6cc868abb2ce5b2
+c145dae2b6128e6c913c8814a5a0b4134c30edc7f97908ddc6e7bb65cf8a58de
+88ffab9273afe5819be1d31040559f763e95cfe230d48681d0b4103ebb92a3f8
+01177bde9bdd61e288e9c5dbd18163eac0a67899acfc1c386f8b261fabd320ab
+89fe9be450e41549b3753c32e2cd3069e82101530513728dc24d8c2c25b06ae0
+91db97dcde55f701a63895445c0bcce07ccf4c82b318494f42c776d9482c8c19
+46fce4e987e770a4a7512b5276e36ec3072c6dc9812e56e11b34baaaf9bed596
+e52d1ac1768e8e0a8b20b94f320d56406f4ea3202920fe665809102ba71932b5
+51ad5c83f6f34b1e87272e8ac300761cb99c9104a20557c09df9cf7ac51625ab
+05c5a60689321d8cef7eb8edd092b9feaba272a94e133aa84a9b7cded15c6824
+3f7ef11eee530323afe1153fbd6285b2302588252609824ed75c05416beae011
+98155779dec43c2e7fc92532951a1ce0dd6613afb3f9c73055f528f993a342c2
+3ea326391cb99feae1d61d95af36536b1c53d0a2c19709f7c85f07715f95a98a
+cdb7722e297692fc187c000a9e64bdfb0c56852bf7ff946f932852d3931043f2
+60b7beabb6b6faf76bd8ff3f2a6fca03fb36ef04f59a9f67d26da5ddbc23bf20
+d82e99326a41155cfc7b4fedb80f69d361c31826743ec395b7aa83c10f9b5eed
+80044f3c258d7e2052d2cfe08f6046189bd0022ad8e6e7890cd31848b2477ecd
+095ba2ca9f4e9ad4bc8c7b2dae33d20d4cd01885c2f172052c1f8bcea593fff3
+4821540e79f626f4d7fa64c0bb4cc5485309e67071d0277a61369645ad3a4d8c
+fbfb1722ef6011fa6b2095aa4e5b32746f64c16af093df2e9bc175409949d440
+795f6f2b72a69435be1621154ade8d4dfb1bfbb0e28da8f08c76cd0521ff176a
+d2e7dd44916af6a1dfa3ecd6194189190b428cb56e2ef4a1bdc5d739ff1cbefc
+39eac4b5934d3707bd30caf67adb3612b37056151b45e9eb73c3bde4b4350148
+23c3ea6ad5be04886842418ea1872bc169f92a890670fe0b8bdd86421400b49d
+57e5ae8fdded5d706eebe573a5a172004e59b9c81fc990d2cf7036344c4335b1
+842a5c879354a84cc837d76b2babf981d4e60c857649054fc69fc59bf14aea72
+51210ac8babc95d58f4f3b497d5db3395a638fe339c5149f284b8dfd340c0b0c
+1984d43b5951b7bdb82423182dce8af2baad5eb25e037c5d976b534a3459f742
+751b5ed1c5bbe4915a7b281d1b1c806c58bbf900d5ca092fe2119ce099e52872
+0e5c8231dd6d7ed8fa5d2c953bd8bdc13781119d2b31a94bf39948d4b3688e58
+8aeae48e2d66e17935058ed16528d28e50e37bbeb1d155450364517018b1b44d
+bb0703befedb3681a2b609063302129628fcc24d88653589b431fb84e4ddb650
+c2f783594de613ebdad8a1324574cad1fd05a37844799928b4da778710e3a4cf
+b85afd46ed46ccad840106074f69ae7c306abf4cead6c66f4fbc0fdeef002570
+25305004426efca887ed5b4f2ef6dcb912ff552089f383d270c1312811b510f4
+11622aab22c5add53e1979fa80a9ac5ab80b3255c901cda700904e4254725a18
+6925971163b35469c55ddf9d36d2e690c988678e2be17e2668807c0fee64d264
+5a8f26899ceae3abc5553bc58674333d43f27d0ead9297619e8169554512d7f2
+9984c12dd44285a3d8a75dd20ebdb5280b95471bcbe5473447fcf750c3b061ba
+bf491a61adf487ccefc79cc514569978f12a7a3420ee046e1c28776c96c550e7
+fb0e2b46b3e57b2b8a6ae7d306fd0eaeb026beb5b13b8c980828f78905369fad
+aa7ac9c3b91df9a4d1be00b3aea709995849ae4ece16c126b99c3d0fc0bdc084
+f8486d70022e0d5a8e50a27e9439e37d3bc175c3a3bb19914a4bded2feb81ec1
+fa7e274b027f4f4bfb331bf4fcb58fcdd1b999a775bd2a9002e846d7fe61c6d2
+e29fedf3121af6edcef90f23f54b128efad5fcc3e2236e1f9f59218994460d1a
+f21eb9a2999501fc489873e9eafb986d9e9e780b4eddf332aa72697ec956f63a
+4307133ed0fd2dfafe283677469b7b14b155b17a8da4a81cbce56da716149124
+bb3b20fa7a2b64b58d6eab90dbaff1d560e5e5492f17615b7308cf7670f09a04
+6115d454937c733ed45b1156c2e7d0ed43c093d6416b91533637d5d5f649bca5
+50a5ca5522b0f8362042caa30a4bc87a4a4339710e2de9b2c0c84baebedd073f
+25cacf0e4c4bdba46f4c545e27d20536827ea4a4d5f5e19518fae6ba2d45b5e0
+b247f20752a795594d9ce548b5c0217ef480cc5a0be6794178fc7c017aa8a3bd
+74686310f635ae6153d9e18a0514882d4ccfe9d7dae9f24b393985e8da776880
+1d9a6515ed7bfad3cabd1e13f2a9be17d42dda60f38dc5dd5412b03b938bed86
+0f9cc900eba7eb281e619edc39b5413af1e242ab56171d3a01203c76788d9024
+2f72c89b7adb10f5caf6851acd3a4369972f796d5a1a9816023f5a454dbf5bfa
+5ea34c00df81a76fd79a0198e91ea01efbf7d89d78f9da5253250bb29770c4e8
+df955af85d48c33fbdff3845d6868920a3b09ceb0b7de798354e80d1f3ec05d6
+3ceeb37751ab5f9d5f7e682958235c0fb224551296108eeded2e000bf86193ad
+5f290f698375727743a699633867f03f2d7801b18627f25628c0b65ace0e766e
+ed22bae384ad0305bbba6a3cbb913641106259e2947e77caa437856febd8b604
+7621e8be93bf909cf3893cb2e0b4c75afabcac6ee9ebfa30dc6ba5e9bb572318
+ba844429bd3b5bec550ebf2b7a3776f11dcb71c930489a792bbad9f6a1679b6e
+22a32048d0652fe2e3c1dfebce17cf97281087ed892b5d02d83a97dba1b3b221
+4f52eaa45592670902f979905281d7e92e9bbeebb909d5152f97aa49068d3b2e
+8ce26b784b48936a3f8e569e5d96d8f3cf19335c7ca5f139815f26b62ef0be05
+2f436d3d7ad037451cef14021a15b0b10a07048ffd4cc4b4ca987cde5290318d
+7100cdfb146fa044c694c79f3ff3ac98f1067bcdddc054cb3867af0b7e340e39
+81cc10ba0763901afa3f492590664fbddc6fe2ef568d6765579eaa5ff1501a1e
+6b6b303c415557a70b4d60994b9841785a8791b51814f08ce8f0b048c690dc05
+fce223f392df0b93c030960e7a4717203c957f428fa52cf5d206eac92a7ec569
+b1353585ae6a14877eebbd8c402163bec563feab67ed764809e5205bc3f50fcb
+557af616a430215a7f9915872478572a2335fa3817abd8ff113020f023c513b4
+202a3015e22d173b07d87e6d6eeeb3e0b0891c00831843c6a2613c15bfbcaf5a
+8bad5d9e69a88eed3a1965e1876b223b74dedd8f16a2302c7f70ed7c8b5e60e2
+25c39cd88e4b559888007abc4f48955fe377c69b00be16bf9eec8248ebeb6808
+5a80b2f60ae03c29fa29b91f30efb4ca29bc51fb2bc09a7343d0b107ffd02a03
+b26ffb1c6b1d2b5adb3647d37bdb45420e8a115beadb142e3aeedbcc8d0ecd93
+8777fb9ee661d5db7088e3faf04e91f1865418e2723565fe2617d2d8e106a230
+a2dcb6a4502528d22457a4399cb7f9e4f788a03d6c8b5757cf59267fd86ac4f9
+21675f6da1a90156bbdfa77facf6df331491cd2cde707e509b8e5d03ba1b6781
+eacd2ac3eeabb5f5ac4d0d8f5b10676e7357557c23bd6412c625d7944302c969
+561c704f937fe5304e1704b20352a758d6237e52c4a356a08f9893743a5c20da
+6a817899bb2edbadbf4234e1ece52b9b3f3e29095f0975259c931b67595f0ce0
+db8e4ccd5f6fdfdda07663d252bd05fd4ca58fa54a9fa6acceabd97f2313c59d
+195cbc3bfb55f9050d5e3ec4e42f883635f18d17efb2a0ab333e09c2521705be
+aa147b6717c816e57d38adfb2f4658249a3a345b337251b7537cd305c6424dbf
+b204417f4c36086edaa8da348dc065aa5a7f68a0ad3e3676a7c240e76ddc8786
+96b56cd4e70c28c3009185ae13ad4e96c8522735074ad649cabf39201903e974
+12967a45b574790d727dc68222dff726fd162dbfee4964afbe6549abeead5264
+a033fb29e70f1d17fe58934bfdd5ee6defe6056ea4a0e39a39b7fc1a6da06713
+f952bc20c689bdddb94bd67997f60f31fa6239387089deee5b687455a5c06fa9
+fe941781f0d9835d8d020cc6286c2fb8ed5906eccffacadd71ee0b7c7b67d8c7
+aaa95f9cb24fd22bea989e0e0919a4ea35fac630a9090346da895bb5b6e1c1ba
+ff90f1e16665998ab7612444979edefd96f1f701d13950e0ca2daa7787735fc8
+4b268e36cba6d7de0506dc5353f3d13ad666cba8f8c56e27e44b57873adee581
+fafd1f33a85b6169d4794b1d73940c134f11dfde03ccc5709f6d806cfffdb6fd
+f9361520d0023ac6aa3c93b843d8cd8a652a665eb31d6b75d752e7679a9e1327
+d0adf92820acc78b0793b9f0307c776c201a408a883f99f9d2ade3960b1e62e2
+db5d6ca4115a028f87f77651c95bd71456ba087709827b05a80ff78746cd3c09
+72eec0baa7ebc8a05043e18e63517fb66e333973dfa6bc796af520e8efbae640
+a2f4b94f244d365b76fb3e229726dd7c61478dff4d616cdceaec1ad70d9cefd6
+0e9e6affa41f34b777da7174b3281acda204977bcedb3f5f9f0c5d77607237a6
+9d6780dd18cef875257fd719d237a35864498978239cc0933a9ad0fb8ac74f3d
+869fab0c30e8001a2df0ada8f56de43c5e9a7dc78220720dae05f0fff948adf9
+0e8319eafa3fc8e936c9c040b1498e7eafc36f03bb4cd11a6fed37b7a8d05b1d
+00b5f36799e9556526f5e5f2205dd641ee39a4bd6c8ec20a36473eadfe1a499e
+88284d2fb544b7bdb637868345ae4b3dca6bc0754bad59df4558d2d608faf166
+68daeac6bfb73db431a3146628d371c2d158a1ba65c8d2d47ceec7addae77864
+042ef587a6d6c04dce664bf83492d164d2fc00c1313c220bfdd7a30dede201c5
+1e84d9573c79235a8d847d0a4c231fe009058f5848c775e343c61835c7c8e025
+44dbe77ccfff9e9c950ace49091771604234e586c1335904da22349a847ade3c
+060aec69c2987eb1f3332d8b66e59be53edab3da137d59cc6efa0f579f8a1d03
+882c720c27834570c10bf892f79b30340ead8535881b11171b2040fb6637140b
+e927369f803a4ff311d78d7e68f4b5f8628fdcfa2cc376442d78e6f47cb378eb
+31f079902cd32d6aec688f02a7365b66797de1ea022afec2f3aae36fe01a3e5e
+6cc49c79ca23dc10ed8071eea3a0f8924a0dcc610f842e4e30c1104f859ac970
+06c7490195599c65393be11269c8dd7247c96d632523256f59edeb144329b8da
+b35303c922432e92394a95196dad464e35858f00e6a27320cf515b7b8af90d06
+82e89f09afb605862d14eab6a99218b3f66f11ea2f345629c402bd9aeb25e3e9
+8734a0ca4a814d824ee4ca5383c6eb8ff1458c767dd9b71530c5f01be2d2611c
+f9644c28f3f52ac748749b54eb652f76630e3a62b63a3562a54144c306beddfd
+557e154c7d4931bafe9a9136c3aae071b00e7204150cece0d45e10bd736b633c
+8abf3817168828ba17b23c8ef8ee35119c43cd7fe068e1f016aadc734d4338d7
+8abd60567f307d6ec471f99b03cc7b5e8140dc07f726303c2185590f9f2224c1
+52bf01b038ae1e963098a309edf98ce5ba1ab235e1190ba23732e42841b2bf69
+36560701e1653df36a29c8c3254d402d0140f5ffeda15ded4728c176e3f39c35
+48b5a2be25266587b52bda256f255c940adddbfcaf37ba2500213239f12dc7e0
+0b61230190a4380917962c18effc6774f6db08b799c5966ca7133fadfd7e2b25
+75116286d1c2a40545f973870cbb5cf97691afe304ca7b586f198c426a71dfa8
+cedbe3d94bda4267b9b5ff1454ac7d54f59c5d94588bb274601cee186b9ee892
+5f359ec5bc402442bba33b2663d564461ca130d7f1405b0467027ec1e27bbec4
+8d51c674c81b66ec733c4c57410956520f9c16708aaee0d9ae34f1050f6412c7
+7a23c8c3364dad8e407319772c9b201c49b75dea4685566d9c912acdb47aece3
+f9786e47398891c07b0269e74e2eb935991c9d7a835eb88bc04eb2b195ddeb02
+38dcd1e4bb773e269ad58fa9e2f5482db94a661f065bfafee3ccc1c812e9fac3
+31fd70975e3a0c72d37207d6c90f998103a821c35734f0153950e5f72ff6a8ac
+cb831f57267142dcc4079c915a4d01807fdc883e15a15b67e8cea1ef8d26e4fc
+b55c69418d7a4dcef51473a037050cc43e204fc7de2392905800993bbccaf459
+3bd84187fd1c295d111867930dd068988631f5d0abb9adc48b7ca8134f8a3baf
+3569f5ffbf19291022b3e13fdabbf0ddf64fef601cf97dc70ed2e4355de38f1c
+0ca81966adfc95cf03e794d875025af92bbeaacd9ee58b49c3f0b67d72b13a0a
+971076819781d91814c47a0a3b53f767b7630fb55df3d2706d834b127d56fc95
+b9b30ab934839b8324c9ee0147f0bbec998eb1b2939a2102c59c896b9f57c9b2
+fc138cfd94fd5c512bd83e30e8356e983cceb0de72224f78b3c8a98359e46f22
+c19ab808b70c4287397eade3b28a311244385d3d49fb80adc4f90f32366fcf42
+eaea8d05392164a48f03184563922bcbeb78376f512b9a289325a61c0c357e40
+bb3dbeebf870ec12ef096a8997bb6ec55251ad55bd881ebdda84056556380935
+b0b8eb1f74ef96bf02375a30dc53795da638252a12a2e9bc18bfd7ff5aa7a8f4
+4a6bb4a34f1c94a781a129fc975823bd16a6df7c5d75b7f6dff55ac5f82e3e2f
+572f339f48024e93f0c59fb1fc95bacf7bf5fd7c683c9b159c3b5d937c3a2110
+e78889021ebbbbe76b1f984317d310ea61f7b5cdb4ed1754a35adc9c6924c3e0
+2e3b157261eea5092e0e7a914a259eea2b14192343680a18710db9f82e54c920
+369587bcdeed8f8acb72d2565ca89ea92b6b58bb861012ccab7270200ed5cef3
+9bdc58f4831161e8ce4ef5c6fc839deb8216482d906d60c1a3292de191b40c79
+85529eae01de8fadd442ec8bfa775366070a9e193138a4c6f6eca7ff554c57a0
+19346015d6ed5dfe8b9dd876a207e7247deaa1e42a41c3edccb32d47e5fa97c0
+9bf3f8324a366856d6c6df8f295da2a9164a99b6e66adf4247dd79bbf54525dd
+bcf518651fd8b374cbca6ac532ed443a1c952ce148a67cc655d92b670ab76c64
+cba90089f1d252ab55d93cfd0ec1545e79b65c5337fc57e46ad6ddcf5ca56204
+867e467d3982d77c2e603fee7ec4b57bd8718e5be9203666459815b7428679b2
+134188b7c2c89f64b7426e0dde73f586a7a86a4cc4136bcd5b09b2482aaf3ea2
+6a9c99cdc852ae0a7262b57c06143f1a6528b02cdd69b9fd5edc635873997b4d
+7c5644daa467783e154ad0a787e72bf5a627f712267198d9368b480a4e764627
+b268d7f1500b8e155615bf9e59bedc125774802dcbe33451e222f6a9ba24afc1
+92933742c74822f138baac4bddcfbf447dea77a4e913028db069e802014b5d57
+b0c7d6b7a727742eebb6a7c7a2231c94d63fbe66fa8030f3b378006027ceb4b2
+74d8d75d001c7b4d0225ec9cb04ca7f5e1668b44682847a8b14dda4ecd87fda2
+6b1694a2810f90537c403ff242d0accc8b73fa0088d668fb4fd50c4a0b0aafe3
+0dddc6e893c1bb127147fd1b35254e2ef659f023cd826cbf5e400dfba85f4df9
+f70b30a42df485bf5dd6c620e37c82bedef5841131716bc5eeb40aefec8c0379
+f9348a1d7ad0618a422d85300bc0f4208a5b4baf9dd1f568da943f0023eec988
+21187716ec2104282a7fed77b0c5b01e78d5d9d5d99994a9f232859ce68a62a9
+e6960f557f153d7101dd98b7836d7841d3180be3b34a99d4434af82db181de42
+e7f3fd86d86678ea86c4ea4d0af845955141ca4f9266f3ef69c2ce9b73ae1558
+9dd98a8a0802572fba00fc509918a64f1dcabd06286039e75042d53d472ae66e
+38ecb6e6795e3dd12757255e786909f306fc17d14ed432f5107aac6cc50236b7
+d381ad2c4da239669d94cb276610a846e991f508a75e1a3a851be789b9a3f75b
+f5d7dfde15eadd55e7710d79b5a4127b5e9f85f6bceace031aa9ad412541848d
+59dd3f66886672db5d90f51fd15334eb973e64baa4181186cc3c090b2a5bbb70
+e9e1fd9420a31674e9e517b1dc0196fcb5624668785a65dfa60a0944386beda0
+66e2a3d871913d23001c0b5f22c4136fa48e6fbd636fe0bbc104cba53ecd15b7
+0034db9200070b7924ab31ea318cffc35cb44bbda45e04f64516b48bbaceed37
+56a2aaa5d5c0a2d06f71a5ca689c8c8afc991638fff960d060555d9ee7a13868
+434853e22d4d9aed6231039517aa713e67e7c08467c687a21bfb00e6c99c9b15
+51859fb8f437c77bca2b0fc97a36ee9b552645b83ddcd2ae48049085693c356c
+53b214b9216d5466852340dbb92eadc60bb6225d9c08bb9f5e9f50e40dfb7c12
+2b5126c6e11393d04691831af2707bf11e0c4e887511a59442469df76bc8eb2e
+d2e97d09b6b2f1b533ac64d85d454f57702af92cc88d5ddc46388d6c203ba06a
+f57846d420ef1727d97d964da29018245d91f1e37e3e3f9f04e02d997b0c28fe
+4c99293e87c978606c3a0c7ca1d121c60ac58fad627be407057eae2ebc2074dd
+fd2bd9fb017ad048ead3d1243b7634701508034a934c81a9f63a05b7319676d7
+bb9af94fbe826f84d4149e81b46424e482c8c1c655affecb4393177d768eaa24
+a68a71e4faf578e57865b15f459315a26ddf6e39bd3d16958a3a8cbeab793eaa
+533eaa3d89e78d292fe37f0c23e32abfd50b2c9fba8261331c66458340bb4cd5
+4e7a7cac3df5ca530fbffd93789357877ad2fe127377b899340416d6100e2165
+64c62ed803d484656ef5ff7587902285671f280de39228b9432ba46c3ecbdd23
+46222998ef3c528cec6da555eb72092d97664cf35ea21e31ffb70e8b8102ddf6
+0203d3dddaa7593a8dc0b1c6af796d891e80860e6bba501e4c38dd5c6b5a6f35
+a38ef0c7cd4ab7cce0e17fae913eec2572565070169cce8517c37b21699fe4d3
+58439dcec0066047253d42a74ba564d2fc7ccf34b3b4e77fbac09d950c3c134c
+5671c64b9964c124d123a299d2070826fde61b7f637bf87739e7a0de70ef82af
+c901821eabb31969a27596e9826dd506912d05918ddd2981d5fb153526683f83
+04bbb13678af6d8a65aaae58240688caf7a8419f7bacf078dae7495ab646fc40
+c9004cbabf4c76143e33fe49fed460a102129b9f6cdda0797e53df9b9db99890
+7dc89ecb49ee18cd7556b44b096c9337f6a5618b589c6d7c87ea0f292bb446fe
+c901b120180e3b514e3e7e32e52028a30cfd6879068a68b7ef5db202f575a6f3
+52748c45a3509d747d672b446efd09b0dcab7b3f8808c011a0470eb5c9d8d632
+0f413186fdf227c7f9c45c403ef93db5fb63819de4ca368f1b9387dfb0f039e8
+2c47f56fa0d3073c901393803ae628eba7313821a01b07918efa4d901aca044e
+90d0227813c537cdc2c906e44140bdcb8717e95b7597ad7c01b51b7dac732e65
+fa3870fe8865ae6dbc96b5a984e2e363c4b67a3a07fe4eb42044112ecfff74f4
+09329f03a55e1f57656f88a08e597bfccb97a2b0bc0c26db9aa5bc5f1d1bafa3
+65f32c6ae5de5f798233ed6878583d8335e8988021438e992be94f6b73608413
+b83693b45e539261664f851652bd9458e643bd60628d0acb48a0edd350749e13
+9e480bb10cfb50b4fa0e37348d2f5ebc3e3f3457128b9793ef1359076da9e92d
+e3bbd59ccc0c0327867bd7895a19cb93fdcd6ef8d459ccabadb1e0bc6896b456
+b13cab755da348b349da1b485947a23d05e9bb5dfeb8300f8fef30d7f09d288f
+681ee6e23d21f76f806440680e7913d323a264fd6d69d4be33527e050856f8d7
+20fcf33f81e5021271c2cefd7b1c6a2dc9e207140be0030fd866fb65e33cf5fb
+8879dd70eed5e887537c45d136be8bb191bd9dc4cea400137903a12b66dcd359
+9b6c2e43306759110af0878c8f37c8daf847657c2bd68d5c3ca105b332d18d5e
+03269eedc1ae92f4e45c79915981c1f32b5a39c46c358708460301ca4298bbb4
+5b91e0d45fd1de756c6885545bdf5bce1cd40bb0c92c481a629b0d8dafb6b895
+995c6777d9355af0b03720d3c7456ad60eaa5a80549bb54c0820e000eb30a3e6
+f81c1cdc55b70d902a432d13a233c63ae54f98718d6ddae3c6aabebc65760e59
+d87abb67a5171a4ec2b2377bb5a39f
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+%%EndResource
+/F496_0 /AMYDOG+NimbusRomNo9L-ReguItal 1 1
+[ /.notdef/.notdef/fi/fl/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+ /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash
+ /zero/one/two/three/four/five/six/seven
+ /eight/nine/colon/semicolon/less/equal/greater/question
+ /at/A/B/C/D/E/F/G
+ /H/I/J/K/L/M/N/O
+ /P/Q/R/S/T/U/V/W
+ /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore
+ /quoteleft/a/b/c/d/e/f/g
+ /h/i/j/k/l/m/n/o
+ /p/q/r/s/t/u/v/w
+ /x/y/z/braceleft/bar/braceright/asciitilde/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/bullet/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section
+ /currency/copyright/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl
+ /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet
+ /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
+ /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent
+ /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron
+ /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+ /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
+ /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef
+ /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef
+ /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]
+pdfMakeFont
+false pdfSetup
+%%EndSetup
+%%Page: 1 1
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+117.435 701.916 Td
+/F9_0 24.7902 Tf
+(bzip2)
+[15.146812
+0
+12.3951
+0
+6.891676
+0
+15.146812
+0
+13.783351
+0] Tj
+-278 TJm
+(and)
+[13.783351
+0
+15.146812
+0
+15.146812
+0] Tj
+-278 TJm
+(libbzip2,)
+[6.891676
+0
+6.891676
+0
+15.146812
+0
+15.146812
+0
+12.3951
+0
+6.891676
+0
+15.146812
+0
+13.783351
+0
+6.891676
+0] Tj
+-278 TJm
+(ver)
+[13.783351
+0
+13.783351
+0
+9.643388
+0] Tj
+15 TJm
+(sion)
+[13.783351
+0
+6.891676
+0
+15.146812
+0
+15.146812
+0] Tj
+-278 TJm
+(1.0.8)
+[13.783351
+0
+6.891676
+0
+13.783351
+0
+6.891676
+0
+13.783351
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+90.493 661.631 Td
+/F9_0 20.6585 Tf
+(A)
+[14.915437
+0] Tj
+-278 TJm
+(pr)
+[12.622344
+0
+8.036157
+0] Tj
+20 TJm
+(ogram)
+[12.622344
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0
+18.365407
+0] Tj
+-278 TJm
+(and)
+[11.486126
+0
+12.622344
+0
+12.622344
+0] Tj
+-278 TJm
+(librar)
+[5.743063
+0
+5.743063
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0
+8.036157
+0] Tj
+-10 TJm
+(y)
+[11.486126
+0] Tj
+-278 TJm
+(f)
+[6.879281
+0] Tj
+20 TJm
+(or)
+[12.622344
+0
+8.036157
+0] Tj
+-278 TJm
+(data)
+[12.622344
+0
+11.486126
+0
+6.879281
+0
+11.486126
+0] Tj
+-278 TJm
+(compression)
+[11.486126
+0
+12.622344
+0
+18.365407
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0
+11.486126
+0
+11.486126
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.946 503.285 Td
+/F9_0 11.9552 Tf
+(J)
+[6.647091
+0] Tj
+20 TJm
+(ulian)
+[7.304627
+0
+3.323546
+0
+3.323546
+0
+6.647091
+0
+7.304627
+0] Tj
+-278 TJm
+(Se)
+[7.974118
+0
+6.647091
+0] Tj
+15 TJm
+(war)
+[9.301146
+0
+6.647091
+0
+4.650573
+0] Tj
+20 TJm
+(d,)
+[7.304627
+0
+3.323546
+0] Tj
+-278 TJm
+(https://sour)
+[7.304627
+0
+3.981082
+0
+3.981082
+0
+7.304627
+0
+6.647091
+0
+3.981082
+0
+3.323546
+0
+3.323546
+0
+6.647091
+0
+7.304627
+0
+7.304627
+0
+4.650573
+0] Tj
+20 TJm
+(ce)
+[6.647091
+0
+6.647091
+0] Tj
+15 TJm
+(ware)
+[9.301146
+0
+6.647091
+0
+4.650573
+0
+6.647091
+0] Tj
+-20 TJm
+(.or)
+[3.323546
+0
+7.304627
+0
+4.650573
+0] Tj
+15 TJm
+(g/bzip2/)
+[7.304627
+0
+3.323546
+0
+7.304627
+0
+5.9776
+0
+3.323546
+0
+7.304627
+0
+6.647091
+0
+3.323546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 2 2
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 709.534 Td
+/F9_0 14.3462 Tf
+(bzip2)
+[8.765528
+0
+7.1731
+0
+3.988244
+0
+8.765528
+0
+7.976487
+0] Tj
+-489 TJm
+(and)
+[7.976487
+0
+8.765528
+0
+8.765528
+0] Tj
+-488 TJm
+(libbzip2,)
+[3.988244
+0
+3.988244
+0
+8.765528
+0
+8.765528
+0
+7.1731
+0
+3.988244
+0
+8.765528
+0
+7.976487
+0
+3.988244
+0] Tj
+-542 TJm
+(ver)
+[7.976487
+0
+7.976487
+0
+5.580672
+0] Tj
+15 TJm
+(sion)
+[7.976487
+0
+3.988244
+0
+8.765528
+0
+8.765528
+0] Tj
+-488 TJm
+(1.0.8:)
+[7.976487
+0
+3.988244
+0
+7.976487
+0
+3.988244
+0
+7.976487
+0
+4.777285
+0] Tj
+-766 TJm
+(A)
+[10.357956
+0] Tj
+-488 TJm
+(pr)
+[8.765528
+0
+5.580672
+0] Tj
+20 TJm
+(ogram)
+[8.765528
+0
+8.765528
+0
+5.580672
+0
+7.976487
+0
+12.753772
+0] Tj
+-489 TJm
+(and)
+[7.976487
+0
+8.765528
+0
+8.765528
+0] Tj
+-489 TJm
+(librar)
+[3.988244
+0
+3.988244
+0
+8.765528
+0
+5.580672
+0
+7.976487
+0
+5.580672
+0] Tj
+-10 TJm
+(y)
+[7.976487
+0] Tj
+-488 TJm
+(f)
+[4.777285
+0] Tj
+20 TJm
+(or)
+[8.765528
+0
+5.580672
+0] Tj
+-489 TJm
+(data)
+[8.765528
+0
+7.976487
+0
+4.777285
+0
+7.976487
+0] Tj
+72 692.319 Td
+(compression)
+[7.976487
+0
+8.765528
+0
+12.753772
+0
+8.765528
+0
+5.580672
+0
+7.976487
+0
+7.976487
+0
+7.976487
+0
+3.988244
+0
+8.765528
+0
+8.765528
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 680.364 Td
+/F15_0 9.9626 Tf
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(Julian)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(Se)
+[5.539206
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ard)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 663.427 Td
+(V)
+[7.192997
+0] Tj
+111 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(1.0.8)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(13)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(July)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(2019)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 651.472 Td
+(Cop)
+[6.645054
+0
+4.9813
+0
+4.9813
+0] Tj
+10 TJm
+(yright)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(\251)
+[7.571576
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(1996-2019)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(Julian)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(Se)
+[5.539206
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ard)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 633.938 Td
+/F15_0 7.9701 Tf
+(This)
+[4.869731
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(program,)
+[3.98505
+0
+2.654043
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+6.200738
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.151 633.938 Td
+/F17_0 7.9701 Tf
+(bzip2)
+[4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.061 633.938 Td
+/F15_0 7.9701 Tf
+(,)
+[1.992525
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(associated)
+[3.538724
+0
+3.100369
+0
+3.100369
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(library)
+[2.215688
+0
+2.215688
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+2.654043
+0
+3.98505
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.768 633.938 Td
+/F17_0 7.9701 Tf
+(libbzip2)
+[4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+255.025 633.938 Td
+/F15_0 7.9701 Tf
+(,)
+[1.992525
+0] Tj
+-250 TJm
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(all)
+[3.538724
+0
+2.215688
+0
+2.215688
+0] Tj
+-250 TJm
+(documentation,)
+[3.98505
+0
+3.98505
+0
+3.538724
+0
+3.98505
+0
+6.200738
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+1.992525
+0] Tj
+-250 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-250 TJm
+(cop)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+10 TJm
+(yright)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(\251)
+[6.057276
+0] Tj
+-250 TJm
+(1996-2019)
+[3.98505
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(Julian)
+[3.100369
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(Se)
+[4.431376
+0
+3.538724
+0] Tj
+25 TJm
+(w)
+[5.754412
+0] Tj
+10 TJm
+(ard.)
+[3.538724
+0
+2.654043
+0
+3.98505
+0
+1.992525
+0] Tj
+-310 TJm
+(All)
+[5.754412
+0
+2.215688
+0
+2.215688
+0] Tj
+-250 TJm
+(rights)
+[2.654043
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(reserv)
+[2.654043
+0
+3.538724
+0
+3.100369
+0
+3.538724
+0
+2.654043
+0
+3.98505
+0] Tj
+15 TJm
+(ed.)
+[3.538724
+0
+3.98505
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 616.404 Td
+(Redistrib)
+[5.316057
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0
+2.215688
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0] Tj
+20 TJm
+(ution)
+[3.98505
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(use)
+[3.98505
+0
+3.100369
+0
+3.538724
+0] Tj
+-250 TJm
+(in)
+[2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(source)
+[3.100369
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.538724
+0] Tj
+-250 TJm
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(binary)
+[3.98505
+0
+2.215688
+0
+3.98505
+0
+3.538724
+0
+2.654043
+0
+3.98505
+0] Tj
+-250 TJm
+(forms,)
+[2.654043
+0
+3.98505
+0
+2.654043
+0
+6.200738
+0
+3.100369
+0
+1.992525
+0] Tj
+-250 TJm
+(with)
+[5.754412
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(or)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(without)
+[5.754412
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(modi\002cation,)
+[6.200738
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0
+4.431376
+0
+3.538724
+0
+3.538724
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+1.992525
+0] Tj
+-250 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-250 TJm
+(permitted)
+[3.98505
+0
+3.538724
+0
+2.654043
+0
+6.200738
+0
+2.215688
+0
+2.215688
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(pro)
+[3.98505
+0
+2.654043
+0
+3.98505
+0] Tj
+15 TJm
+(vided)
+[3.98505
+0
+2.215688
+0
+3.98505
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(that)
+[2.215688
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(follo)
+[2.654043
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0] Tj
+25 TJm
+(wing)
+[5.754412
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(conditions)
+[3.538724
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.100369
+0] Tj
+-250 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-250 TJm
+(met:)
+[6.200738
+0
+3.538724
+0
+2.215688
+0
+2.215688
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 590.899 Td
+(\225)
+[2.789535
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Redistrib)
+[5.316057
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0
+2.215688
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0] Tj
+20 TJm
+(utions)
+[3.98505
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.100369
+0] Tj
+-250 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(source)
+[3.100369
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.538724
+0] Tj
+-250 TJm
+(code)
+[3.538724
+0
+3.98505
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(must)
+[6.200738
+0
+3.98505
+0
+3.100369
+0
+2.215688
+0] Tj
+-250 TJm
+(retain)
+[2.654043
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(abo)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+15 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(e)
+[3.538724
+0] Tj
+-250 TJm
+(cop)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+10 TJm
+(yright)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(notice,)
+[3.98505
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+3.538724
+0
+3.538724
+0
+1.992525
+0] Tj
+-250 TJm
+(this)
+[2.215688
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(list)
+[2.215688
+0
+2.215688
+0
+3.100369
+0
+2.215688
+0] Tj
+-250 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(conditions)
+[3.538724
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.100369
+0] Tj
+-250 TJm
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(follo)
+[2.654043
+0
+3.98505
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0] Tj
+25 TJm
+(wing)
+[5.754412
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(disclaimer)
+[3.98505
+0
+2.215688
+0
+3.100369
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+6.200738
+0
+3.538724
+0
+2.654043
+0] Tj
+55 TJm
+(.)
+[1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 573.365 Td
+(\225)
+[2.789535
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[4.869731
+0
+3.98505
+0
+3.538724
+0] Tj
+-285 TJm
+(origin)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0] Tj
+-284 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-285 TJm
+(this)
+[2.215688
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-285 TJm
+(softw)
+[3.100369
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+5.754412
+0] Tj
+10 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-284 TJm
+(must)
+[6.200738
+0
+3.98505
+0
+3.100369
+0
+2.215688
+0] Tj
+-285 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-285 TJm
+(be)
+[3.98505
+0
+3.538724
+0] Tj
+-285 TJm
+(misrepresente)
+[6.200738
+0
+2.215688
+0
+3.100369
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.100369
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0] Tj
+1 TJm
+(d;)
+[3.98505
+0
+2.215688
+0] Tj
+-303 TJm
+(you)
+[3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+-284 TJm
+(must)
+[6.200738
+0
+3.98505
+0
+3.100369
+0
+2.215688
+0] Tj
+-285 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-285 TJm
+(claim)
+[3.538724
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+6.200738
+0] Tj
+-284 TJm
+(that)
+[2.215688
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0] Tj
+-285 TJm
+(you)
+[3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+-285 TJm
+(wrote)
+[5.754412
+0
+2.654043
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0] Tj
+-284 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-285 TJm
+(original)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0] Tj
+-285 TJm
+(softw)
+[3.100369
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+5.754412
+0] Tj
+10 TJm
+(are.)
+[3.538724
+0
+2.654043
+0
+3.538724
+0
+1.992525
+0] Tj
+-828 TJm
+(If)
+[2.654043
+0
+2.654043
+0] Tj
+-285 TJm
+(you)
+[3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+-285 TJm
+(use)
+[3.98505
+0
+3.100369
+0
+3.538724
+0] Tj
+-284 TJm
+(this)
+[2.215688
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-285 TJm
+(softw)
+[3.100369
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+5.754412
+0] Tj
+10 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-285 TJm
+(in)
+[2.215688
+0
+3.98505
+0] Tj
+-284 TJm
+(a)
+[3.538724
+0] Tj
+79.97 563.801 Td
+(product,)
+[3.98505
+0
+2.654043
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0
+1.992525
+0] Tj
+-250 TJm
+(an)
+[3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(ackno)
+[3.538724
+0
+3.538724
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+25 TJm
+(wledgment)
+[5.754412
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0
+3.98505
+0
+6.200738
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(in)
+[2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(product)
+[3.98505
+0
+2.654043
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0] Tj
+-250 TJm
+(documentation)
+[3.98505
+0
+3.98505
+0
+3.538724
+0
+3.98505
+0
+6.200738
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(w)
+[5.754412
+0] Tj
+10 TJm
+(ould)
+[3.98505
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(be)
+[3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(appreciated)
+[3.538724
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(b)
+[3.98505
+0] Tj
+20 TJm
+(ut)
+[3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(is)
+[2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(required.)
+[2.654043
+0
+3.538724
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 546.267 Td
+(\225)
+[2.789535
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Altered)
+[5.754412
+0
+2.215688
+0
+2.215688
+0
+3.538724
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(source)
+[3.100369
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.538724
+0] Tj
+-250 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(ersions)
+[3.538724
+0
+2.654043
+0
+3.100369
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.100369
+0] Tj
+-250 TJm
+(must)
+[6.200738
+0
+3.98505
+0
+3.100369
+0
+2.215688
+0] Tj
+-250 TJm
+(be)
+[3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(plainly)
+[3.98505
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(mark)
+[6.200738
+0
+3.538724
+0
+2.654043
+0
+3.98505
+0] Tj
+10 TJm
+(ed)
+[3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(as)
+[3.538724
+0
+3.100369
+0] Tj
+-250 TJm
+(such,)
+[3.100369
+0
+3.98505
+0
+3.538724
+0
+3.98505
+0
+1.992525
+0] Tj
+-250 TJm
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(must)
+[6.200738
+0
+3.98505
+0
+3.100369
+0
+2.215688
+0] Tj
+-250 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(be)
+[3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(misrepresented)
+[6.200738
+0
+2.215688
+0
+3.100369
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.100369
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(as)
+[3.538724
+0
+3.100369
+0] Tj
+-250 TJm
+(being)
+[3.98505
+0
+3.538724
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(original)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0] Tj
+-250 TJm
+(softw)
+[3.100369
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+5.754412
+0] Tj
+10 TJm
+(are.)
+[3.538724
+0
+2.654043
+0
+3.538724
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+73.993 528.733 Td
+(\225)
+[2.789535
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[4.869731
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(name)
+[3.98505
+0
+3.538724
+0
+6.200738
+0
+3.538724
+0] Tj
+-250 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(author)
+[3.538724
+0
+3.98505
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(may)
+[6.200738
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(be)
+[3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(used)
+[3.98505
+0
+3.100369
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(to)
+[2.215688
+0
+3.98505
+0] Tj
+-250 TJm
+(endorse)
+[3.538724
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.100369
+0
+3.538724
+0] Tj
+-250 TJm
+(or)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(promote)
+[3.98505
+0
+2.654043
+0
+3.98505
+0
+6.200738
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0] Tj
+-250 TJm
+(products)
+[3.98505
+0
+2.654043
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+3.538724
+0
+2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(deri)
+[3.98505
+0
+3.538724
+0
+2.654043
+0
+2.215688
+0] Tj
+25 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(ed)
+[3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(from)
+[2.654043
+0
+2.654043
+0
+3.98505
+0
+6.200738
+0] Tj
+-250 TJm
+(this)
+[2.215688
+0
+3.98505
+0
+2.215688
+0
+3.100369
+0] Tj
+-250 TJm
+(softw)
+[3.100369
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+5.754412
+0] Tj
+10 TJm
+(are)
+[3.538724
+0
+2.654043
+0
+3.538724
+0] Tj
+-250 TJm
+(without)
+[5.754412
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(speci\002c)
+[3.100369
+0
+3.98505
+0
+3.538724
+0
+3.538724
+0
+2.215688
+0
+4.431376
+0
+3.538724
+0] Tj
+-250 TJm
+(prior)
+[3.98505
+0
+2.654043
+0
+2.215688
+0
+3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(written)
+[5.754412
+0
+2.654043
+0
+2.215688
+0
+2.215688
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-250 TJm
+(permission.)
+[3.98505
+0
+3.538724
+0
+2.654043
+0
+6.200738
+0
+2.215688
+0
+3.100369
+0
+3.100369
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 511.198 Td
+(THIS)
+[4.869731
+0
+5.754412
+0
+2.654043
+0
+4.431376
+0] Tj
+-401 TJm
+(SOFTW)
+[4.431376
+0
+5.754412
+0
+4.431376
+0
+4.869731
+0
+7.523774
+0] Tj
+120 TJm
+(ARE)
+[5.754412
+0
+5.316057
+0
+4.869731
+0] Tj
+-401 TJm
+(IS)
+[2.654043
+0
+4.431376
+0] Tj
+-400 TJm
+(PR)
+[4.431376
+0
+5.316057
+0] Tj
+40 TJm
+(O)
+[5.754412
+0] Tj
+50 TJm
+(VIDED)
+[5.754412
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0] Tj
+-401 TJm
+(BY)
+[5.316057
+0
+5.754412
+0] Tj
+-401 TJm
+(THE)
+[4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-401 TJm
+(A)
+[5.754412
+0] Tj
+55 TJm
+(UTHOR)
+[5.754412
+0
+4.869731
+0
+5.754412
+0
+5.754412
+0
+5.316057
+0] Tj
+-401 TJm
+("AS)
+[3.251801
+0
+5.754412
+0
+4.431376
+0] Tj
+-401 TJm
+(IS")
+[2.654043
+0
+4.431376
+0
+3.251801
+0] Tj
+-401 TJm
+(AND)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-400 TJm
+(ANY)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-401 TJm
+(EXPRESS)
+[4.869731
+0
+5.754412
+0
+4.431376
+0
+5.316057
+0
+4.869731
+0
+4.431376
+0
+4.431376
+0] Tj
+-401 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-401 TJm
+(IMPLIED)
+[2.654043
+0
+7.085419
+0
+4.431376
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+-401 TJm
+(W)
+[7.523774
+0] Tj
+120 TJm
+(ARRANTIES,)
+[5.754412
+0
+5.316057
+0
+5.316057
+0
+5.754412
+0
+5.754412
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+4.431376
+0
+1.992525
+0] Tj
+-401 TJm
+(INCLUDING,)
+[2.654043
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0
+5.754412
+0
+5.754412
+0
+2.654043
+0
+5.754412
+0
+5.754412
+0
+1.992525
+0] Tj
+-401 TJm
+(B)
+[5.316057
+0] Tj
+11 TJm
+(UT)
+[5.754412
+0
+4.869731
+0] Tj
+72 501.634 Td
+(NO)
+[5.754412
+0
+5.754412
+0] Tj
+40 TJm
+(T)
+[4.869731
+0] Tj
+-304 TJm
+(LIMITED)
+[4.869731
+0
+2.654043
+0
+7.085419
+0
+2.654043
+0
+4.869731
+0
+4.869731
+0
+5.754412
+0] Tj
+-304 TJm
+(T)
+[4.869731
+0] Tj
+18 TJm
+(O,)
+[5.754412
+0
+1.992525
+0] Tj
+-305 TJm
+(THE)
+[4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-304 TJm
+(IMPLIED)
+[2.654043
+0
+7.085419
+0
+4.431376
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+-304 TJm
+(W)
+[7.523774
+0] Tj
+120 TJm
+(ARRANTIES)
+[5.754412
+0
+5.316057
+0
+5.316057
+0
+5.754412
+0
+5.754412
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+4.431376
+0] Tj
+-304 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-304 TJm
+(MERCHANT)
+[7.085419
+0
+4.869731
+0
+5.316057
+0
+5.316057
+0
+5.754412
+0
+5.754412
+0
+5.754412
+0
+4.869731
+0] Tj
+93 TJm
+(ABILITY)
+[5.754412
+0
+5.316057
+0
+2.654043
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+-304 TJm
+(AND)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-305 TJm
+(FITNESS)
+[4.431376
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+4.431376
+0
+4.431376
+0] Tj
+-304 TJm
+(FOR)
+[4.431376
+0
+5.754412
+0
+5.316057
+0] Tj
+-304 TJm
+(A)
+[5.754412
+0] Tj
+-304 TJm
+(P)
+[4.431376
+0] Tj
+92 TJm
+(AR)
+[5.754412
+0
+5.316057
+0] Tj
+60 TJm
+(TICULAR)
+[4.869731
+0
+2.654043
+0
+5.316057
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0
+5.316057
+0] Tj
+-304 TJm
+(PURPOSE)
+[4.431376
+0
+5.754412
+0
+5.316057
+0
+4.431376
+0
+5.754412
+0
+4.431376
+0
+4.869731
+0] Tj
+-304 TJm
+(ARE)
+[5.754412
+0
+5.316057
+0
+4.869731
+0] Tj
+-305 TJm
+(DIS)
+[5.754412
+0
+2.654043
+0
+4.431376
+0] Tj
+1 TJm
+(-)
+[2.654043
+0] Tj
+72 492.07 Td
+(CLAIMED.)
+[5.316057
+0
+4.869731
+0
+5.754412
+0
+2.654043
+0
+7.085419
+0
+4.869731
+0
+5.754412
+0
+1.992525
+0] Tj
+-576 TJm
+(IN)
+[2.654043
+0
+5.754412
+0] Tj
+-287 TJm
+(NO)
+[5.754412
+0
+5.754412
+0] Tj
+-288 TJm
+(EVENT)
+[4.869731
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-288 TJm
+(SHALL)
+[4.431376
+0
+5.754412
+0
+5.754412
+0
+4.869731
+0
+4.869731
+0] Tj
+-288 TJm
+(THE)
+[4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-287 TJm
+(A)
+[5.754412
+0] Tj
+55 TJm
+(UTHOR)
+[5.754412
+0
+4.869731
+0
+5.754412
+0
+5.754412
+0
+5.316057
+0] Tj
+-288 TJm
+(BE)
+[5.316057
+0
+4.869731
+0] Tj
+-288 TJm
+(LIABLE)
+[4.869731
+0
+2.654043
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0
+4.869731
+0] Tj
+-288 TJm
+(FOR)
+[4.431376
+0
+5.754412
+0
+5.316057
+0] Tj
+-288 TJm
+(ANY)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-287 TJm
+(DIRECT)
+[5.754412
+0
+2.654043
+0
+5.316057
+0
+4.869731
+0
+5.316057
+0
+4.869731
+0] Tj
+74 TJm
+(,)
+[1.992525
+0] Tj
+-288 TJm
+(INDIRECT)
+[2.654043
+0
+5.754412
+0
+5.754412
+0
+2.654043
+0
+5.316057
+0
+4.869731
+0
+5.316057
+0
+4.869731
+0] Tj
+74 TJm
+(,)
+[1.992525
+0] Tj
+-288 TJm
+(INCIDENT)
+[2.654043
+0
+5.754412
+0
+5.316057
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+93 TJm
+(AL,)
+[5.754412
+0
+4.869731
+0
+1.992525
+0] Tj
+-288 TJm
+(SPECIAL,)
+[4.431376
+0
+4.431376
+0
+4.869731
+0
+5.316057
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0
+1.992525
+0] Tj
+-288 TJm
+(EXEMPLAR)
+[4.869731
+0
+5.754412
+0
+4.869731
+0
+7.085419
+0
+4.431376
+0
+4.869731
+0
+5.754412
+0
+5.316057
+0] Tj
+65 TJm
+(Y)
+[5.754412
+0] Tj
+129 TJm
+(,)
+[1.992525
+0] Tj
+72 482.506 Td
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-299 TJm
+(CONSEQ)
+[5.316057
+0
+5.754412
+0
+5.754412
+0
+4.431376
+0
+4.869731
+0
+5.754412
+0] Tj
+10 TJm
+(UENTIAL)
+[5.754412
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0] Tj
+-300 TJm
+(D)
+[5.754412
+0] Tj
+40 TJm
+(AMA)
+[5.754412
+0
+7.085419
+0
+5.754412
+0] Tj
+40 TJm
+(GES)
+[5.754412
+0
+4.869731
+0
+4.431376
+0] Tj
+-299 TJm
+(\(INCLUDING,)
+[2.654043
+0
+2.654043
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0
+5.754412
+0
+5.754412
+0
+2.654043
+0
+5.754412
+0
+5.754412
+0
+1.992525
+0] Tj
+-299 TJm
+(B)
+[5.316057
+0] Tj
+10 TJm
+(UT)
+[5.754412
+0
+4.869731
+0] Tj
+-299 TJm
+(NO)
+[5.754412
+0
+5.754412
+0] Tj
+40 TJm
+(T)
+[4.869731
+0] Tj
+-300 TJm
+(LIMITED)
+[4.869731
+0
+2.654043
+0
+7.085419
+0
+2.654043
+0
+4.869731
+0
+4.869731
+0
+5.754412
+0] Tj
+-299 TJm
+(T)
+[4.869731
+0] Tj
+18 TJm
+(O,)
+[5.754412
+0
+1.992525
+0] Tj
+-299 TJm
+(PR)
+[4.431376
+0
+5.316057
+0] Tj
+40 TJm
+(OCUREMENT)
+[5.754412
+0
+5.316057
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0
+7.085419
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-299 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-300 TJm
+(SUBSTITUTE)
+[4.431376
+0
+5.754412
+0
+5.316057
+0
+4.431376
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+4.869731
+0] Tj
+-299 TJm
+(GOODS)
+[5.754412
+0
+5.754412
+0
+5.754412
+0
+5.754412
+0
+4.431376
+0] Tj
+-299 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-300 TJm
+(SER)
+[4.431376
+0
+4.869731
+0
+5.316057
+0] Tj
+80 TJm
+(VICES)
+[5.754412
+0
+2.654043
+0
+5.316057
+0
+4.869731
+0
+4.431376
+0] Tj
+1 TJm
+(;)
+[2.215688
+0] Tj
+72 472.942 Td
+(LOSS)
+[4.869731
+0
+5.754412
+0
+4.431376
+0
+4.431376
+0] Tj
+-360 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-360 TJm
+(USE,)
+[5.754412
+0
+4.431376
+0
+4.869731
+0
+1.992525
+0] Tj
+-360 TJm
+(D)
+[5.754412
+0] Tj
+40 TJm
+(A)
+[5.754412
+0] Tj
+111 TJm
+(T)
+[4.869731
+0] Tj
+93 TJm
+(A,)
+[5.754412
+0
+1.992525
+0] Tj
+-360 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-359 TJm
+(PR)
+[4.431376
+0
+5.316057
+0] Tj
+40 TJm
+(OFITS;)
+[5.754412
+0
+4.431376
+0
+2.654043
+0
+4.869731
+0
+4.431376
+0
+2.215688
+0] Tj
+-360 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-360 TJm
+(B)
+[5.316057
+0] Tj
+10 TJm
+(USINESS)
+[5.754412
+0
+4.431376
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0
+4.431376
+0
+4.431376
+0] Tj
+-360 TJm
+(INTERR)
+[2.654043
+0
+5.754412
+0
+4.869731
+0
+4.869731
+0
+5.316057
+0
+5.316057
+0] Tj
+40 TJm
+(UPTION\))
+[5.754412
+0
+4.431376
+0
+4.869731
+0
+2.654043
+0
+5.754412
+0
+5.754412
+0
+2.654043
+0] Tj
+-360 TJm
+(HO)
+[5.754412
+0
+5.754412
+0] Tj
+35 TJm
+(WEVER)
+[7.523774
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+5.316057
+0] Tj
+-360 TJm
+(CA)
+[5.316057
+0
+5.754412
+0] Tj
+55 TJm
+(USED)
+[5.754412
+0
+4.431376
+0
+4.869731
+0
+5.754412
+0] Tj
+-359 TJm
+(AND)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-360 TJm
+(ON)
+[5.754412
+0
+5.754412
+0] Tj
+-360 TJm
+(ANY)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-360 TJm
+(THEOR)
+[4.869731
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0
+5.316057
+0] Tj
+65 TJm
+(Y)
+[5.754412
+0] Tj
+-360 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-360 TJm
+(LIABI)
+[4.869731
+0
+2.654043
+0
+5.754412
+0
+5.316057
+0
+2.654043
+0] Tj
+1 TJm
+(LITY)
+[4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+128 TJm
+(,)
+[1.992525
+0] Tj
+72 463.378 Td
+(WHETHER)
+[7.523774
+0
+5.754412
+0
+4.869731
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+5.316057
+0] Tj
+-247 TJm
+(IN)
+[2.654043
+0
+5.754412
+0] Tj
+-247 TJm
+(CONTRA)
+[5.316057
+0
+5.754412
+0
+5.754412
+0
+4.869731
+0
+5.316057
+0
+5.754412
+0] Tj
+40 TJm
+(CT)
+[5.316057
+0
+4.869731
+0] Tj
+74 TJm
+(,)
+[1.992525
+0] Tj
+-247 TJm
+(STRICT)
+[4.431376
+0
+4.869731
+0
+5.316057
+0
+2.654043
+0
+5.316057
+0
+4.869731
+0] Tj
+-247 TJm
+(LIABILITY)
+[4.869731
+0
+2.654043
+0
+5.754412
+0
+5.316057
+0
+2.654043
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+129 TJm
+(,)
+[1.992525
+0] Tj
+-247 TJm
+(O)
+[5.754412
+0] Tj
+1 TJm
+(R)
+[5.316057
+0] Tj
+-247 TJm
+(T)
+[4.869731
+0] Tj
+18 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+60 TJm
+(T)
+[4.869731
+0] Tj
+-247 TJm
+(\(INCLUDING)
+[2.654043
+0
+2.654043
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0
+5.754412
+0
+5.754412
+0
+2.654043
+0
+5.754412
+0
+5.754412
+0] Tj
+-247 TJm
+(NEGLIGENCE)
+[5.754412
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+2.654043
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0
+5.316057
+0
+4.869731
+0] Tj
+-247 TJm
+(OR)
+[5.754412
+0
+5.316057
+0] Tj
+-247 TJm
+(O)
+[5.754412
+0] Tj
+40 TJm
+(THER)
+[4.869731
+0
+5.754412
+0
+4.869731
+0
+5.316057
+0] Tj
+55 TJm
+(WISE\))
+[7.523774
+0
+2.654043
+0
+4.431376
+0
+4.869731
+0
+2.654043
+0] Tj
+-247 TJm
+(ARISING)
+[5.754412
+0
+5.316057
+0
+2.654043
+0
+4.431376
+0
+2.654043
+0
+5.754412
+0
+5.754412
+0] Tj
+-247 TJm
+(IN)
+[2.654043
+0
+5.754412
+0] Tj
+-247 TJm
+(ANY)
+[5.754412
+0
+5.754412
+0
+5.754412
+0] Tj
+-247 TJm
+(W)
+[7.523774
+0] Tj
+120 TJm
+(A)
+[5.754412
+0] Tj
+105 TJm
+(Y)
+[5.754412
+0] Tj
+-247 TJm
+(OUT)
+[5.754412
+0
+5.754412
+0
+4.869731
+0] Tj
+72 453.814 Td
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-250 TJm
+(THE)
+[4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-250 TJm
+(USE)
+[5.754412
+0
+4.431376
+0
+4.869731
+0] Tj
+-250 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-250 TJm
+(THIS)
+[4.869731
+0
+5.754412
+0
+2.654043
+0
+4.431376
+0] Tj
+-250 TJm
+(SOFTW)
+[4.431376
+0
+5.754412
+0
+4.431376
+0
+4.869731
+0
+7.523774
+0] Tj
+120 TJm
+(ARE,)
+[5.754412
+0
+5.316057
+0
+4.869731
+0
+1.992525
+0] Tj
+-250 TJm
+(EVEN)
+[4.869731
+0
+5.754412
+0
+4.869731
+0
+5.754412
+0] Tj
+-250 TJm
+(IF)
+[2.654043
+0
+4.431376
+0] Tj
+-250 TJm
+(AD)
+[5.754412
+0
+5.754412
+0] Tj
+40 TJm
+(VISED)
+[5.754412
+0
+2.654043
+0
+4.431376
+0
+4.869731
+0
+5.754412
+0] Tj
+-250 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-250 TJm
+(THE)
+[4.869731
+0
+5.754412
+0
+4.869731
+0] Tj
+-250 TJm
+(POSSIBILITY)
+[4.431376
+0
+5.754412
+0
+4.431376
+0
+4.431376
+0
+2.654043
+0
+5.316057
+0
+2.654043
+0
+4.869731
+0
+2.654043
+0
+4.869731
+0
+5.754412
+0] Tj
+-250 TJm
+(OF)
+[5.754412
+0
+4.431376
+0] Tj
+-250 TJm
+(SUCH)
+[4.431376
+0
+5.754412
+0
+5.316057
+0
+5.754412
+0] Tj
+-250 TJm
+(D)
+[5.754412
+0] Tj
+40 TJm
+(AMA)
+[5.754412
+0
+7.085419
+0
+5.754412
+0] Tj
+40 TJm
+(GE.)
+[5.754412
+0
+4.869731
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 436.279 Td
+(P)
+[4.431376
+0] Tj
+92 TJm
+(A)
+[5.754412
+0] Tj
+111 TJm
+(TENTS:)
+[4.869731
+0
+4.869731
+0
+5.754412
+0
+4.869731
+0
+4.431376
+0
+2.215688
+0] Tj
+-296 TJm
+(T)
+[4.869731
+0] Tj
+80 TJm
+(o)
+[3.98505
+0] Tj
+-295 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-296 TJm
+(best)
+[3.98505
+0
+3.538724
+0
+3.100369
+0
+2.215688
+0] Tj
+-295 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-296 TJm
+(my)
+[6.200738
+0
+3.98505
+0] Tj
+-295 TJm
+(kno)
+[3.98505
+0
+3.98505
+0
+3.98505
+0] Tj
+25 TJm
+(wledge,)
+[5.754412
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0
+3.98505
+0
+3.538724
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.544 436.279 Td
+/F17_0 7.9701 Tf
+(bzip2)
+[4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.81 436.279 Td
+/F15_0 7.9701 Tf
+(and)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.674 436.279 Td
+/F17_0 7.9701 Tf
+(libbzip2)
+[4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0
+4.78206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.286 436.279 Td
+/F15_0 7.9701 Tf
+(do)
+[3.98505
+0
+3.98505
+0] Tj
+-296 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-295 TJm
+(use)
+[3.98505
+0
+3.100369
+0
+3.538724
+0] Tj
+-296 TJm
+(an)
+[3.538724
+0
+3.98505
+0] Tj
+15 TJm
+(y)
+[3.98505
+0] Tj
+-295 TJm
+(patented)
+[3.98505
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0] Tj
+-296 TJm
+(algorithms.)
+[3.538724
+0
+2.215688
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+2.215688
+0
+2.215688
+0
+3.98505
+0
+6.200738
+0
+3.100369
+0
+1.992525
+0] Tj
+-893 TJm
+(Ho)
+[5.754412
+0
+3.98505
+0] Tj
+25 TJm
+(we)
+[5.754412
+0
+3.538724
+0] Tj
+25 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(er)
+[3.538724
+0
+2.654043
+0] Tj
+40 TJm
+(,)
+[1.992525
+0] Tj
+-307 TJm
+(I)
+[2.654043
+0] Tj
+-295 TJm
+(do)
+[3.98505
+0
+3.98505
+0] Tj
+-296 TJm
+(not)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-295 TJm
+(ha)
+[3.98505
+0
+3.538724
+0] Tj
+20 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(e)
+[3.538724
+0] Tj
+-296 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-295 TJm
+(resources)
+[2.654043
+0
+3.538724
+0
+3.100369
+0
+3.98505
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0
+3.538724
+0
+3.100369
+0] Tj
+-296 TJm
+(to)
+[2.215688
+0
+3.98505
+0] Tj
+72 426.715 Td
+(carry)
+[3.538724
+0
+3.538724
+0
+2.654043
+0
+2.654043
+0
+3.98505
+0] Tj
+-250 TJm
+(out)
+[3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(a)
+[3.538724
+0] Tj
+-250 TJm
+(patent)
+[3.98505
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(search.)
+[3.100369
+0
+3.538724
+0
+3.538724
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0
+1.992525
+0] Tj
+-620 TJm
+(Therefore)
+[4.869731
+0
+3.98505
+0
+3.538724
+0
+2.654043
+0
+3.538724
+0
+2.654043
+0
+3.98505
+0
+2.654043
+0
+3.538724
+0] Tj
+-250 TJm
+(I)
+[2.654043
+0] Tj
+-250 TJm
+(cannot)
+[3.538724
+0
+3.538724
+0
+3.98505
+0
+3.98505
+0
+3.98505
+0
+2.215688
+0] Tj
+-250 TJm
+(gi)
+[3.98505
+0
+2.215688
+0] Tj
+25 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(e)
+[3.538724
+0] Tj
+-250 TJm
+(an)
+[3.538724
+0
+3.98505
+0] Tj
+15 TJm
+(y)
+[3.98505
+0] Tj
+-250 TJm
+(guarantee)
+[3.98505
+0
+3.98505
+0
+3.538724
+0
+2.654043
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+3.538724
+0
+3.538724
+0] Tj
+-250 TJm
+(of)
+[3.98505
+0
+2.654043
+0] Tj
+-250 TJm
+(the)
+[2.215688
+0
+3.98505
+0
+3.538724
+0] Tj
+-250 TJm
+(abo)
+[3.538724
+0
+3.98505
+0
+3.98505
+0] Tj
+15 TJm
+(v)
+[3.98505
+0] Tj
+15 TJm
+(e)
+[3.538724
+0] Tj
+-250 TJm
+(statement.)
+[3.100369
+0
+2.215688
+0
+3.538724
+0
+2.215688
+0
+3.538724
+0
+6.200738
+0
+3.538724
+0
+3.98505
+0
+2.215688
+0
+1.992525
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 3 3
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 707.441 Td
+/F9_0 17.2154 Tf
+(T)
+[10.518609
+0] Tj
+80 TJm
+(ab)
+[9.571762
+0
+10.518609
+0] Tj
+10 TJm
+(le)
+[4.785881
+0
+9.571762
+0] Tj
+-278 TJm
+(of)
+[10.518609
+0
+5.732728
+0] Tj
+-278 TJm
+(Contents)
+[12.429519
+0
+10.518609
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 686.878 Td
+/F15_0 9.9626 Tf
+(1.)
+[4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Introduction)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.488 686.878 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 686.878 Td
+/F15_0 9.9626 Tf
+(1)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 674.923 Td
+(2.)
+[4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.595 674.923 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 674.923 Td
+/F15_0 9.9626 Tf
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 662.968 Td
+(2.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(N)
+[7.192997
+0] Tj
+35 TJm
+(AME)
+[7.192997
+0
+8.856751
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.445 662.968 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 662.968 Td
+/F15_0 9.9626 Tf
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 651.013 Td
+(2.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(SYNOPSIS)
+[5.539206
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0
+5.539206
+0
+5.539206
+0
+3.317546
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.337 651.013 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 651.013 Td
+/F15_0 9.9626 Tf
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 639.058 Td
+(2.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(DESCRIPTION)
+[7.192997
+0
+6.087149
+0
+5.539206
+0
+6.645054
+0
+6.645054
+0
+3.317546
+0
+5.539206
+0
+6.087149
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.044 639.058 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 639.058 Td
+/F15_0 9.9626 Tf
+(3)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 627.103 Td
+(2.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(OPTIONS)
+[7.192997
+0
+5.539206
+0
+6.087149
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.627 627.103 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 627.103 Td
+/F15_0 9.9626 Tf
+(4)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 615.147 Td
+(2.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(MEMOR)
+[8.856751
+0
+6.087149
+0
+8.856751
+0
+7.192997
+0
+6.645054
+0] Tj
+65 TJm
+(Y)
+[7.192997
+0] Tj
+-250 TJm
+(MAN)
+[8.856751
+0
+7.192997
+0
+7.192997
+0] Tj
+35 TJm
+(A)
+[7.192997
+0] Tj
+40 TJm
+(GEMENT)
+[7.192997
+0
+6.087149
+0
+8.856751
+0
+6.087149
+0
+7.192997
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.167 615.147 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 615.147 Td
+/F15_0 9.9626 Tf
+(5)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 603.192 Td
+(2.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(RECO)
+[6.645054
+0
+6.087149
+0
+6.645054
+0
+7.192997
+0] Tj
+50 TJm
+(VERING)
+[7.192997
+0
+6.087149
+0
+6.645054
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+-250 TJm
+(D)
+[7.192997
+0] Tj
+40 TJm
+(A)
+[7.192997
+0] Tj
+111 TJm
+(T)
+[6.087149
+0] Tj
+93 TJm
+(A)
+[7.192997
+0] Tj
+-250 TJm
+(FR)
+[5.539206
+0
+6.645054
+0] Tj
+40 TJm
+(OM)
+[7.192997
+0
+8.856751
+0] Tj
+-250 TJm
+(D)
+[7.192997
+0] Tj
+40 TJm
+(AMA)
+[7.192997
+0
+8.856751
+0
+7.192997
+0] Tj
+40 TJm
+(GED)
+[7.192997
+0
+6.087149
+0
+7.192997
+0] Tj
+-250 TJm
+(FILES)
+[5.539206
+0
+3.317546
+0
+6.087149
+0
+6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.005 603.192 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 603.192 Td
+/F15_0 9.9626 Tf
+(6)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 591.237 Td
+(2.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(PERFORMANCE)
+[5.539206
+0
+6.087149
+0
+6.645054
+0
+5.539206
+0
+7.192997
+0
+6.645054
+0
+8.856751
+0
+7.192997
+0
+7.192997
+0
+6.645054
+0
+6.087149
+0] Tj
+-250 TJm
+(NO)
+[7.192997
+0
+7.192997
+0] Tj
+40 TJm
+(TES)
+[6.087149
+0
+6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.713 591.237 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 591.237 Td
+/F15_0 9.9626 Tf
+(6)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 579.282 Td
+(2.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(CA)
+[6.645054
+0
+7.192997
+0] Tj
+135 TJm
+(VEA)
+[7.192997
+0
+6.087149
+0
+7.192997
+0] Tj
+111 TJm
+(TS)
+[6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.34 579.282 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 579.282 Td
+/F15_0 9.9626 Tf
+(7)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 567.327 Td
+(2.9.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(A)
+[7.192997
+0] Tj
+55 TJm
+(UTHOR)
+[7.192997
+0
+6.087149
+0
+7.192997
+0
+7.192997
+0
+6.645054
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.861 567.327 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 567.327 Td
+/F15_0 9.9626 Tf
+(7)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 555.372 Td
+(3.)
+[4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.049 555.372 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.397 555.372 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 555.372 Td
+/F15_0 9.9626 Tf
+(8)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 543.416 Td
+(3.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(op-le)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(structure)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.538 543.416 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 543.416 Td
+/F15_0 9.9626 Tf
+(8)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 531.461 Td
+(3.1.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Lo)
+[6.087149
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.406 531.461 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 531.461 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 519.506 Td
+(3.1.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(High-le)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+190.363 519.506 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 519.506 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 507.551 Td
+(3.1.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Utility)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.337 507.551 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 507.551 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 495.596 Td
+(3.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Error)
+[6.087149
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.366 495.596 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 495.596 Td
+/F15_0 9.9626 Tf
+(10)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 483.64 Td
+(3.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Lo)
+[6.087149
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.8 483.64 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 483.64 Td
+/F15_0 9.9626 Tf
+(11)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.685 Td
+(3.3.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompressInit)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.302 471.685 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 471.685 Td
+/F15_0 9.9626 Tf
+(11)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 459.73 Td
+(3.3.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompress)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.742 459.73 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 459.73 Td
+/F15_0 9.9626 Tf
+(13)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 447.775 Td
+(3.3.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompressEnd)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+197.622 447.775 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 447.775 Td
+/F15_0 9.9626 Tf
+(16)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.82 Td
+(3.3.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompressInit)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.641 435.82 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 435.82 Td
+/F15_0 9.9626 Tf
+(16)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 423.865 Td
+(3.3.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompress)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.867 423.865 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 423.865 Td
+/F15_0 9.9626 Tf
+(17)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 411.909 Td
+(3.3.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompressEnd)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.747 411.909 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 411.909 Td
+/F15_0 9.9626 Tf
+(18)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 399.954 Td
+(3.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(High-le)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.757 399.954 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 399.954 Td
+/F15_0 9.9626 Tf
+(18)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 387.999 Td
+(3.4.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadOpen)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.057 387.999 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 387.999 Td
+/F15_0 9.9626 Tf
+(19)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 376.044 Td
+(3.4.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzRead)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.198 376.044 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 376.044 Td
+/F15_0 9.9626 Tf
+(20)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 364.089 Td
+(3.4.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadGetUnused)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.747 364.089 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 364.089 Td
+/F15_0 9.9626 Tf
+(21)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 352.134 Td
+(3.4.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadClose)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+6.645054
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.614 352.134 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 352.134 Td
+/F15_0 9.9626 Tf
+(22)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 340.178 Td
+(3.4.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWriteOpen)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.162 340.178 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 340.178 Td
+/F15_0 9.9626 Tf
+(22)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 328.223 Td
+(3.4.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWrite)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.303 328.223 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 328.223 Td
+/F15_0 9.9626 Tf
+(23)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 316.268 Td
+(3.4.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWriteClose)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+6.645054
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.934 316.268 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 316.268 Td
+/F15_0 9.9626 Tf
+(23)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 304.313 Td
+(3.4.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Handling)
+[7.192997
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(embedded)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+291.142 304.313 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 304.313 Td
+/F15_0 9.9626 Tf
+(24)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 292.358 Td
+(3.4.9.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Standard)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le-reading/writing)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.318 292.358 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 292.358 Td
+/F15_0 9.9626 Tf
+(25)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 280.403 Td
+(3.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Utility)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.186 280.403 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 280.403 Td
+/F15_0 9.9626 Tf
+(26)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 268.447 Td
+(3.5.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzBuf)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fT)
+[3.317546
+0
+6.087149
+0] Tj
+80 TJm
+(oBuf)
+[4.9813
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fCompress)
+[3.317546
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.243 268.447 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 268.447 Td
+/F15_0 9.9626 Tf
+(26)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 256.492 Td
+(3.5.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzBuf)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fT)
+[3.317546
+0
+6.087149
+0] Tj
+80 TJm
+(oBuf)
+[4.9813
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fDecompress)
+[3.317546
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.368 256.492 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 256.492 Td
+/F15_0 9.9626 Tf
+(27)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 244.537 Td
+(3.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(zlib)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(compatibility)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.601 244.537 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 244.537 Td
+/F15_0 9.9626 Tf
+(28)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 232.582 Td
+(3.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Using)
+[7.192997
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(stdio-free)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironment)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.633 232.582 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 232.582 Td
+/F15_0 9.9626 Tf
+(28)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 220.627 Td
+(3.7.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Getting)
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(rid)
+[3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(stdio)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.033 220.627 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 220.627 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 208.671 Td
+(3.7.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Critical)
+[6.645054
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.17 208.671 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 208.671 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 196.716 Td
+(3.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Making)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(DLL)
+[7.192997
+0
+6.087149
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.998 196.716 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 196.716 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 184.761 Td
+(4.)
+[4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.653 184.761 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 184.761 Td
+/F15_0 9.9626 Tf
+(31)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 172.806 Td
+(4.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Limitations)
+[6.087149
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+267.908 172.806 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 172.806 Td
+/F15_0 9.9626 Tf
+(31)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 160.851 Td
+(4.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Portability)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(issues)
+[2.769603
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.784 160.851 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 160.851 Td
+/F15_0 9.9626 Tf
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 148.896 Td
+(4.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Reporting)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ugs)
+[4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.656 148.896 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 148.896 Td
+/F15_0 9.9626 Tf
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 136.94 Td
+(4.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Did)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(right)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(package?)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.565 136.94 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 136.94 Td
+/F15_0 9.9626 Tf
+(33)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 124.985 Td
+(4.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Further)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(Reading)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.902 124.985 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 124.985 Td
+/F15_0 9.9626 Tf
+(34)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.068 50.852 Td
+(iii)
+[2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 1 4
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F9_0 24.7902 Tf
+(1.)
+[13.783351
+0
+6.891676
+0] Tj
+-278 TJm
+(Intr)
+[6.891676
+0
+15.146812
+0
+8.255137
+0
+9.643388
+0] Tj
+20 TJm
+(oduction)
+[15.146812
+0
+15.146812
+0
+15.146812
+0
+13.783351
+0
+8.255137
+0
+6.891676
+0
+15.146812
+0
+15.146812
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 679.998 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.507 679.998 Td
+/F15_0 9.9626 Tf
+(compresses)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-263 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-263 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-262 TJm
+(Burro)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws-Wheeler)
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-263 TJm
+(block-sorting)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(te)
+[2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-263 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(algorithm,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-266 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(Huf)
+[7.192997
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fman)
+[3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-263 TJm
+(coding.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+72 668.043 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-203 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-204 TJm
+(generally)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-203 TJm
+(considerably)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-203 TJm
+(better)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-204 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(han)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-204 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-203 TJm
+(achie)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-203 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-204 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-203 TJm
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(entional)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-203 TJm
+(LZ77/LZ78-based)
+[6.087149
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+6.087149
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-204 TJm
+(compressors,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+72 656.087 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(approaches)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(PPM)
+[5.539206
+0
+5.539206
+0
+8.856751
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(amily)
+[4.423394
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(statistical)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(compressors.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 634.17 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.074 634.17 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-320 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uilt)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-319 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(top)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.712 634.17 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+224.533 634.17 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-337 TJm
+(a)
+[4.423394
+0] Tj
+-320 TJm
+(\003e)
+[5.539206
+0
+4.423394
+0] Tj
+15 TJm
+(xible)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-320 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-319 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-320 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-320 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-319 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-320 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.816 634.17 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.889 634.17 Td
+/F15_0 9.9626 Tf
+(format.)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-1039 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+72 622.214 Td
+(manual)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-316 TJm
+(describes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-316 TJm
+(both)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-317 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-316 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-316 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-316 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-316 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-316 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-317 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-316 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-316 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-316 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-316 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-317 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-316 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-1017 TJm
+(Most)
+[8.856751
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-316 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-316 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-317 TJm
+(manual)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-316 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 610.259 Td
+(de)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(oted)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(program,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(good)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(interest)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(program.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 578.379 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-278 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-277 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-278 TJm
+([2])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-278 TJm
+(describes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-278 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-278 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.282 578.379 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.17 578.379 Td
+/F15_0 9.9626 Tf
+(;)
+[2.769603
+0] Tj
+-292 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-278 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-277 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-278 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-278 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-278 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-277 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-278 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-278 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-278 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-277 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(kno)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+81.963 566.424 Td
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(operate)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(program.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 544.506 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(libbzip2)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([8])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(describes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(programming)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(aces)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(detail,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 522.588 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-450 TJm
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([31])
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(records)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(miscellaneous)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(notes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(thought)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(ought)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(recorded)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+25 TJm
+(where.)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(1)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 2 5
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F9_0 24.7902 Tf
+(2.)
+[13.783351
+0
+6.891676
+0] Tj
+-278 TJm
+(Ho)
+[17.898524
+0
+15.146812
+0] Tj
+15 TJm
+(w)
+[19.286776
+0] Tj
+-278 TJm
+(to)
+[8.255137
+0
+15.146812
+0] Tj
+-278 TJm
+(use)
+[15.146812
+0
+13.783351
+0
+13.783351
+0] Tj
+-278 TJm
+(bzip2)
+[15.146812
+0
+12.3951
+0
+6.891676
+0
+15.146812
+0
+13.783351
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F9_0 17.2154 Tf
+(T)
+[10.518609
+0] Tj
+80 TJm
+(ab)
+[9.571762
+0
+10.518609
+0] Tj
+10 TJm
+(le)
+[4.785881
+0
+9.571762
+0] Tj
+-278 TJm
+(of)
+[10.518609
+0
+5.732728
+0] Tj
+-278 TJm
+(Contents)
+[12.429519
+0
+10.518609
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F15_0 9.9626 Tf
+(2.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(N)
+[7.192997
+0] Tj
+35 TJm
+(AME)
+[7.192997
+0
+8.856751
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.445 635.788 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 635.788 Td
+/F15_0 9.9626 Tf
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(2.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(SYNOPSIS)
+[5.539206
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0
+5.539206
+0
+5.539206
+0
+3.317546
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.337 623.832 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 623.832 Td
+/F15_0 9.9626 Tf
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(2.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(DESCRIPTION)
+[7.192997
+0
+6.087149
+0
+5.539206
+0
+6.645054
+0
+6.645054
+0
+3.317546
+0
+5.539206
+0
+6.087149
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.044 611.877 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 611.877 Td
+/F15_0 9.9626 Tf
+(3)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(2.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(OPTIONS)
+[7.192997
+0
+5.539206
+0
+6.087149
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.627 599.922 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 599.922 Td
+/F15_0 9.9626 Tf
+(4)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(2.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(MEMOR)
+[8.856751
+0
+6.087149
+0
+8.856751
+0
+7.192997
+0
+6.645054
+0] Tj
+65 TJm
+(Y)
+[7.192997
+0] Tj
+-250 TJm
+(MAN)
+[8.856751
+0
+7.192997
+0
+7.192997
+0] Tj
+35 TJm
+(A)
+[7.192997
+0] Tj
+40 TJm
+(GEMENT)
+[7.192997
+0
+6.087149
+0
+8.856751
+0
+6.087149
+0
+7.192997
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.167 587.967 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 587.967 Td
+/F15_0 9.9626 Tf
+(5)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 576.012 Td
+(2.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(RECO)
+[6.645054
+0
+6.087149
+0
+6.645054
+0
+7.192997
+0] Tj
+50 TJm
+(VERING)
+[7.192997
+0
+6.087149
+0
+6.645054
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+-250 TJm
+(D)
+[7.192997
+0] Tj
+40 TJm
+(A)
+[7.192997
+0] Tj
+111 TJm
+(T)
+[6.087149
+0] Tj
+93 TJm
+(A)
+[7.192997
+0] Tj
+-250 TJm
+(FR)
+[5.539206
+0
+6.645054
+0] Tj
+40 TJm
+(OM)
+[7.192997
+0
+8.856751
+0] Tj
+-250 TJm
+(D)
+[7.192997
+0] Tj
+40 TJm
+(AMA)
+[7.192997
+0
+8.856751
+0
+7.192997
+0] Tj
+40 TJm
+(GED)
+[7.192997
+0
+6.087149
+0
+7.192997
+0] Tj
+-250 TJm
+(FILES)
+[5.539206
+0
+3.317546
+0
+6.087149
+0
+6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.005 576.012 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 576.012 Td
+/F15_0 9.9626 Tf
+(6)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.057 Td
+(2.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(PERFORMANCE)
+[5.539206
+0
+6.087149
+0
+6.645054
+0
+5.539206
+0
+7.192997
+0
+6.645054
+0
+8.856751
+0
+7.192997
+0
+7.192997
+0
+6.645054
+0
+6.087149
+0] Tj
+-250 TJm
+(NO)
+[7.192997
+0
+7.192997
+0] Tj
+40 TJm
+(TES)
+[6.087149
+0
+6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.713 564.057 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 564.057 Td
+/F15_0 9.9626 Tf
+(6)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 552.101 Td
+(2.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(CA)
+[6.645054
+0
+7.192997
+0] Tj
+135 TJm
+(VEA)
+[7.192997
+0
+6.087149
+0
+7.192997
+0] Tj
+111 TJm
+(TS)
+[6.087149
+0
+5.539206
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.34 552.101 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 552.101 Td
+/F15_0 9.9626 Tf
+(7)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.146 Td
+(2.9.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(A)
+[7.192997
+0] Tj
+55 TJm
+(UTHOR)
+[7.192997
+0
+6.087149
+0
+7.192997
+0
+7.192997
+0
+6.645054
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.861 540.146 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 540.146 Td
+/F15_0 9.9626 Tf
+(7)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 508.266 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(chapter)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(contains)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(cop)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+10 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.837 508.266 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.215 508.266 Td
+/F15_0 9.9626 Tf
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(page,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(nothing)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(else.)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 473.513 Td
+/F9_0 20.6585 Tf
+(2.1.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(NAME)
+[14.915437
+0
+14.915437
+0
+17.208531
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 441.632 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 441.632 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+112.349 441.632 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.33 441.632 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 441.632 Td
+/F15_0 9.9626 Tf
+(-)
+[3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(block-sorting)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(compressor)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(v1.0.8)
+[4.9813
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 419.715 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 419.715 Td
+/F17_0 9.9626 Tf
+(bzcat)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 419.715 Td
+/F15_0 9.9626 Tf
+(-)
+[3.317546
+0] Tj
+-250 TJm
+(decompresses)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(stdout)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 397.797 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 397.797 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.682 397.797 Td
+/F15_0 9.9626 Tf
+(-)
+[3.317546
+0] Tj
+-250 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ers)
+[4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 353.081 Td
+/F9_0 20.6585 Tf
+(2.2.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(SYNOPSIS)
+[13.77922
+0
+13.77922
+0
+14.915437
+0
+16.072313
+0
+13.77922
+0
+13.77922
+0
+5.743063
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 321.201 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 321.201 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 321.201 Td
+/F15_0 9.9626 Tf
+([)
+[3.317546
+0] Tj
+-250 TJm
+(-cdfkqstvzVL123456789)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(])
+[3.317546
+0] Tj
+-250 TJm
+([)
+[3.317546
+0] Tj
+-250 TJm
+(\002lenames)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(...)
+[2.49065
+0
+2.49065
+0
+2.49065
+0] Tj
+-620 TJm
+(])
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 299.283 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 299.283 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+126.795 299.283 Td
+/F15_0 9.9626 Tf
+([)
+[3.317546
+0] Tj
+-250 TJm
+(-fkvsVL)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+7.192997
+0
+6.087149
+0] Tj
+-250 TJm
+(])
+[3.317546
+0] Tj
+-250 TJm
+([)
+[3.317546
+0] Tj
+-250 TJm
+(\002lenames)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(...)
+[2.49065
+0
+2.49065
+0
+2.49065
+0] Tj
+-620 TJm
+(])
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 277.365 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 277.365 Td
+/F17_0 9.9626 Tf
+(bzcat)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.839 277.365 Td
+/F15_0 9.9626 Tf
+([)
+[3.317546
+0] Tj
+-250 TJm
+(-s)
+[3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(])
+[3.317546
+0] Tj
+-250 TJm
+([)
+[3.317546
+0] Tj
+-250 TJm
+(\002lenames)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(...)
+[2.49065
+0
+2.49065
+0
+2.49065
+0] Tj
+-620 TJm
+(])
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 255.447 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 255.447 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.683 255.447 Td
+/F15_0 9.9626 Tf
+(\002lename)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(2)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 3 6
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 704.93 Td
+/F9_0 20.6585 Tf
+(2.3.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(DESCRIPTION)
+[14.915437
+0
+13.77922
+0
+13.77922
+0
+14.915437
+0
+14.915437
+0
+5.743063
+0
+13.77922
+0
+12.622344
+0
+5.743063
+0
+16.072313
+0
+14.915437
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 683.012 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.56 683.012 Td
+/F15_0 9.9626 Tf
+(compresses)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-269 TJm
+(Burro)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws-Wheeler)
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-268 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-268 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(te)
+[2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-268 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(algorithm,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-273 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(Huf)
+[7.192997
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fman)
+[3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-268 TJm
+(coding.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+72 671.057 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-203 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-204 TJm
+(generally)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-203 TJm
+(considerably)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-203 TJm
+(better)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-204 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(han)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-204 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-203 TJm
+(achie)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-203 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-204 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-203 TJm
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(entional)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-203 TJm
+(LZ77/LZ78-based)
+[6.087149
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+6.087149
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-204 TJm
+(compressors,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+72 659.101 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(approaches)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(PPM)
+[5.539206
+0
+5.539206
+0
+8.856751
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(amily)
+[4.423394
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(statistical)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(compressors.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 637.184 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(command-line)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(options)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(deliberately)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(similar)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(those)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.869 637.184 Td
+/F17_0 9.9626 Tf
+(gzip)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+388.779 637.184 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(identical.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 615.266 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.175 615.266 Td
+/F15_0 9.9626 Tf
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpects)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-330 TJm
+(a)
+[4.423394
+0] Tj
+-330 TJm
+(list)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-330 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-330 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-329 TJm
+(names)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-330 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-330 TJm
+(accompan)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-330 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-330 TJm
+(command-line)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-330 TJm
+(\003ags.)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-1099 TJm
+(Each)
+[6.087149
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-330 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-330 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-330 TJm
+(replaced)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-330 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-330 TJm
+(a)
+[4.423394
+0] Tj
+-330 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+72 603.311 Td
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-349 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-348 TJm
+(itself,)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+2.49065
+0] Tj
+-373 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-349 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.444 603.311 Td
+/F17_0 9.9626 Tf
+(original_name.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+306.063 603.311 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1212 TJm
+(Each)
+[6.087149
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-348 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-349 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-348 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-349 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-348 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-349 TJm
+(modi\002cation)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-349 TJm
+(date,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+72 591.356 Td
+(permissions,)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-344 TJm
+(and,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-344 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-325 TJm
+(possible,)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-344 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wnership)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-325 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-325 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-326 TJm
+(corresponding)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-325 TJm
+(original,)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-344 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-325 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-325 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-325 TJm
+(properties)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-325 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-326 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-325 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+72 579.4 Td
+(restored)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-308 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-308 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-307 TJm
+(time.)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-484 TJm
+(File)
+[5.539206
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-308 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-308 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-308 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-307 TJm
+(nai)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-308 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-308 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-308 TJm
+(sense)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-308 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-308 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-307 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-308 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-308 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-308 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-308 TJm
+(preserving)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 567.445 Td
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-334 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-333 TJm
+(names,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-355 TJm
+(permissions,)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-355 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wnerships)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-333 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-334 TJm
+(dates)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-334 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-333 TJm
+(\002lesystems)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-334 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-334 TJm
+(lack)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-333 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-334 TJm
+(concepts,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-355 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-333 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-334 TJm
+(serious)
+[3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-334 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+72 555.49 Td
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(length)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(restrictions,)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(MS-DOS.)
+[8.856751
+0
+5.539206
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+5.539206
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 533.572 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.379 533.572 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+121.255 533.572 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.589 533.572 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erwrite)
+[4.423394
+0
+3.317546
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-620 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(happen,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(specify)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.977 533.572 Td
+/F17_0 9.9626 Tf
+(-f)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.423 533.572 Td
+/F15_0 9.9626 Tf
+(\003ag.)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 511.654 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-284 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-285 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-284 TJm
+(names)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-284 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-284 TJm
+(speci\002ed,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.935 511.654 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+226.655 511.654 Td
+/F15_0 9.9626 Tf
+(compresses)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-284 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-285 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-284 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-284 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-284 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-285 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-825 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-285 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-284 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+491.778 511.654 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+524.499 511.654 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+72 499.699 Td
+(decline)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(terminal,)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(entirely)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(incomprehensible)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(therefore)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(pointless.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 477.781 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.176 477.781 Td
+/F15_0 9.9626 Tf
+(\(or)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+130.125 477.781 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-d)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+177.946 477.781 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-234 TJm
+(decompresses)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-234 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-234 TJm
+(speci\002ed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-235 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-609 TJm
+(Files)
+[5.539206
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-234 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-234 TJm
+(were)
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-234 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-235 TJm
+(created)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-234 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+445.012 477.781 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+477.233 477.781 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-234 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-234 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+72 465.826 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(gnored,)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-287 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(a)
+[4.423394
+0] Tj
+-279 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(arning)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(issued.)
+[2.769603
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.033 465.826 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.705 465.826 Td
+/F15_0 9.9626 Tf
+(attempts)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-279 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(guess)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(\002lename)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-279 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-280 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-280 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-279 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-280 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-279 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-280 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 453.871 Td
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(ws:)
+[7.192997
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 421.991 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 421.991 Td
+/F17_0 9.9626 Tf
+(filename.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 421.991 Td
+/F15_0 9.9626 Tf
+(becomes)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 421.991 Td
+/F17_0 9.9626 Tf
+(filename)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 400.073 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 400.073 Td
+/F17_0 9.9626 Tf
+(filename.bz)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.682 400.073 Td
+/F15_0 9.9626 Tf
+(becomes)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.032 400.073 Td
+/F17_0 9.9626 Tf
+(filename)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 378.155 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 378.155 Td
+/F17_0 9.9626 Tf
+(filename.tbz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 378.155 Td
+/F15_0 9.9626 Tf
+(becomes)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 378.155 Td
+/F17_0 9.9626 Tf
+(filename.tar)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 356.237 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 356.237 Td
+/F17_0 9.9626 Tf
+(filename.tbz)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 356.237 Td
+/F15_0 9.9626 Tf
+(becomes)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 356.237 Td
+/F17_0 9.9626 Tf
+(filename.tar)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 334.319 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 334.319 Td
+/F17_0 9.9626 Tf
+(anyothername)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.66 334.319 Td
+/F15_0 9.9626 Tf
+(becomes)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.01 334.319 Td
+/F17_0 9.9626 Tf
+(anyothername.out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.402 Td
+/F15_0 9.9626 Tf
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-342 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-342 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-342 TJm
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-342 TJm
+(n)
+[4.9813
+0] Tj
+-1 TJm
+(ot)
+[4.9813
+0
+2.769603
+0] Tj
+-342 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-342 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-342 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-342 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-342 TJm
+(recognised)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(endings,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.305 312.402 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.215 312.402 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.344 312.402 Td
+/F17_0 9.9626 Tf
+(.bz)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+357.276 312.402 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.405 312.402 Td
+/F17_0 9.9626 Tf
+(.tbz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.702 312.402 Td
+/F15_0 9.9626 Tf
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.409 312.402 Td
+/F17_0 9.9626 Tf
+(.tbz)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.319 312.402 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.448 312.402 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.744 312.402 Td
+/F15_0 9.9626 Tf
+(complains)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-342 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-342 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+72 300.446 Td
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(guess)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.009 300.446 Td
+/F17_0 9.9626 Tf
+(.out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.41 300.446 Td
+/F15_0 9.9626 Tf
+(appended.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 278.529 Td
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(compression,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(supplying)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\002lenames)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(causes)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 256.611 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.409 256.611 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-257 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-257 TJm
+(a)
+[4.423394
+0] Tj
+-258 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-257 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-258 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-257 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-258 TJm
+(concatenation)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-257 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-258 TJm
+(tw)
+[2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-258 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-257 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-258 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-257 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-665 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-258 TJm
+(result)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-257 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 244.656 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(concatenation)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-238 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-239 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(corresponding)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-239 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-238 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-613 TJm
+(Inte)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(grity)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-238 TJm
+(testing)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-239 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+382.247 244.656 Td
+/F17_0 9.9626 Tf
+(-t)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+394.202 244.656 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-239 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-238 TJm
+(concatenated)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-239 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-239 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-239 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 232.7 Td
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(supported.)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 210.783 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-399 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-399 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-399 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-400 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-399 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-399 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-399 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-399 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-399 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-399 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-399 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-400 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(ving)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-399 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+409.67 210.783 Td
+/F17_0 9.9626 Tf
+(-c)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.602 210.783 Td
+/F15_0 9.9626 Tf
+(\003ag.)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-757 TJm
+(Multiple)
+[8.856751
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-400 TJm
+(\002l)
+[5.539206
+0
+2.769603
+0] Tj
+1 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-400 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-399 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+72 198.827 Td
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-367 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-367 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-367 TJm
+(this.)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-1321 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-367 TJm
+(resulting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(outputs)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-367 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-367 TJm
+(fed)
+[3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-367 TJm
+(sequentially)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-366 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-367 TJm
+(stdout.)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-1322 TJm
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 186.872 Td
+(multiple)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(manner)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-288 TJm
+(generates)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(a)
+[4.423394
+0] Tj
+-289 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-289 TJm
+(containing)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(multiple)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(representations.)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-853 TJm
+(Such)
+[5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(a)
+[4.423394
+0] Tj
+-289 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+72 174.917 Td
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-391 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-391 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-390 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-391 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-391 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.116 174.917 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.898 174.917 Td
+/F15_0 9.9626 Tf
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-391 TJm
+(0.9.0)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-391 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-390 TJm
+(later)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-733 TJm
+(Earlier)
+[6.087149
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-391 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-391 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+448.071 174.917 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+481.852 174.917 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-391 TJm
+(stop)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-391 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+72 162.962 Td
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 141.044 Td
+/F17_0 9.9626 Tf
+(bzcat)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.379 141.044 Td
+/F15_0 9.9626 Tf
+(\(or)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.486 141.044 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-dc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.284 141.044 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-250 TJm
+(decompresses)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(speci\002ed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 119.126 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.866 119.126 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-299 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-299 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-299 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-299 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-299 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironment)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-298 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ariables)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.903 119.126 Td
+/F17_0 9.9626 Tf
+(BZIP2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+349.769 119.126 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+367.133 119.126 Td
+/F17_0 9.9626 Tf
+(BZIP)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.043 119.126 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-299 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-299 TJm
+(order)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-311 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-299 TJm
+(process)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-299 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+72 107.171 Td
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(command)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(line.)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-310 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(enient)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments.)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 85.253 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-294 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-294 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+10 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ays)
+[4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-294 TJm
+(performed,)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-305 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-293 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-294 TJm
+(slightly)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-294 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-294 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(original.)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-884 TJm
+(Files)
+[5.539206
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-294 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-294 TJm
+(less)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-294 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 73.298 Td
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-246 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-246 TJm
+(hundred)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-246 TJm
+(tend)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-246 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-246 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-246 TJm
+(l)
+[2.769603
+0] Tj
+1 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-247 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-246 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-246 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-245 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-246 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-246 TJm
+(a)
+[4.423394
+0] Tj
+-246 TJm
+(constant)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-246 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erhead)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-246 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-246 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(gion)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-246 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(3)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 4 7
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(50)
+[4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(bytes.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-351 TJm
+(Random)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0] Tj
+-264 TJm
+(dat)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(a)
+[4.423394
+0] Tj
+-264 TJm
+(\(including)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-264 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-263 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-264 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-264 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-263 TJm
+(compressors\))
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+3.317546
+0] Tj
+-264 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-264 TJm
+(coded)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-263 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-264 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-264 TJm
+(8.05)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(bits)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-264 TJm
+(per)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-264 TJm
+(byte,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-267 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(ving)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+72 698.082 Td
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpansion)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(around)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(0.5%.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+8.298846
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.283 Td
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-268 TJm
+(a)
+[4.423394
+0] Tj
+-268 TJm
+(self-check)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-269 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-268 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-268 TJm
+(protection,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+217.273 676.283 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+249.833 676.283 Td
+/F15_0 9.9626 Tf
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(32-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-268 TJm
+(CRCs)
+[6.645054
+0
+6.645054
+0
+6.645054
+0
+3.875451
+0] Tj
+-269 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-268 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-268 TJm
+(sure)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-268 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-268 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-269 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-268 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-268 TJm
+(a)
+[4.423394
+0] Tj
+-268 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-269 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 664.328 Td
+(identical)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-200 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-199 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-200 TJm
+(original.)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-586 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-200 TJm
+(guards)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-199 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ainst)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-200 TJm
+(corruption)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-199 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-200 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-200 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-199 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-210 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-199 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ainst)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-200 TJm
+(undetected)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-200 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ugs)
+[4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-199 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 664.328 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 652.373 Td
+/F15_0 9.9626 Tf
+(\(hopefully)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-275 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-274 TJm
+(unlik)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(ely\).)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+-384 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-275 TJm
+(chances)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-275 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-275 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-274 TJm
+(corruption)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-275 TJm
+(going)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-275 TJm
+(undetected)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-274 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-275 TJm
+(microscopic,)
+[7.750903
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-281 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-274 TJm
+(chance)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-275 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-275 TJm
+(four)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+72 640.417 Td
+(billion)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-280 TJm
+(processed.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-795 TJm
+(Be)
+[6.645054
+0
+4.423394
+0] Tj
+-279 TJm
+(a)
+[4.423394
+0] Tj
+15 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(are,)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-286 TJm
+(though,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-287 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(check)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(occurs)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-279 TJm
+(upon)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(decompression,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-287 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-279 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(tell)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+72 628.462 Td
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-237 TJm
+(something)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-237 TJm
+(wrong.)
+[7.192997
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-611 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-237 TJm
+(can')
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-237 TJm
+(help)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-237 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-237 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-237 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-237 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-612 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-237 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.159 628.462 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+532.249 628.462 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 616.507 Td
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 594.708 Td
+(Return)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-298 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-406 TJm
+(0)
+[4.9813
+0] Tj
+-298 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-298 TJm
+(a)
+[4.423394
+0] Tj
+-298 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-298 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xit,)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-310 TJm
+(1)
+[4.9813
+0] Tj
+-298 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-297 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironmental)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-298 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-298 TJm
+(\(\002le)
+[3.317546
+0
+5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-298 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-298 TJm
+(found,)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alid)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-298 TJm
+(\003ags,)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-310 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-298 TJm
+(errors,)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-310 TJm
+(etc.\),)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0
+3.317546
+0
+2.49065
+0] Tj
+-310 TJm
+(2)
+[4.9813
+0] Tj
+-298 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 582.753 Td
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(corrupt)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(3)
+[4.9813
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(consistenc)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(\(e)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g,)
+[4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug\))
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(caused)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+443.065 582.753 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+475.444 582.753 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(panic.)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.118 Td
+/F9_0 20.6585 Tf
+(2.4.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(OPTIONS)
+[16.072313
+0
+13.77922
+0
+12.622344
+0
+5.743063
+0
+16.072313
+0
+14.915437
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 516.475 Td
+/F17_0 9.9626 Tf
+(-c)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--stdout)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 504.52 Td
+/F15_0 9.9626 Tf
+(Compress)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 478.854 Td
+/F17_0 9.9626 Tf
+(-d)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--decompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 466.899 Td
+/F15_0 9.9626 Tf
+(F)
+[5.539206
+0] Tj
+15 TJm
+(orce)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-296 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.214 466.899 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.102 466.899 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.659 466.899 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+280.454 466.899 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.791 466.899 Td
+/F17_0 9.9626 Tf
+(bzcat)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.631 466.899 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-296 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-297 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-296 TJm
+(program,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-308 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-296 TJm
+(decision)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+108 454.944 Td
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-303 TJm
+(actions)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-303 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-303 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-303 TJm
+(done)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(basis)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-303 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-303 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-303 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-303 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-303 TJm
+(used.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-939 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-303 TJm
+(\003ag)
+[5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-303 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(errides)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-303 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-303 TJm
+(mechanism,)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0
+2.49065
+0] Tj
+-316 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+108 442.988 Td
+(forces)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(decompress.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 417.323 Td
+/F17_0 9.9626 Tf
+(-z)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 405.368 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(complement)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.969 405.368 Td
+/F17_0 9.9626 Tf
+(-d)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.924 405.368 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+-310 TJm
+(forces)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(compression,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(ardless)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(okation)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(name.)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 379.702 Td
+/F17_0 9.9626 Tf
+(-t)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--test)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 367.747 Td
+/F15_0 9.9626 Tf
+(Check)
+[6.645054
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(inte)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(grity)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-270 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-271 TJm
+(speci\002ed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(\002le\(s\),)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+3.317546
+0
+2.49065
+0] Tj
+-276 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-270 TJm
+(don')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-270 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-271 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-742 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-271 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(performs)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+-270 TJm
+(a)
+[4.423394
+0] Tj
+-271 TJm
+(trial)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-270 TJm
+(decompres-)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.317546
+0] Tj
+108 355.792 Td
+(sion)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(thro)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+15 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(result.)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 330.126 Td
+/F17_0 9.9626 Tf
+(-f)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--force)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 318.171 Td
+/F15_0 9.9626 Tf
+(F)
+[5.539206
+0] Tj
+15 TJm
+(orce)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-338 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erwrite)
+[4.423394
+0
+3.317546
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-339 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-338 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-338 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-1150 TJm
+(Normally)
+[7.192997
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.831 318.171 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+323.089 318.171 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-338 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-339 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erwrite)
+[4.423394
+0
+3.317546
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-338 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-338 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-338 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-1150 TJm
+(Also)
+[7.192997
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-339 TJm
+(forces)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 306.215 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.379 306.215 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(break)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(hard)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(links)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(otherwise)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ouldn')
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(do.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 284.416 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.211 284.416 Td
+/F15_0 9.9626 Tf
+(normally)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-334 TJm
+(declines)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-333 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-334 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-333 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-334 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-333 TJm
+(don')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-334 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-333 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-334 TJm
+(correct)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-333 TJm
+(magic)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-334 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-333 TJm
+(bytes.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-561 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-334 TJm
+(forced)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+108 272.461 Td
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+111.318 272.461 Td
+/F17_0 9.9626 Tf
+(-f)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.273 272.461 Td
+/F15_0 9.9626 Tf
+(\),)
+[3.317546
+0
+2.49065
+0] Tj
+-250 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(we)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(pass)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(through)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(unmodi\002ed.)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.585 272.461 Td
+/F17_0 9.9626 Tf
+(gzip)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.986 272.461 Td
+/F15_0 9.9626 Tf
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es.)
+[4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 246.795 Td
+/F17_0 9.9626 Tf
+(-k)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--keep)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 234.84 Td
+/F15_0 9.9626 Tf
+(K)
+[7.192997
+0] Tj
+25 TJm
+(eep)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\(don')
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(delete\))
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(during)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 209.174 Td
+/F17_0 9.9626 Tf
+(-s)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 197.219 Td
+/F15_0 9.9626 Tf
+(Reduce)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-347 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-347 TJm
+(usage,)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-371 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-346 TJm
+(compression,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-371 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-347 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-347 TJm
+(testing.)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1201 TJm
+(Files)
+[5.539206
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-347 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-347 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-346 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-347 TJm
+(tested)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+108 185.264 Td
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-388 TJm
+(a)
+[4.423394
+0] Tj
+-388 TJm
+(modi\002ed)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-388 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-389 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-388 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-388 TJm
+(requires)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-388 TJm
+(2.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-388 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-388 TJm
+(per)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-388 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-389 TJm
+(byte.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-1448 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-389 TJm
+(means)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-388 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-388 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-388 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-388 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+108 173.309 Td
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(2300k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(albeit)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(half)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(speed.)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 151.51 Td
+(During)
+[7.192997
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(compr)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0] Tj
+1 TJm
+(ession,)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.091 151.51 Td
+/F17_0 9.9626 Tf
+(-s)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.551 151.51 Td
+/F15_0 9.9626 Tf
+(selects)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-252 TJm
+(a)
+[4.423394
+0] Tj
+-251 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-251 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-252 TJm
+(200k,)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-251 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(limits)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-251 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-252 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-251 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-252 TJm
+(around)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-252 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-251 TJm
+(\002gure,)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-252 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+108 139.554 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpense)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-287 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-288 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(ratio.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-843 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(short,)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.49065
+0] Tj
+-297 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-287 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(machine)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-287 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(\(8)
+[3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(abytes)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-287 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(less\),)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+2.49065
+0] Tj
+108 127.599 Td
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.771 127.599 Td
+/F17_0 9.9626 Tf
+(-s)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.217 127.599 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erything.)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(See)
+[5.539206
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(MEMOR)
+[8.856751
+0
+6.087149
+0
+8.856751
+0
+7.192997
+0
+6.645054
+0] Tj
+65 TJm
+(Y)
+[7.192997
+0] Tj
+-250 TJm
+(MAN)
+[8.856751
+0
+7.192997
+0
+7.192997
+0] Tj
+35 TJm
+(A)
+[7.192997
+0] Tj
+40 TJm
+(GEMENT)
+[7.192997
+0
+6.087149
+0
+8.856751
+0
+6.087149
+0
+7.192997
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([5])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(belo)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 101.933 Td
+/F17_0 9.9626 Tf
+(-q)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--quiet)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 89.978 Td
+/F15_0 9.9626 Tf
+(Suppress)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-221 TJm
+(non-essential)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-220 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(arning)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-221 TJm
+(messages.)
+[7.750903
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-300 TJm
+(Messages)
+[8.856751
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-221 TJm
+(pertaining)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-221 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-220 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-221 TJm
+(errors)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-221 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-220 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-221 TJm
+(critical)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-221 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ents)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-221 TJm
+(wi)
+[7.192997
+0
+2.769603
+0] Tj
+1 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-221 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+108 78.023 Td
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(suppressed.)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.852 Td
+(4)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 5 8
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F17_0 9.9626 Tf
+(-v)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--verbose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 698.082 Td
+/F15_0 9.9626 Tf
+(V)
+[7.192997
+0] Tj
+111 TJm
+(erbose)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-323 TJm
+(mode)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-323 TJm
+(sho)
+[3.875451
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-322 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-323 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-323 TJm
+(ratio)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-323 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-323 TJm
+(processed.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1056 TJm
+(Further)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+430.015 698.082 Td
+/F17_0 9.9626 Tf
+(-v)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.97 698.082 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-323 TJm
+(increase)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-322 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-323 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erbosity)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+108 686.127 Td
+(le)
+[2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el,)
+[4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(spe)
+[3.875451
+0
+4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(lots)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(information)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(primarily)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(interest)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(diagnostic)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(purposes.)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 660.224 Td
+/F17_0 9.9626 Tf
+(-L)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--license)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-V)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--version)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 648.269 Td
+/F15_0 9.9626 Tf
+(Display)
+[7.192997
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(softw)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion,)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(license)
+[2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(terms)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(conditions.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 622.366 Td
+/F17_0 9.9626 Tf
+(-1)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+86.446 622.366 Td
+/F15_0 9.9626 Tf
+(\(or)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.553 622.366 Td
+/F17_0 9.9626 Tf
+(--fast)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.418 622.366 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.468 622.366 Td
+/F17_0 9.9626 Tf
+(-9)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.914 622.366 Td
+/F15_0 9.9626 Tf
+(\(or)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.021 622.366 Td
+/F17_0 9.9626 Tf
+(-best)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.909 622.366 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 610.411 Td
+(Set)
+[5.539206
+0
+4.423394
+0
+2.769603
+0] Tj
+-288 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-288 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-288 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-288 TJm
+(100)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(k,)
+[4.9813
+0
+2.49065
+0] Tj
+-298 TJm
+(200)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(k)
+[4.9813
+0] Tj
+-288 TJm
+(...)
+[2.49065
+0
+2.49065
+0
+2.49065
+0] Tj
+-850 TJm
+(900)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(k)
+[4.9813
+0] Tj
+-288 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(compressing.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-849 TJm
+(Has)
+[7.192997
+0
+4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fect)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-288 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-288 TJm
+(decompressing.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-850 TJm
+(See)
+[5.539206
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+108 598.456 Td
+(MEMOR)
+[8.856751
+0
+6.087149
+0
+8.856751
+0
+7.192997
+0
+6.645054
+0] Tj
+65 TJm
+(Y)
+[7.192997
+0] Tj
+-297 TJm
+(MAN)
+[8.856751
+0
+7.192997
+0
+7.192997
+0] Tj
+35 TJm
+(A)
+[7.192997
+0] Tj
+40 TJm
+(GEMENT)
+[7.192997
+0
+6.087149
+0
+8.856751
+0
+6.087149
+0
+7.192997
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-297 TJm
+([5])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-298 TJm
+(belo)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-904 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.278 598.456 Td
+/F17_0 9.9626 Tf
+(--fast)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.106 598.456 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.454 598.456 Td
+/F17_0 9.9626 Tf
+(--best)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.281 598.456 Td
+/F15_0 9.9626 Tf
+(aliases)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-297 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-298 TJm
+(primarily)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-297 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.09 598.456 Td
+/F17_0 9.9626 Tf
+(gzip)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 586.501 Td
+/F15_0 9.9626 Tf
+(compatibility)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-356 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-265 TJm
+(particular)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.423 586.501 Td
+/F17_0 9.9626 Tf
+(--fast)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.932 586.501 Td
+/F15_0 9.9626 Tf
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-265 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-266 TJm
+(things)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-265 TJm
+(signi\002cantly)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-712 TJm
+(And)
+[7.192997
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.622 586.501 Td
+/F17_0 9.9626 Tf
+(--best)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+483.131 586.501 Td
+/F15_0 9.9626 Tf
+(merely)
+[7.750903
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(selects)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+108 574.545 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.643 Td
+/F17_0 9.9626 Tf
+(--)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 536.688 Td
+/F15_0 9.9626 Tf
+(T)
+[6.087149
+0] Tj
+35 TJm
+(reats)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-261 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-261 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-260 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-261 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-261 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-261 TJm
+(names,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-263 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-261 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-261 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-260 TJm
+(start)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-261 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-261 TJm
+(a)
+[4.423394
+0] Tj
+-261 TJm
+(dash.)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+-685 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-260 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-261 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-261 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-260 TJm
+(handle)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-261 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+108 524.732 Td
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(names)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(ginning)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(dash,)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xample:)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.27 524.732 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(--)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-myfilename)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.821 524.732 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 498.83 Td
+/F17_0 9.9626 Tf
+(--repetitive-fast)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.6 498.83 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.563 498.83 Td
+/F17_0 9.9626 Tf
+(--repetitive-best)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 486.874 Td
+/F15_0 9.9626 Tf
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-207 TJm
+(\003ags)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-206 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-207 TJm
+(redundant)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-207 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-206 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-207 TJm
+(0.9.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-207 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-206 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e.)
+[4.423394
+0
+2.49065
+0] Tj
+-591 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-207 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vided)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-207 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-207 TJm
+(coa)
+[4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+1 TJm
+(rse)
+[3.317546
+0
+3.875451
+0
+4.423394
+0] Tj
+-207 TJm
+(control)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-207 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-207 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-206 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+108 474.919 Td
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-251 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-251 TJm
+(earlier)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions,)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-251 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(sometimes)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(useful.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-622 TJm
+(0.9.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-251 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-251 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(impro)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+108 462.964 Td
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(renders)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(\003ags)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(irrele)
+[2.769603
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 414.264 Td
+/F9_0 20.6585 Tf
+(2.5.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(MEMOR)
+[17.208531
+0
+13.77922
+0
+17.208531
+0
+16.072313
+0
+14.915437
+0] Tj
+50 TJm
+(Y)
+[13.77922
+0] Tj
+-278 TJm
+(MANA)
+[17.208531
+0
+14.915437
+0
+14.915437
+0
+14.915437
+0] Tj
+50 TJm
+(GEMENT)
+[16.072313
+0
+13.77922
+0
+17.208531
+0
+13.77922
+0
+14.915437
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 392.346 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.454 392.346 Td
+/F15_0 9.9626 Tf
+(compresses)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-258 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-257 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-258 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-257 TJm
+(blocks.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-666 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-257 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-258 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-258 TJm
+(af)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fects)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-257 TJm
+(both)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-257 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(ratio)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-257 TJm
+(achie)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ed,)
+[4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-260 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-257 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+72 380.391 Td
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-215 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-215 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-215 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-215 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-214 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-215 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-597 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-215 TJm
+(\003ags)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+337.719 380.391 Td
+/F17_0 9.9626 Tf
+(-1)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+351.815 380.391 Td
+/F15_0 9.9626 Tf
+(through)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.95 380.391 Td
+/F17_0 9.9626 Tf
+(-9)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.046 380.391 Td
+/F15_0 9.9626 Tf
+(specify)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-215 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-215 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-215 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-215 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-214 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-215 TJm
+(100,000)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+72 368.435 Td
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-278 TJm
+(through)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-277 TJm
+(900,000)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-278 TJm
+(\(the)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-277 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault\))
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+-278 TJm
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-786 TJm
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-278 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(time,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-284 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-278 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-278 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-277 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-278 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-278 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 356.48 Td
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-243 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-242 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-243 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-243 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-242 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-243 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-242 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-244 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.174 356.48 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.433 356.48 Td
+/F15_0 9.9626 Tf
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-243 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(o)
+[4.9813
+0] Tj
+-1 TJm
+(c)
+[4.423394
+0] Tj
+1 TJm
+(ates)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-243 TJm
+(itself)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-242 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-243 TJm
+(enough)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-242 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-243 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+72 344.525 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-940 TJm
+(Since)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-304 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-303 TJm
+(sizes)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-303 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-303 TJm
+(stored)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-304 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-303 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-317 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-303 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-304 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-303 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(\003ags)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.35 344.525 Td
+/F17_0 9.9626 Tf
+(-1)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.327 344.525 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.1 344.525 Td
+/F17_0 9.9626 Tf
+(-9)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+447.077 344.525 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-303 TJm
+(irrele)
+[2.769603
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-303 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+72 332.57 Td
+(ignored)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(during)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 310.652 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(requirements,)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(bytes,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(estimated)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(as:)
+[4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.723] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 299.131 Td
+/F17_0 9.9626 Tf
+(Compression:)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1278 TJm
+(400k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(+)
+[5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(8)
+[5.97756
+0] Tj
+-426 TJm
+(x)
+[5.97756
+0] Tj
+-426 TJm
+(block)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+90 275.22 Td
+(Decompression:)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(+)
+[5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(4)
+[5.97756
+0] Tj
+-426 TJm
+(x)
+[5.97756
+0] Tj
+-426 TJm
+(block)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\),)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+153.66 263.265 Td
+(100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(+)
+[5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(2.5)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(x)
+[5.97756
+0] Tj
+-426 TJm
+(block)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 225.805 Td
+/F15_0 9.9626 Tf
+(Lar)
+[6.087149
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-292 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-292 TJm
+(sizes)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-291 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-292 TJm
+(rapidly)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-292 TJm
+(diminishing)
+[4.9813
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-292 TJm
+(mar)
+[7.750903
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ginal)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-291 TJm
+(returns.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-871 TJm
+(Most)
+[8.856751
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-292 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-292 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-292 TJm
+(comes)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-292 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-292 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-292 TJm
+(tw)
+[2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-292 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+72 213.85 Td
+(three)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-232 TJm
+(hundred)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-232 TJm
+(k)
+[4.9813
+0] Tj
+-232 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-232 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-232 TJm
+(size,)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-235 TJm
+(a)
+[4.423394
+0] Tj
+-232 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(act)
+[4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-232 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orth)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-232 TJm
+(bearing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-232 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-232 TJm
+(mind)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-232 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-231 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+354.025 213.85 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+386.223 213.85 Td
+/F15_0 9.9626 Tf
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-232 TJm
+(small)
+[3.875451
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-232 TJm
+(machines.)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-304 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-232 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-232 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-231 TJm
+(important)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+72 201.895 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(appreciate)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(requirement)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(choice)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(size.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 179.977 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-388 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-389 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-388 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-389 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-388 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-389 TJm
+(900k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-388 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-389 TJm
+(size,)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.002 179.977 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+347.716 179.977 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-388 TJm
+(require)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-389 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-388 TJm
+(3700)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-389 TJm
+(kbytes)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-388 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-389 TJm
+(decompress.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+72 168.022 Td
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-424 TJm
+(support)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-425 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-424 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-424 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-425 TJm
+(\002l)
+[5.539206
+0
+2.769603
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+-425 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-424 TJm
+(a)
+[4.423394
+0] Tj
+-424 TJm
+(4)
+[4.9813
+0] Tj
+-425 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(abyte)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-424 TJm
+(machine,)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+348.272 168.022 Td
+/F17_0 9.9626 Tf
+(bunzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+394.342 168.022 Td
+/F15_0 9.9626 Tf
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-424 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-425 TJm
+(option)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-424 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-424 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-424 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 156.067 Td
+(approximately)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-281 TJm
+(half)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-281 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-281 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-281 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-288 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-281 TJm
+(2300)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-281 TJm
+(kbytes.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-805 TJm
+(Decompression)
+[7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(speed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-281 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-281 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-281 TJm
+(halv)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+15 TJm
+(ed,)
+[4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-288 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-281 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-281 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 144.112 Td
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(option)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(where)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(necessary)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-620 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(rele)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(\003ag)
+[5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.024 144.112 Td
+/F17_0 9.9626 Tf
+(-s)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.979 144.112 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.194 Td
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-204 TJm
+(general,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-214 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-204 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-205 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-204 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-204 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gest)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-205 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-204 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-205 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-204 TJm
+(constraints)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-204 TJm
+(allo)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-214 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-204 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-205 TJm
+(maximises)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-204 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-204 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-205 TJm
+(achie)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ed.)
+[4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 110.239 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(speed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(virtually)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(unaf)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fected)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(size.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 88.321 Td
+(Another)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-296 TJm
+(signi\002cant)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-296 TJm
+(point)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-295 TJm
+(applies)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-296 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-296 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-296 TJm
+(\002t)
+[5.539206
+0
+2.769603
+0] Tj
+-296 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(a)
+[4.423394
+0] Tj
+-295 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-296 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-296 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-296 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-296 TJm
+(means)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-296 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-295 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-296 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(d)
+[4.9813
+0] Tj
+-296 TJm
+(encounter)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-296 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(a)
+[4.423394
+0] Tj
+72 76.366 Td
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(size.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-859 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-290 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-290 TJm
+(real)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-290 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-289 TJm
+(touched)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(proportional)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-290 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-290 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-300 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-290 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(smaller)
+[3.875451
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(5)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 6 9
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-362 TJm
+(a)
+[4.423394
+0] Tj
+-362 TJm
+(block.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1293 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-362 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xample,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-390 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-362 TJm
+(a)
+[4.423394
+0] Tj
+-362 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-362 TJm
+(20,000)
+[4.9813
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-362 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-362 TJm
+(long)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-362 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-362 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-362 TJm
+(\003ag)
+[5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.528 710.037 Td
+/F17_0 9.9626 Tf
+(-9)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.09 710.037 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-362 TJm
+(cause)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-362 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-362 TJm
+(compressor)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+-362 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 698.082 Td
+(allocate)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-271 TJm
+(around)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(7600k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-272 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-277 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-271 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-272 TJm
+(touch)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-271 TJm
+(400k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(+)
+[5.618906
+0] Tj
+-271 TJm
+(20000)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(*)
+[4.9813
+0] Tj
+-271 TJm
+(8)
+[4.9813
+0] Tj
+-272 TJm
+(=)
+[5.618906
+0] Tj
+-271 TJm
+(560)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(kbytes)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-271 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-272 TJm
+(it.)
+[2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-748 TJm
+(Similarly)
+[5.539206
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-277 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-272 TJm
+(decompressor)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+72 686.127 Td
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(allocate)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(3700k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(touch)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(100k)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(+)
+[5.618906
+0] Tj
+-250 TJm
+(20000)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(*)
+[4.9813
+0] Tj
+-250 TJm
+(4)
+[4.9813
+0] Tj
+-250 TJm
+(=)
+[5.618906
+0] Tj
+-250 TJm
+(180)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(kbytes.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+(Here)
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-293 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-294 TJm
+(a)
+[4.423394
+0] Tj
+-293 TJm
+(table)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-294 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-293 TJm
+(summarises)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-293 TJm
+(maximum)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+7.750903
+0] Tj
+-294 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-293 TJm
+(usage)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-293 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(ferent)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-294 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-293 TJm
+(sizes.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-881 TJm
+(Also)
+[7.192997
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-293 TJm
+(recorded)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-293 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(total)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+72 652.254 Td
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-289 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(14)
+[4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-290 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(Calg)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+5 TJm
+(ary)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-289 TJm
+(T)
+[6.087149
+0] Tj
+70 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(Corpus)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-289 TJm
+(totalling)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(3,141,622)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(bytes.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-854 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(column)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0] Tj
+-289 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+72 640.299 Td
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-253 TJm
+(feel)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-253 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-253 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-253 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-253 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(aries)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-253 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-253 TJm
+(size.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-638 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-253 TJm
+(\002gures)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-253 TJm
+(tend)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-254 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(understate)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-253 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-253 TJm
+(adv)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(antage)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-253 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-253 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-253 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 628.344 Td
+(sizes)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(Corpus)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(dominated)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(smaller)
+[3.875451
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 469.773] cm
+0 0 468 155.417 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+123.952 616.822 Td
+/F17_0 9.9626 Tf
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1278 TJm
+(Decompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1278 TJm
+(Decompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1278 TJm
+(Corpus)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 604.867 Td
+(Flag)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(usage)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(usage)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2982 TJm
+(-s)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(usage)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(Size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 580.957 Td
+(-1)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(1200k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2982 TJm
+(500k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3834 TJm
+(350k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(914704)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 569.001 Td
+(-2)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(2000k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2982 TJm
+(900k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3834 TJm
+(600k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(877703)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 557.046 Td
+(-3)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(2800k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(1300k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3834 TJm
+(850k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(860338)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 545.091 Td
+(-4)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(3600k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(1700k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(1100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(846899)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 533.136 Td
+(-5)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(4400k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(2100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(1350k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(845160)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 521.181 Td
+(-6)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(5200k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(2500k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(1600k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(838626)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 509.225 Td
+(-7)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(6100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(2900k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(1850k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(834096)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 497.27 Td
+(-8)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(6800k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(3300k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(2100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(828642)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+94.244 485.315 Td
+(-9)
+[5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(7600k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(3700k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(2350k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2556 TJm
+(828642)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.021 Td
+/F9_0 20.6585 Tf
+(2.6.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(RECO)
+[14.915437
+0
+13.77922
+0
+14.915437
+0
+16.072313
+0] Tj
+50 TJm
+(VERING)
+[13.77922
+0
+13.77922
+0
+14.915437
+0
+5.743063
+0
+14.915437
+0
+16.072313
+0] Tj
+-278 TJm
+(D)
+[14.915437
+0] Tj
+40 TJm
+(A)
+[14.915437
+0] Tj
+90 TJm
+(T)
+[12.622344
+0] Tj
+90 TJm
+(A)
+[14.915437
+0] Tj
+-278 TJm
+(FR)
+[12.622344
+0
+14.915437
+0] Tj
+20 TJm
+(OM)
+[16.072313
+0
+17.208531
+0] Tj
+-278 TJm
+(D)
+[14.915437
+0] Tj
+40 TJm
+(AMA)
+[14.915437
+0
+17.208531
+0
+14.915437
+0] Tj
+50 TJm
+(GED)
+[16.072313
+0
+13.77922
+0
+14.915437
+0] Tj
+72 410.23 Td
+(FILES)
+[12.622344
+0
+5.743063
+0
+12.622344
+0
+13.77922
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 388.312 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.138 388.312 Td
+/F15_0 9.9626 Tf
+(compresses)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-326 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-326 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-326 TJm
+(blocks,)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-346 TJm
+(usually)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-326 TJm
+(900kbytes)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-326 TJm
+(long.)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1077 TJm
+(Each)
+[6.087149
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-326 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-326 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-327 TJm
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-326 TJm
+(independently)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1077 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-326 TJm
+(a)
+[4.423394
+0] Tj
+-326 TJm
+(media)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-326 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+72 376.357 Td
+(transmission)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-319 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-318 TJm
+(causes)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-319 TJm
+(a)
+[4.423394
+0] Tj
+-318 TJm
+(multi-block)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.519 376.357 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.603 376.357 Td
+/F15_0 9.9626 Tf
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-319 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-318 TJm
+(become)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-319 TJm
+(damaged,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-336 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(t)
+[2.769603
+0] Tj
+-319 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-319 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-318 TJm
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-319 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-318 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-319 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-319 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-318 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 364.402 Td
+(undamaged)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(blocks)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 342.484 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-358 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-357 TJm
+(representation)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-358 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-357 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-358 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-358 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-357 TJm
+(delimited)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-358 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-357 TJm
+(a)
+[4.423394
+0] Tj
+-358 TJm
+(48-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-358 TJm
+(pattern,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-384 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-358 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-357 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-358 TJm
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-357 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-358 TJm
+(\002nd)
+[5.539206
+0
+4.9813
+0
+4.9813
+0] Tj
+-358 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 330.529 Td
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(boundaries)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-286 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-285 TJm
+(reasonable)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-286 TJm
+(certainty)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-835 TJm
+(Each)
+[6.087149
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-286 TJm
+(carries)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-286 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-285 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-286 TJm
+(32-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-286 TJm
+(CRC,)
+[6.645054
+0
+6.645054
+0
+6.645054
+0
+2.49065
+0] Tj
+-286 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-285 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(blocks)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-286 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+72 318.574 Td
+(distinguished)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(undamaged)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(ones.)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 296.656 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.448 296.656 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-273 TJm
+(a)
+[4.423394
+0] Tj
+-272 TJm
+(simple)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-273 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-273 TJm
+(whose)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-272 TJm
+(purpose)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-273 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-273 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-272 TJm
+(search)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-273 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-273 TJm
+(blocks)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-272 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.655 296.656 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.282 296.656 Td
+/F15_0 9.9626 Tf
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-278 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-273 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-273 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+72 284.701 Td
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(ts)
+[2.769603
+0
+3.875451
+0] Tj
+-255 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+121.429 284.701 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.875 284.701 Td
+/F15_0 9.9626 Tf
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-647 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-254 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+240.01 284.701 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-t)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+290.367 284.701 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-254 TJm
+(test)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-255 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-254 TJm
+(inte)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(grity)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-254 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-255 TJm
+(resulting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-254 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-256 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-254 TJm
+(those)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+72 272.746 Td
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(undamaged.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 250.828 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.099 250.828 Td
+/F15_0 9.9626 Tf
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-639 TJm
+(a)
+[4.423394
+0] Tj
+-639 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-639 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gument,)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-737 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-639 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-639 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-639 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-639 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-639 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-737 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-639 TJm
+(writes)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-639 TJm
+(a)
+[4.423394
+0] Tj
+-639 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-639 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-640 TJm
+(\002)
+[5.539206
+0] Tj
+1 TJm
+(les)
+[2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 238.873 Td
+/F17_0 9.9626 Tf
+(rec0001file.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 238.873 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.072 238.873 Td
+/F17_0 9.9626 Tf
+(rec0002file.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.736 238.873 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-494 TJm
+(etc,)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-493 TJm
+(containing)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-445 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-445 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xtracted)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-445 TJm
+(blocks.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-1789 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-445 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-445 TJm
+(\002lenames)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-445 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+72 226.918 Td
+(designed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-337 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-337 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-337 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-337 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-337 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-337 TJm
+(wildc)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+1 TJm
+(ards)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-337 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-337 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-337 TJm
+(processing)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-337 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-337 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-337 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xample,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+396.538 226.918 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(-dc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(rec)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+474.247 225.174 Td
+(*)
+[5.97756
+0] Tj
+480.224 226.918 Td
+(file.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(>)
+[5.97756
+0] Tj
+72 214.962 Td
+(recovered_data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 214.962 Td
+/F15_0 9.9626 Tf
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(lists)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(correct)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(order)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 193.045 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.93 193.045 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-221 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-220 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-221 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-221 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-220 TJm
+(dealing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-221 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-221 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+307.229 193.045 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.338 193.045 Td
+/F15_0 9.9626 Tf
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-227 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-220 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-221 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-221 TJm
+(contain)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-220 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-221 TJm
+(blocks.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-600 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-221 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-221 TJm
+(clearly)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+72 181.089 Td
+(futile)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-289 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-289 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(single-block)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+1 TJm
+(,)
+[2.49065
+0] Tj
+-299 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-289 TJm
+(a)
+[4.423394
+0] Tj
+-290 TJm
+(damaged)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ered.)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-854 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-289 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(wish)
+[7.192997
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-289 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(minimise)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+72 169.134 Td
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-320 TJm
+(potential)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-320 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-319 TJm
+(loss)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0] Tj
+-320 TJm
+(through)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(media)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-320 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-319 TJm
+(transmission)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(errors,)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-337 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(might)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-320 TJm
+(consider)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-320 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-319 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-320 TJm
+(a)
+[4.423394
+0] Tj
+-320 TJm
+(smaller)
+[3.875451
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-320 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 157.179 Td
+(size.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.426 Td
+/F9_0 20.6585 Tf
+(2.7.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(PERFORMANCE)
+[13.77922
+0
+13.77922
+0
+14.915437
+0
+12.622344
+0
+16.072313
+0
+14.915437
+0
+17.208531
+0
+14.915437
+0
+14.915437
+0
+14.915437
+0
+13.77922
+0] Tj
+-278 TJm
+(NO)
+[14.915437
+0
+16.072313
+0] Tj
+40 TJm
+(TES)
+[12.622344
+0
+13.77922
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 100.508 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-304 TJm
+(phase)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-305 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-304 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-305 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(athers)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-304 TJm
+(together)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-305 TJm
+(similar)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-304 TJm
+(strings)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-305 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-947 TJm
+(Because)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-305 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-304 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-319 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-304 TJm
+(containing)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-305 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+72 88.553 Td
+(long)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-286 TJm
+(runs)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-285 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-286 TJm
+(repeated)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(symbols,)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-295 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-286 TJm
+("aabaabaabaab)
+[4.064741
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(...")
+[2.49065
+0
+2.49065
+0
+2.49065
+0
+4.064741
+0] Tj
+-571 TJm
+(\(repeated)
+[3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(eral)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-286 TJm
+(hundred)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(times\))
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0
+3.317546
+0] Tj
+-286 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(com)
+[4.423394
+0
+4.9813
+0
+7.750903
+0] Tj
+1 TJm
+(press)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-286 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-286 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wly)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+72 76.598 Td
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(normal.)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-524 TJm
+(V)
+[7.192997
+0] Tj
+111 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-322 TJm
+(0.9.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-321 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-322 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-321 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(better)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-321 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(vious)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-321 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-322 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-321 TJm
+(respect.)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-1050 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-321 TJm
+(ratio)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(6)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 7 10
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+477.109 749.245 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst-case)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-289 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erage-case)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-289 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-289 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(gion)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(10:1.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-857 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-290 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(vious)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-289 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions,)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-299 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(\002gure)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-289 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-290 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+72 698.082 Td
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(100:1.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.002 698.082 Td
+/F17_0 9.9626 Tf
+(-vvvv)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+218.38 698.082 Td
+/F15_0 9.9626 Tf
+(option)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(monitor)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(progress)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(great)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(detail,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.164 Td
+(Decompression)
+[7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(speed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(unaf)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fected)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(phenomena.)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 654.247 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.863 654.247 Td
+/F15_0 9.9626 Tf
+(usually)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(allocates)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-298 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(eral)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-299 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(abytes)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-298 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-299 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-299 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-298 TJm
+(operate)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-299 TJm
+(in,)
+[2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-311 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-298 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-299 TJm
+(char)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ges)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-298 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-299 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-299 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-298 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(a)
+[4.423394
+0] Tj
+-298 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(airly)
+[4.423394
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(random)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0] Tj
+72 642.291 Td
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ashion.)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-743 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-270 TJm
+(means)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-271 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-270 TJm
+(performance,)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-276 TJm
+(both)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-271 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(decompressing,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-275 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-271 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gely)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(determined)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-271 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-271 TJm
+(speed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 630.336 Td
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-294 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-294 TJm
+(machine)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(ca)
+[4.423394
+0
+4.423394
+0] Tj
+1 TJm
+(n)
+[4.9813
+0] Tj
+-295 TJm
+(service)
+[3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-294 TJm
+(cache)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(misses.)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-442 TJm
+(Because)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-294 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-294 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-306 TJm
+(small)
+[3.875451
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-294 TJm
+(changes)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-294 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-294 TJm
+(reduce)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(miss)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0] Tj
+-294 TJm
+(rate)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+72 618.381 Td
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-253 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-253 TJm
+(observ)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-253 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-253 TJm
+(disproportionately)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-253 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-253 TJm
+(impro)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ements.)
+[4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-639 TJm
+(I)
+[3.317546
+0] Tj
+-253 TJm
+(imagine)
+[2.769603
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.909 618.381 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.318 618.381 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-253 TJm
+(perform)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-253 TJm
+(best)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+72 606.426 Td
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(machines)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(caches.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 571.673 Td
+/F9_0 20.6585 Tf
+(2.8.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(CA)
+[14.915437
+0
+14.915437
+0] Tj
+80 TJm
+(VEA)
+[13.77922
+0
+13.77922
+0
+14.915437
+0] Tj
+90 TJm
+(TS)
+[12.622344
+0
+13.77922
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 549.755 Td
+/F15_0 9.9626 Tf
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-268 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-267 TJm
+(messages)
+[7.750903
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-268 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-268 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-267 TJm
+(helpful)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-268 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-267 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-268 TJm
+(be.)
+[4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.313 549.755 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+325.868 549.755 Td
+/F15_0 9.9626 Tf
+(tries)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(hard)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-267 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-268 TJm
+(detect)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-268 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-268 TJm
+(errors)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-267 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-268 TJm
+(cleanly)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-272 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-268 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 537.8 Td
+(details)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(problem)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(sometimes)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(seem)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(rather)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(misleading.)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 515.882 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(manual)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-279 TJm
+(page)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(pertains)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-280 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(1.0.8)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-280 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.84 515.882 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.728 515.882 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-798 TJm
+(Compressed)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-280 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-279 TJm
+(created)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-280 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-279 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(entirely)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(forw)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.192997
+0] Tj
+10 TJm
+(ards)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+72 503.927 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-294 TJm
+(backw)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0] Tj
+10 TJm
+(ards)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-293 TJm
+(compatible)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-294 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-294 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-293 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(vious)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-294 TJm
+(public)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-294 TJm
+(releases,)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-304 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-294 TJm
+(0.1pl2,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-305 TJm
+(0.9.0)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-293 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-294 TJm
+(0.9.5,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-305 TJm
+(1.0.0,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-304 TJm
+(1.0.1,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-305 TJm
+(1.0.2)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-294 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 491.972 Td
+(1.0.3,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-263 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-260 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-260 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-260 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xception:)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-330 TJm
+(0.9.0)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-260 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-260 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-260 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-260 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-260 TJm
+(multiple)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-260 TJm
+(concatenated)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-260 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+72 480.017 Td
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-310 TJm
+(0.1pl2)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(this;)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(stop)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 458.099 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.174 458.099 Td
+/F15_0 9.9626 Tf
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-245 TJm
+(prior)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-245 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-245 TJm
+(1.0.2)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-246 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(32-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-245 TJm
+(inte)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(gers)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-245 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-245 TJm
+(represent)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-245 TJm
+(bit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-246 TJm
+(positions)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-245 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-245 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-246 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-245 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-245 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 446.144 Td
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-384 TJm
+(handle)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-383 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-384 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-383 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-384 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-383 TJm
+(512)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-384 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(abytes)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-383 TJm
+(long.)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1421 TJm
+(V)
+[7.192997
+0] Tj
+111 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-384 TJm
+(1.0.2)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-383 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-384 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-384 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-383 TJm
+(64-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-384 TJm
+(ints)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-383 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-384 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+72 434.189 Td
+(platforms)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+-245 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-246 TJm
+(support)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-245 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-246 TJm
+(\(GNU)
+[3.317546
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-245 TJm
+(supported)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(tar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gets,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-247 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-245 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws\).)
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+2.49065
+0] Tj
+-309 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-245 TJm
+(establish)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-245 TJm
+(whether)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-246 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-245 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+468.269 434.189 Td
+/F17_0 9.9626 Tf
+(bzip2recover)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 422.233 Td
+/F15_0 9.9626 Tf
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-255 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uilt)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-255 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(a)
+[4.423394
+0] Tj
+-255 TJm
+(limitation,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-256 TJm
+(run)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-255 TJm
+(without)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-255 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments.)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-325 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-255 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-256 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ent)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-255 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uild)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(yourself)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-255 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(unlimited)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+72 410.278 Td
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(recompile)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.318 410.278 Td
+/F17_0 9.9626 Tf
+(MaybeUInt64)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.562 410.278 Td
+/F15_0 9.9626 Tf
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(unsigned)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(64-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(inte)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 375.525 Td
+/F9_0 20.6585 Tf
+(2.9.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(A)
+[14.915437
+0] Tj
+50 TJm
+(UTHOR)
+[14.915437
+0
+12.622344
+0
+14.915437
+0
+16.072313
+0
+14.915437
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 353.607 Td
+/F15_0 9.9626 Tf
+(Julian)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(Se)
+[5.539206
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ard,)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.801 353.607 Td
+/F17_0 9.9626 Tf
+(jseward@acm.org)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 331.69 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-299 TJm
+(ideas)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-300 TJm
+(embodied)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-299 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.942 331.69 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.813 331.69 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-299 TJm
+(du)
+[4.9813
+0
+4.9813
+0] Tj
+-1 TJm
+(e)
+[4.423394
+0] Tj
+-299 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(\(at)
+[3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-300 TJm
+(least\))
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0] Tj
+-299 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-300 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(people:)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-409 TJm
+(Michael)
+[8.856751
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-300 TJm
+(Burro)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-299 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-300 TJm
+(Da)
+[7.192997
+0
+4.423394
+0] Tj
+20 TJm
+(vid)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(Wheeler)
+[9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-299 TJm
+(\(for)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+72 319.735 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-312 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-313 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-312 TJm
+(transformation\),)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+-328 TJm
+(Da)
+[7.192997
+0
+4.423394
+0] Tj
+20 TJm
+(vid)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-312 TJm
+(Wheeler)
+[9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-313 TJm
+(\(ag)
+[3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ain,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-327 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-313 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-312 TJm
+(Huf)
+[7.192997
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fman)
+[3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-312 TJm
+(coder\),)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+2.49065
+0] Tj
+-328 TJm
+(Peter)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-313 TJm
+(Fenwick)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-312 TJm
+(\(for)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-312 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-313 TJm
+(structured)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+72 307.779 Td
+(coding)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-325 TJm
+(model)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-326 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-325 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-326 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+191.156 307.779 Td
+/F17_0 9.9626 Tf
+(bzip)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.067 307.779 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-344 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-326 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-325 TJm
+(re\002nements\),)
+[3.317546
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+3.317546
+0
+2.49065
+0] Tj
+-345 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-325 TJm
+(Alistair)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-326 TJm
+(Mof)
+[8.856751
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(at,)
+[4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-344 TJm
+(Radford)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-325 TJm
+(Neal)
+[7.192997
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-326 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-325 TJm
+(Ian)
+[3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-326 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(itten)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-325 TJm
+(\(for)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+72 295.824 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-277 TJm
+(arithmetic)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-277 TJm
+(coder)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-277 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-277 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-277 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.171 295.824 Td
+/F17_0 9.9626 Tf
+(bzip)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.082 295.824 Td
+/F15_0 9.9626 Tf
+(\).)
+[3.317546
+0
+2.49065
+0] Tj
+-782 TJm
+(I)
+[3.317546
+0] Tj
+-277 TJm
+(am)
+[4.423394
+0
+7.750903
+0] Tj
+-276 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-277 TJm
+(indebted)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-277 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-277 TJm
+(their)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-277 TJm
+(help,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-284 TJm
+(support)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-277 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-277 TJm
+(advice.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-781 TJm
+(See)
+[5.539206
+0
+4.423394
+0
+4.423394
+0] Tj
+-277 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-277 TJm
+(manual)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+72 283.869 Td
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-330 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-330 TJm
+(source)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-330 TJm
+(distrib)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(ution)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-330 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-329 TJm
+(pointers)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-330 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-330 TJm
+(sources)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-330 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-330 TJm
+(documentation.)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1099 TJm
+(Christian)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-330 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-330 TJm
+(Roques)
+[6.645054
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-330 TJm
+(encouraged)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-330 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-330 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-330 TJm
+(look)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+72 271.914 Td
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-271 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-271 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(algorithms,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-276 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-272 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-271 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(speed)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-271 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(compression.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-746 TJm
+(Bela)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-271 TJm
+(Lubkin)
+[6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(encouraged)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-271 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-272 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(impro)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-271 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-271 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst-case)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+72 259.959 Td
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-340 TJm
+(performance.)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-580 TJm
+(Donna)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-339 TJm
+(Robinson)
+[6.645054
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0] Tj
+-340 TJm
+(XMLised)
+[7.192997
+0
+8.856751
+0
+6.087149
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-340 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-340 TJm
+(documentation.)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-580 TJm
+(Man)
+[8.856751
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-340 TJm
+(people)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-340 TJm
+(sent)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-339 TJm
+(patches,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-363 TJm
+(helped)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-340 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+72 248.003 Td
+(portability)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(problems,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(lent)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(machines,)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(advice)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(were)
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(generally)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(helpful.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+539.395 50.951 Td
+(7)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 8 11
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F9_0 24.7902 Tf
+(3.)
+[13.783351
+0
+6.891676
+0] Tj
+-556 TJm
+(Pr)
+[16.535063
+0
+9.643388
+0] Tj
+20 TJm
+(ogramming)
+[15.146812
+0
+15.146812
+0
+9.643388
+0
+13.783351
+0
+22.038488
+0
+22.038488
+0
+6.891676
+0
+15.146812
+0
+15.146812
+0] Tj
+-278 TJm
+(with)
+[19.286776
+0
+6.891676
+0
+8.255137
+0
+15.146812
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.484 701.916 Td
+/F335_0 24.7902 Tf
+(libbzip2)
+[14.87412
+0
+14.87412
+0
+14.87412
+0
+14.87412
+0
+14.87412
+0
+14.87412
+0
+14.87412
+0
+14.87412
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F9_0 17.2154 Tf
+(T)
+[10.518609
+0] Tj
+80 TJm
+(ab)
+[9.571762
+0
+10.518609
+0] Tj
+10 TJm
+(le)
+[4.785881
+0
+9.571762
+0] Tj
+-278 TJm
+(of)
+[10.518609
+0
+5.732728
+0] Tj
+-278 TJm
+(Contents)
+[12.429519
+0
+10.518609
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F15_0 9.9626 Tf
+(3.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(op-le)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(structure)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.538 635.788 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 635.788 Td
+/F15_0 9.9626 Tf
+(8)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(3.1.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Lo)
+[6.087149
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.406 623.832 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 623.832 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(3.1.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(High-le)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+190.363 611.877 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 611.877 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(3.1.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Utility)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(summary)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+215.337 599.922 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.108 599.922 Td
+/F15_0 9.9626 Tf
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(3.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Error)
+[6.087149
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.366 587.967 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 587.967 Td
+/F15_0 9.9626 Tf
+(10)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 576.012 Td
+(3.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Lo)
+[6.087149
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.8 576.012 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 576.012 Td
+/F15_0 9.9626 Tf
+(11)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.057 Td
+(3.3.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompressInit)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.302 564.057 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 564.057 Td
+/F15_0 9.9626 Tf
+(11)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 552.101 Td
+(3.3.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompress)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.742 552.101 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 552.101 Td
+/F15_0 9.9626 Tf
+(13)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.146 Td
+(3.3.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzCompressEnd)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+197.622 540.146 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 540.146 Td
+/F15_0 9.9626 Tf
+(16)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 528.191 Td
+(3.3.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompressInit)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.641 528.191 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 528.191 Td
+/F15_0 9.9626 Tf
+(16)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 516.236 Td
+(3.3.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompress)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.867 516.236 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 516.236 Td
+/F15_0 9.9626 Tf
+(17)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 504.281 Td
+(3.3.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzDecompressEnd)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.747 504.281 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 504.281 Td
+/F15_0 9.9626 Tf
+(18)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 492.325 Td
+(3.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(High-le)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.757 492.325 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 492.325 Td
+/F15_0 9.9626 Tf
+(18)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 480.37 Td
+(3.4.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadOpen)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.057 480.37 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 480.37 Td
+/F15_0 9.9626 Tf
+(19)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 468.415 Td
+(3.4.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzRead)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.198 468.415 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 468.415 Td
+/F15_0 9.9626 Tf
+(20)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 456.46 Td
+(3.4.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadGetUnused)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.192997
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.747 456.46 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 456.46 Td
+/F15_0 9.9626 Tf
+(21)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 444.505 Td
+(3.4.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzReadClose)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+6.645054
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.614 444.505 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 444.505 Td
+/F15_0 9.9626 Tf
+(22)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 432.55 Td
+(3.4.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWriteOpen)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.162 432.55 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 432.55 Td
+/F15_0 9.9626 Tf
+(22)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 420.594 Td
+(3.4.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWrite)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.303 420.594 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 420.594 Td
+/F15_0 9.9626 Tf
+(23)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 408.639 Td
+(3.4.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzWriteClose)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+9.404694
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+6.645054
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.934 408.639 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 408.639 Td
+/F15_0 9.9626 Tf
+(23)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 396.684 Td
+(3.4.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Handling)
+[7.192997
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(embedded)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+291.142 396.684 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 396.684 Td
+/F15_0 9.9626 Tf
+(24)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 384.729 Td
+(3.4.9.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Standard)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le-reading/writing)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.318 384.729 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 384.729 Td
+/F15_0 9.9626 Tf
+(25)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 372.774 Td
+(3.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Utility)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.186 372.774 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 372.774 Td
+/F15_0 9.9626 Tf
+(26)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 360.819 Td
+(3.5.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzBuf)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fT)
+[3.317546
+0
+6.087149
+0] Tj
+80 TJm
+(oBuf)
+[4.9813
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fCompress)
+[3.317546
+0
+6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.243 360.819 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 360.819 Td
+/F15_0 9.9626 Tf
+(26)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 348.863 Td
+(3.5.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(BZ2_bzBuf)
+[6.645054
+0
+6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fT)
+[3.317546
+0
+6.087149
+0] Tj
+80 TJm
+(oBuf)
+[4.9813
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fDecompress)
+[3.317546
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.368 348.863 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 348.863 Td
+/F15_0 9.9626 Tf
+(27)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 336.908 Td
+(3.6.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(zlib)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(compatibility)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.601 336.908 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 336.908 Td
+/F15_0 9.9626 Tf
+(28)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 324.953 Td
+(3.7.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Using)
+[7.192997
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(stdio-free)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironment)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.633 324.953 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 324.953 Td
+/F15_0 9.9626 Tf
+(28)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.998 Td
+(3.7.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Getting)
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(rid)
+[3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(stdio)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+185.033 312.998 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 312.998 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 301.043 Td
+(3.7.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Critical)
+[6.645054
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.17 301.043 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 301.043 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 289.088 Td
+(3.8.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Making)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(DLL)
+[7.192997
+0
+6.087149
+0
+6.087149
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.998 289.088 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 289.088 Td
+/F15_0 9.9626 Tf
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 257.207 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(chapter)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(describes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(programming)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.448 257.207 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.269 257.207 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 235.289 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-273 TJm
+(general)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-272 TJm
+(background)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(information,)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-278 TJm
+(particularly)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-273 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-273 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-272 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-273 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-272 TJm
+(aspects,)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-279 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(d)
+[4.9813
+0] Tj
+-272 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-273 TJm
+(well)
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-273 TJm
+(advised)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+72 223.334 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([2])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(well.)
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 188.581 Td
+/F9_0 20.6585 Tf
+(3.1.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(T)
+[12.622344
+0] Tj
+80 TJm
+(op-le)
+[12.622344
+0
+12.622344
+0
+6.879281
+0
+5.743063
+0
+11.486126
+0] Tj
+15 TJm
+(vel)
+[11.486126
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(structure)
+[11.486126
+0
+6.879281
+0
+8.036157
+0
+12.622344
+0
+11.486126
+0
+6.879281
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 166.663 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+123.608 166.663 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-380 TJm
+(a)
+[4.423394
+0] Tj
+-380 TJm
+(\003e)
+[5.539206
+0
+4.423394
+0] Tj
+15 TJm
+(xible)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-381 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-380 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-380 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-381 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.291 166.663 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.966 166.663 Td
+/F15_0 9.9626 Tf
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-380 TJm
+(format.)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-1401 TJm
+(Although)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+72 154.708 Td
+(packaged)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-284 TJm
+(a)
+[4.423394
+0] Tj
+-285 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-285 TJm
+(entity)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-293 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-285 TJm
+(helps)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-285 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-284 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(ard)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-285 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-285 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-284 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-285 TJm
+(three)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-285 TJm
+(separate)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-284 TJm
+(parts:)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-285 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-284 TJm
+(le)
+[2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-285 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace,)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-293 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-285 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-285 TJm
+(high)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 142.753 Td
+(le)
+[2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace,)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(utility)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(functions.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 120.835 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-349 TJm
+(structure)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-349 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+141.082 120.835 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.903 120.835 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-349 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(aces)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-349 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-349 TJm
+(similar)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-349 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-349 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-349 TJm
+(Jean-loup)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-349 TJm
+(Gailly')
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-349 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-349 TJm
+(Mark)
+[8.856751
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-349 TJm
+(Adler')
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-349 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xcellent)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.09 120.835 Td
+/F17_0 9.9626 Tf
+(zlib)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 108.88 Td
+/F15_0 9.9626 Tf
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 86.962 Td
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-242 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xternally)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-242 TJm
+(visible)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-241 TJm
+(symbols)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-242 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-242 TJm
+(names)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-242 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(ginning)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.687 86.962 Td
+/F17_0 9.9626 Tf
+(BZ2_)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.597 86.962 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-615 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-241 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-242 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-242 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-242 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-242 TJm
+(1.0.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-614 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(intention)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-242 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-241 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-242 TJm
+(minimise)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+72 75.007 Td
+(pollution)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(namespaces)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(clients.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+541.288 50.951 Td
+(8)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 9 12
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+420.96 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+498.449 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+240.567 710.037 Td
+/F17_0 9.9626 Tf
+(#include)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(<bzlib.h>)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.654 710.037 Td
+/F15_0 9.9626 Tf
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(sources.)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 679.416 Td
+/F9_0 17.2154 Tf
+(3.1.1.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Lo)
+[10.518609
+0
+10.518609
+0] Tj
+15 TJm
+(w-le)
+[13.393581
+0
+5.732728
+0
+4.785881
+0
+9.571762
+0] Tj
+15 TJm
+(vel)
+[9.571762
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(summar)
+[9.571762
+0
+10.518609
+0
+15.304491
+0
+15.304491
+0
+9.571762
+0
+6.696791
+0] Tj
+-10 TJm
+(y)
+[9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 657.498 Td
+/F15_0 9.9626 Tf
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-212 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-212 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vides)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-212 TJm
+(services)
+[3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-212 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-212 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-212 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-212 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+1 TJm
+(ing)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-212 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-212 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-212 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-595 TJm
+(There')
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-212 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-212 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vision)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-212 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-212 TJm
+(dealing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 645.543 Td
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-213 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-220 TJm
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-213 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-213 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-213 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-213 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-213 TJm
+(mechanisms,)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-221 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-213 TJm
+(straight)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-213 TJm
+(memory-to-memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-213 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-595 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-213 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(act,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-221 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-213 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-213 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-213 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-213 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+72 633.588 Td
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compiled)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(without)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(inclusion)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+222.534 633.588 Td
+/F17_0 9.9626 Tf
+(stdio.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.377 633.588 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(helpful)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(embedded)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(applications.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.67 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(global)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ariables)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(therefore)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(thread-safe.)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 589.752 Td
+(Six)
+[5.539206
+0
+2.769603
+0
+4.9813
+0] Tj
+-875 TJm
+(routines)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-876 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-875 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-876 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-875 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-876 TJm
+(le)
+[2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-875 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace:)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.791 589.752 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+416.387 589.752 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.158 589.752 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+512.844 589.752 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-1032 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 577.797 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.15 577.797 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-1258 TJm
+(compression,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1510 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-1257 TJm
+(a)
+[4.423394
+0] Tj
+-1258 TJm
+(corresponding)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-1258 TJm
+(trio)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.958 577.797 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 577.797 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 565.842 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.707 565.842 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.158 565.842 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.798 565.842 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-508 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-2171 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.918 564.099 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+437.895 565.842 Td
+(Init)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+466.871 565.842 Td
+/F15_0 9.9626 Tf
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-508 TJm
+(allocate)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+72 553.887 Td
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-574 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-573 TJm
+(compression/decompression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-574 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-574 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-573 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-574 TJm
+(initialisations,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-654 TJm
+(whilst)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-574 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.503 552.143 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+425.48 553.887 Td
+(End)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.128 553.887 Td
+/F15_0 9.9626 Tf
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-574 TJm
+(close)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-573 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+72 541.932 Td
+(operations)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(release)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 520.014 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(real)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-303 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-303 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-303 TJm
+(done)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-303 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.892 520.014 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.598 520.014 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+281.003 520.014 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.645 520.014 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-939 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-303 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-303 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-303 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-303 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+72 508.059 Td
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-205 TJm
+(a)
+[4.423394
+0] Tj
+-205 TJm
+(user)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-supplied)
+[3.317546
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-205 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-206 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-205 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-205 TJm
+(a)
+[4.423394
+0] Tj
+-205 TJm
+(user)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-supplied)
+[3.317546
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-205 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-205 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-591 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-205 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fers)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-205 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-205 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-205 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-205 TJm
+(size;)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-220 TJm
+(arbitrary)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-206 TJm
+(quantities)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-205 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 496.104 Td
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-258 TJm
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-258 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-257 TJm
+(making)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(repeated)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-258 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-258 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-258 TJm
+(functions.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-667 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-258 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-258 TJm
+(a)
+[4.423394
+0] Tj
+-257 TJm
+(\003e)
+[5.539206
+0
+4.423394
+0] Tj
+15 TJm
+(xible)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-258 TJm
+(allo)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(a)
+[4.423394
+0] Tj
+-258 TJm
+(consumer)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-pull)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+72 484.148 Td
+(style)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(acti)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(vity)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(producer)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-push,)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(mixture)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(both.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 453.527 Td
+/F9_0 17.2154 Tf
+(3.1.2.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(High-le)
+[12.429519
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0
+5.732728
+0
+4.785881
+0
+9.571762
+0] Tj
+15 TJm
+(vel)
+[9.571762
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(summar)
+[9.571762
+0
+10.518609
+0
+15.304491
+0
+15.304491
+0
+9.571762
+0
+6.696791
+0] Tj
+-10 TJm
+(y)
+[9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 431.609 Td
+/F15_0 9.9626 Tf
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-284 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-284 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vides)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-285 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-284 TJm
+(handy)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(wrappers)
+[7.192997
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-284 TJm
+(around)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-284 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-285 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-284 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-284 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acilitate)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-284 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-285 TJm
+(writ)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(ing)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 431.609 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 419.654 Td
+/F15_0 9.9626 Tf
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-347 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-346 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+125.391 419.654 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.754 419.654 Td
+/F15_0 9.9626 Tf
+(\002les\).)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.317546
+0
+2.49065
+0] Tj
+-1200 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-346 TJm
+(routines)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-347 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-346 TJm
+(hooks)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-347 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-346 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acilitate)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-347 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-347 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-346 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-347 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-346 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+460.049 419.654 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.39 419.654 Td
+/F15_0 9.9626 Tf
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-347 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+72 407.699 Td
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-339 TJm
+(embedded)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-339 TJm
+(within)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-339 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-339 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-scale)
+[3.317546
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-339 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-339 TJm
+(structure,)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-361 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-340 TJm
+(wher)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+-340 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-339 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-339 TJm
+(multiple)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.941 407.699 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+434.207 407.699 Td
+/F15_0 9.9626 Tf
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-339 TJm
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-339 TJm
+(concatenated)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+72 395.744 Td
+(end-to-end.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 373.826 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-332 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-333 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.803 373.826 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.489 373.826 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.496 373.826 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.272 373.826 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.279 373.826 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+393.253 373.826 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.951 373.826 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+527.836 373.826 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+72 361.871 Td
+(supplied.)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(writing)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.471 361.871 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.135 361.871 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.116 361.871 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.36 361.871 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.237 361.871 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteFinish)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.346 361.871 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 339.953 Td
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-374 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-374 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-375 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-374 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-405 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-374 TJm
+(global)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-374 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ariables)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-375 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-374 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-374 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-374 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-374 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-375 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-374 TJm
+(per)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-374 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+-374 TJm
+(thread-safe.)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-1365 TJm
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(we)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-406 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-374 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+72 327.998 Td
+(errors)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-267 TJm
+(occur)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+-267 TJm
+(whilst)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-267 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-267 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-267 TJm
+(writing)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-267 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-268 TJm
+(underlying)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-267 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-267 TJm
+(\002les,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-271 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-267 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-267 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-267 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-267 TJm
+(consult)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+457.199 327.998 Td
+/F17_0 9.9626 Tf
+(errno)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+489.748 327.998 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-267 TJm
+(determine)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 316.043 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-366 TJm
+(cause)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-365 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-366 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-365 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-1314 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-366 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-365 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-395 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(d)
+[4.9813
+0] Tj
+-366 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-365 TJm
+(a)
+[4.423394
+0] Tj
+-366 TJm
+(C)
+[6.645054
+0] Tj
+-365 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-366 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-366 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-365 TJm
+(supports)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.668 316.043 Td
+/F17_0 9.9626 Tf
+(errno)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+465.199 316.043 Td
+/F15_0 9.9626 Tf
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-366 TJm
+(a)
+[4.423394
+0] Tj
+-365 TJm
+(multithreaded)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 304.088 Td
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironment.)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 282.17 Td
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-243 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-243 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-243 TJm
+(a)
+[4.423394
+0] Tj
+-243 TJm
+(little)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-242 TJm
+(simpler)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-243 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-243 TJm
+(portable,)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.263 282.17 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+375.368 282.17 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.172 282.17 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.254 282.17 Td
+/F15_0 9.9626 Tf
+(require)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-243 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 270.215 Td
+(pass)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-247 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-248 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-247 TJm
+(handles)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-247 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.421 270.215 Td
+/F17_0 9.9626 Tf
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+189.331 268.471 Td
+(*)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.309 270.215 Td
+/F15_0 9.9626 Tf
+(s\))
+[3.875451
+0
+3.317546
+0] Tj
+-247 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-248 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-247 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(viously)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+-247 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-248 TJm
+(opened)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-247 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-247 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-247 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-248 TJm
+(writing)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-247 TJm
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-618 TJm
+(That)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-248 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(oids)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+72 258.259 Td
+(portability)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-272 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-273 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-272 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-273 TJm
+(operations)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-272 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-273 TJm
+(attrib)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(utes,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-278 TJm
+(whilst)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-272 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-272 TJm
+(being)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-273 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(imposition)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 246.304 Td
+(programmer)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 215.683 Td
+/F9_0 17.2154 Tf
+(3.1.3.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Utility)
+[12.429519
+0
+5.732728
+0
+4.785881
+0
+4.785881
+0
+4.785881
+0
+5.732728
+0
+9.571762
+0] Tj
+-278 TJm
+(functions)
+[5.732728
+0
+10.518609
+0
+10.518609
+0
+9.571762
+0
+5.732728
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0
+9.571762
+0] Tj
+-278 TJm
+(summar)
+[9.571762
+0
+10.518609
+0
+15.304491
+0
+15.304491
+0
+9.571762
+0
+6.696791
+0] Tj
+-10 TJm
+(y)
+[9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 193.765 Td
+/F15_0 9.9626 Tf
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-273 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-273 TJm
+(simple)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-273 TJm
+(needs,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+165.929 193.765 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.112 193.765 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+329.219 193.765 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+487.357 193.765 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-273 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vided.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 181.81 Td
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-374 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-373 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-374 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-373 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-374 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-373 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-374 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-373 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-374 TJm
+(another)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-374 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-373 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-374 TJm
+(a)
+[4.423394
+0] Tj
+-373 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-374 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-373 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-1362 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-373 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-374 TJm
+(assess)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+72 169.855 Td
+(whether)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-344 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-343 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-344 TJm
+(ful\002ll)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+2.769603
+0
+2.769603
+0] Tj
+-344 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-343 TJm
+(memory-to-memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-344 TJm
+(compression/decompression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-343 TJm
+(requirements)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-344 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-344 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(esting)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 157.9 Td
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fort)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(understanding)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(general)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(x)
+[4.9813
+0] Tj
+-250 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 135.982 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(oshioka)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-423 TJm
+(Tsuneo)
+[6.087149
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-422 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.161 135.982 Td
+/F17_0 9.9626 Tf
+(tsuneo@rr.iij4u.or.jp)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.69 135.982 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-423 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-422 TJm
+(contrib)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(uted)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-423 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-423 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-422 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-423 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-423 TJm
+(better)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+476.462 135.982 Td
+/F17_0 9.9626 Tf
+(zlib)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.583 135.982 Td
+/F15_0 9.9626 Tf
+(compati-)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+72 124.027 Td
+(bility)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1446 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-388 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-387 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.914 124.027 Td
+/F17_0 9.9626 Tf
+(BZ2_bzopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.689 124.027 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.385 124.027 Td
+/F17_0 9.9626 Tf
+(BZ2_bzread)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.161 124.027 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+326.857 124.027 Td
+/F17_0 9.9626 Tf
+(BZ2_bzwrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.611 124.027 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.307 124.027 Td
+/F17_0 9.9626 Tf
+(BZ2_bzflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+465.06 124.027 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.756 124.027 Td
+/F17_0 9.9626 Tf
+(BZ2_bzclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 124.027 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 112.072 Td
+/F17_0 9.9626 Tf
+(BZ2_bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.408 112.072 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+157.449 112.072 Td
+/F17_0 9.9626 Tf
+(BZ2_bzlibVersion)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.091 112.072 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-719 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-267 TJm
+(\002nd)
+[5.539206
+0
+4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-267 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-266 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-267 TJm
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(enient)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-266 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-267 TJm
+(simple)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-266 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-267 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 100.116 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(writ)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(ing,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-275 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-269 TJm
+(those)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-270 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-270 TJm
+(high-le)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-269 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-737 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-270 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-269 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-270 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-269 TJm
+(\(yet\))
+[3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-270 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(\002cially)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-270 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-269 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-270 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-274 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+72 88.161 Td
+(minimally)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(documented)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-291 TJm
+(here.)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-867 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-291 TJm
+(break,)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-301 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-291 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-292 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(k)
+[4.9813
+0] Tj
+10 TJm
+(eep)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-291 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-291 TJm
+(pieces.)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-433 TJm
+(I)
+[3.317546
+0] Tj
+-291 TJm
+(hope)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-291 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(document)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-292 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-291 TJm
+(properly)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 76.206 Td
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(permits.)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+541.288 51.071 Td
+(9)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 10 13
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(oshioka)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(contrib)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(uted)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(modi\002cations)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(allo)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uilt)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-250 TJm
+(DLL.)
+[7.192997
+0
+6.087149
+0
+6.087149
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 675.504 Td
+/F9_0 20.6585 Tf
+(3.2.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Err)
+[13.77922
+0
+8.036157
+0
+8.036157
+0] Tj
+20 TJm
+(or)
+[12.622344
+0
+8.036157
+0] Tj
+-278 TJm
+(handling)
+[12.622344
+0
+11.486126
+0
+12.622344
+0
+12.622344
+0
+5.743063
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 653.805 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-214 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-215 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-214 TJm
+(designed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-215 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-214 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-215 TJm
+(cleanly)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-214 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-215 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-214 TJm
+(situations,)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-222 TJm
+(including)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-214 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-215 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst-case)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-214 TJm
+(situation)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-215 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-214 TJm
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-215 TJm
+(random)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0] Tj
+72 641.85 Td
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-764 TJm
+(I'm)
+[3.317546
+0
+3.317546
+0
+7.750903
+0] Tj
+-274 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(100%)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+8.298846
+0] Tj
+-274 TJm
+(sure)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-274 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-274 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-274 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-274 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+10 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ays)
+[4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-274 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-280 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-274 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(might)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-274 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-274 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(add)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(a)
+[4.423394
+0] Tj
+-275 TJm
+(s)
+[3.875451
+0] Tj
+1 TJm
+(ignal)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-275 TJm
+(handler)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-274 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(catch)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-274 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+15 TJm
+(gmentation)
+[4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 629.895 Td
+(violations)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-273 TJm
+(during)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-273 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-273 TJm
+(feeling)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(especiall)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(y)
+[4.9813
+0] Tj
+-274 TJm
+(paranoid.)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-758 TJm
+(I)
+[3.317546
+0] Tj
+-273 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-273 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-273 TJm
+(interested)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-273 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(hearing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-273 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-273 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+72 617.939 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(rob)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+20 TJm
+(ustness)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(corrupted)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.241 Td
+(V)
+[7.192997
+0] Tj
+111 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(1.0.3)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-251 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-251 TJm
+(rob)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+20 TJm
+(ust)
+[4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-251 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-251 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-251 TJm
+(respect)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-252 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-251 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-251 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(vious)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-251 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion.)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-626 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(estig)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+5 TJm
+(ations)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-251 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-251 TJm
+(V)
+[7.192997
+0] Tj
+111 TJm
+(algrind)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(\(a)
+[3.317546
+0
+4.423394
+0] Tj
+-252 TJm
+(tool)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-251 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-251 TJm
+(detecting)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 584.285 Td
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-422 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-421 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-422 TJm
+(management\))
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+-421 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-422 TJm
+(that,)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-464 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-422 TJm
+(least)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-421 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-422 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-422 TJm
+(f)
+[3.317546
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-422 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-422 TJm
+(I)
+[3.317546
+0] Tj
+-421 TJm
+(tested,)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-464 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-422 TJm
+(single-bit)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-422 TJm
+(errors)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-421 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-422 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 572.33 Td
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-341 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-342 TJm
+(caught)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-342 TJm
+(properly)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-365 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-341 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+15 TJm
+(gmentation)
+[4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aults,)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-365 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-341 TJm
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-342 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-342 TJm
+(uninitialised)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-364 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-342 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-342 TJm
+(range)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+72 560.375 Td
+(reads)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-261 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-260 TJm
+(writes,)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-263 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(in\002nit)
+[2.769603
+0
+4.9813
+0
+5.539206
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+-261 TJm
+(looping)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-260 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-261 TJm
+(decompressor)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-342 TJm
+(So)
+[5.539206
+0
+4.9813
+0] Tj
+-260 TJm
+(it')
+[2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-261 TJm
+(certainly)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-260 TJm
+(pretty)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-261 TJm
+(rob)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+20 TJm
+(ust,)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+2.49065
+0] Tj
+-263 TJm
+(although)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(I)
+[3.317546
+0] Tj
+-260 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ouldn')
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-261 TJm
+(claim)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+7.750903
+0] Tj
+72 548.42 Td
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(totally)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(bombproof.)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 526.721 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+105.84 526.721 Td
+/F17_0 9.9626 Tf
+(bzlib.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+150.491 526.721 Td
+/F15_0 9.9626 Tf
+(contains)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-282 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-282 TJm
+(de\002nitions)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-282 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-281 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-282 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-282 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-811 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-282 TJm
+(particular)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-290 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-282 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-281 TJm
+(de\002nitely)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-282 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-282 TJm
+(include)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 514.766 Td
+/F17_0 9.9626 Tf
+(bzlib_private.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 514.766 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 493.067 Td
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.807 493.067 Td
+/F17_0 9.9626 Tf
+(bzlib.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.651 493.067 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-252 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-252 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(arious)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-252 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-252 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-251 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-252 TJm
+(de\002ned.)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-631 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-252 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(list)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-251 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-252 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-252 TJm
+(intended)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-251 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xhausti)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-252 TJm
+(description)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 481.112 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-236 TJm
+(circumstances)
+[4.423394
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-236 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-237 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(a)
+[4.423394
+0] Tj
+-236 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-236 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-237 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-236 TJm
+(returned)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-236 TJm
+(those)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-236 TJm
+(descriptions)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-236 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-237 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(later)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-305 TJm
+(Rather)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-239 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-236 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-237 TJm
+(intended)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 469.157 Td
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-266 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(rough)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-265 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-266 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-265 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-714 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-266 TJm
+(\002)
+[5.539206
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-265 TJm
+(actions)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-266 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-266 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-265 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-265 TJm
+(intended)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(denote)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-265 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+72 457.202 Td
+(situation.)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 425.759 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 413.804 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(requested)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(completed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(successfully)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 388.34 Td
+/F17_0 9.9626 Tf
+(BZ_RUN_OK,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(BZ_FLUSH_OK,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(BZ_FINISH_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 376.384 Td
+/F15_0 9.9626 Tf
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.789 376.384 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+202.476 376.384 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(requested)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\003ush/\002nish/nothing-special)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(completed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(successfully)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 350.92 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 338.965 Td
+/F15_0 9.9626 Tf
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(completed,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(during)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 303.756 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(kind.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.314 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 260.359 Td
+/F15_0 9.9626 Tf
+(Indicates)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-386 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-385 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-386 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-386 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-386 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-385 TJm
+(improperly)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-386 TJm
+(compiled)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-386 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-386 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-385 TJm
+(platform)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-386 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-386 TJm
+(a)
+[4.423394
+0] Tj
+-386 TJm
+(major)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-385 TJm
+(con\002guration)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-386 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+108 248.404 Td
+(Speci\002cally)
+[5.539206
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-481 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-435 TJm
+(means)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-435 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.614 248.404 Td
+/F17_0 9.9626 Tf
+(sizeof\(char\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+292.345 248.404 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.628 248.404 Td
+/F17_0 9.9626 Tf
+(sizeof\(short\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+381.669 248.404 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.388 248.404 Td
+/F17_0 9.9626 Tf
+(sizeof\(int\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+470.474 248.404 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-435 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-435 TJm
+(1,)
+[4.9813
+0
+2.49065
+0] Tj
+-481 TJm
+(2)
+[4.9813
+0] Tj
+-435 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+108 236.448 Td
+(4)
+[4.9813
+0] Tj
+-389 TJm
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-424 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-390 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-389 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-389 TJm
+(be.)
+[4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-1456 TJm
+(Note)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-389 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-389 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-389 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-390 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-389 TJm
+(still)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-389 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-389 TJm
+(properly)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-390 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-389 TJm
+(64-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-389 TJm
+(platforms)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+108 224.493 Td
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-292 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-292 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-292 TJm
+(LP64)
+[6.087149
+0
+5.539206
+0
+4.9813
+0
+4.9813
+0] Tj
+-292 TJm
+(programming)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-293 TJm
+(model)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-292 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-292 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-292 TJm
+(is,)
+[2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-303 TJm
+(where)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+355.279 224.493 Td
+/F17_0 9.9626 Tf
+(sizeof\(long\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.92 224.493 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+447.217 224.493 Td
+/F17_0 9.9626 Tf
+(sizeof\(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+512.97 222.75 Td
+(*)
+[5.97756
+0] Tj
+518.948 224.493 Td
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+527.836 224.493 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+108 212.538 Td
+(8.)
+[4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(Under)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(LP64,)
+[6.087149
+0
+5.539206
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+175.606 212.538 Td
+/F17_0 9.9626 Tf
+(sizeof\(int\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.85 212.538 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(still)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(4,)
+[4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+291.74 212.538 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.561 212.538 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.458 212.538 Td
+/F17_0 9.9626 Tf
+(long)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+459.859 212.538 Td
+/F15_0 9.9626 Tf
+(type,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(OK.)
+[7.192997
+0
+7.192997
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 187.073 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 175.118 Td
+/F15_0 9.9626 Tf
+(When)
+[9.404694
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-291 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-291 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-300 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-291 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(important)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-291 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-291 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-291 TJm
+(correct)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-290 TJm
+(sequence)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-291 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-290 TJm
+(structures)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+108 163.163 Td
+(\(b)
+[3.317546
+0
+4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fers)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-206 TJm
+(etc\))
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-205 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-206 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-205 TJm
+(correct)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-206 TJm
+(states.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+239.409 163.163 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.278 163.163 Td
+/F15_0 9.9626 Tf
+(checks)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-206 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-205 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-206 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-206 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-205 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-206 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-205 TJm
+(ensure)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-206 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-206 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-205 TJm
+(happening,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-215 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-205 TJm
+(returns)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 151.208 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.27 151.208 Td
+/F15_0 9.9626 Tf
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-367 TJm
+(not.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-659 TJm
+(Code)
+[6.645054
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-367 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-367 TJm
+(complies)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-366 TJm
+(precisely)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-367 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-366 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-367 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-366 TJm
+(semantics,)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-396 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-367 TJm
+(detailed)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+108 139.253 Td
+(belo)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(recei)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue;)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ent)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(denotes)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uggy)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(estig)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+5 TJm
+(ate.)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 113.788 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 101.833 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-434 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-434 TJm
+(a)
+[4.423394
+0] Tj
+-434 TJm
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-434 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-434 TJm
+(a)
+[4.423394
+0] Tj
+-433 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-434 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-434 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-434 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-434 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-434 TJm
+(range)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-434 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-434 TJm
+(otherwise)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-434 TJm
+(manifestly)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-434 TJm
+(incorrect.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-1723 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+108 89.878 Td
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.644 89.878 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+233.263 89.878 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-595 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-596 TJm
+(denotes)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-595 TJm
+(a)
+[4.423394
+0] Tj
+-595 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-596 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-595 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-595 TJm
+(client)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-595 TJm
+(code.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-2692 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-596 TJm
+(distinction)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-595 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 77.923 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194.177 77.923 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.054 77.923 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+315.163 77.923 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(bit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(hazy)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(still)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orth)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(making.)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(10)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 11 14
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 698.082 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-227 TJm
+(a)
+[4.423394
+0] Tj
+-228 TJm
+(request)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-227 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(allocate)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-228 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-227 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailed.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-605 TJm
+(Note)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-228 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-228 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-227 TJm
+(quantity)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-227 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-228 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-227 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+108 686.127 Td
+(a)
+[4.423394
+0] Tj
+-351 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-352 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-351 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-352 TJm
+(determined)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-351 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-352 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-351 TJm
+(stream')
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-351 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-352 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-351 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-352 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1228 TJm
+(So)
+[5.539206
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+426.471 686.127 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 686.127 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 674.172 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.13 674.172 Td
+/F15_0 9.9626 Tf
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-437 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.784 674.172 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.867 674.172 Td
+/F15_0 9.9626 Tf
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-437 TJm
+(though)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-437 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-437 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-437 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-437 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-437 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-437 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-437 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-437 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+108 662.217 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-479 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-478 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-479 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-478 TJm
+(true)
+[2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0] Tj
+-479 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-479 TJm
+(compression;)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-593 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+301.675 662.217 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+414.04 662.217 Td
+/F15_0 9.9626 Tf
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.107 662.217 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.539 662.217 Td
+/F15_0 9.9626 Tf
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+108 650.261 Td
+(successfully)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(completed,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.672 650.261 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+279.894 650.261 Td
+/F15_0 9.9626 Tf
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(occur)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 624.359 Td
+/F17_0 9.9626 Tf
+(BZ_DATA_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 612.404 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-265 TJm
+(a)
+[4.423394
+0] Tj
+-266 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-265 TJm
+(inte)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(grity)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-266 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-265 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(during)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-265 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-714 TJm
+(Most)
+[8.856751
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-266 TJm
+(importantl)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(y)
+[4.9813
+0] Tj
+64 TJm
+(,)
+[2.49065
+0] Tj
+-269 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-266 TJm
+(means)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-265 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+108 600.448 Td
+(stored)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-222 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-223 TJm
+(computed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-222 TJm
+(CRCs)
+[6.645054
+0
+6.645054
+0
+6.645054
+0
+3.875451
+0] Tj
+-222 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-222 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-223 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-222 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-222 TJm
+(match.)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-602 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-222 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-222 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-223 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-222 TJm
+(returned)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-222 TJm
+(upon)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(detection)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-223 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-222 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-222 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+108 588.493 Td
+(anomaly)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 562.59 Td
+/F17_0 9.9626 Tf
+(BZ_DATA_ERROR_MAGIC)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 550.635 Td
+/F15_0 9.9626 Tf
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-306 TJm
+(a)
+[4.423394
+0] Tj
+-306 TJm
+(special)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-306 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-307 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+191.852 550.635 Td
+/F17_0 9.9626 Tf
+(BZ_DATA_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.561 550.635 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-306 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-306 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-306 TJm
+(sometimes)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-306 TJm
+(useful)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-307 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-306 TJm
+(kno)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-306 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-306 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-306 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-306 TJm
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+108 538.68 Td
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(start)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(correct)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(magic)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.562 538.68 Td
+/F17_0 9.9626 Tf
+('B')
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+('Z')
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+('h')
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.316 538.68 Td
+/F15_0 9.9626 Tf
+(\).)
+[3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 512.777 Td
+/F17_0 9.9626 Tf
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 500.822 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-233 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.123 500.822 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.218 500.822 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.922 500.822 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.995 500.822 Td
+/F15_0 9.9626 Tf
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-233 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-232 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-233 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-233 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-233 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-232 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-233 TJm
+(writing)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-233 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-233 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-232 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+108 488.867 Td
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-384 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-357 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.511 488.867 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.755 488.867 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.698 488.867 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.92 488.867 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-357 TJm
+(attempts)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-357 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-357 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-357 TJm
+(a)
+[4.423394
+0] Tj
+-357 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-357 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-358 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-357 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-357 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+108 476.912 Td
+(indicator)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-260 TJm
+(\(viz,)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.603 476.912 Td
+/F17_0 9.9626 Tf
+(ferror\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.401 476.912 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-260 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-260 TJm
+(set.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-680 TJm
+(On)
+[7.192997
+0
+4.9813
+0] Tj
+-259 TJm
+(receipt)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-260 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+311.223 476.912 Td
+/F17_0 9.9626 Tf
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.976 476.912 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-260 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-260 TJm
+(caller)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-260 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-260 TJm
+(consult)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.068 476.912 Td
+/F17_0 9.9626 Tf
+(errno)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+514.546 476.912 Td
+/F15_0 9.9626 Tf
+(and/or)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 464.956 Td
+/F17_0 9.9626 Tf
+(perror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.356 464.956 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(acquire)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(operating-system)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(speci\002c)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0] Tj
+-250 TJm
+(information)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(problem.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 439.054 Td
+/F17_0 9.9626 Tf
+(BZ_UNEXPECTED_EOF)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 427.099 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.467 427.099 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.733 427.099 Td
+/F15_0 9.9626 Tf
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(\002nishes)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(detected.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 401.196 Td
+/F17_0 9.9626 Tf
+(BZ_OUTBUFF_FULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+108 389.241 Td
+/F15_0 9.9626 Tf
+(Returned)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-258 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.632 389.241 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.668 389.241 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.627 389.241 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.617 389.241 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-259 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+108 377.285 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(\002t)
+[5.539206
+0
+2.769603
+0] Tj
+-250 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vided.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 328.585 Td
+/F9_0 20.6585 Tf
+(3.3.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Lo)
+[12.622344
+0
+12.622344
+0] Tj
+15 TJm
+(w-le)
+[16.072313
+0
+6.879281
+0
+5.743063
+0
+11.486126
+0] Tj
+15 TJm
+(vel)
+[11.486126
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(interface)
+[5.743063
+0
+12.622344
+0
+6.879281
+0
+11.486126
+0
+8.036157
+0
+6.879281
+0
+11.486126
+0
+11.486126
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 297.964 Td
+/F9_0 17.2154 Tf
+(3.3.1.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzCompressInit)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+4.785881
+0
+10.518609
+0
+4.785881
+0
+5.732728
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+/F15_0 9.9626 Tf
+(11)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 12 15
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 445.031] cm
+0 0 468 274.969 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(typedef)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(struct)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+98.488 699.676 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+126.642 697.933 Td
+(*)
+[5.97756
+0] Tj
+132.62 699.676 Td
+(next_in;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 687.721 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(avail_in;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(total_in_lo32;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 663.811 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(total_in_hi32;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 639.9 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+126.642 638.157 Td
+(*)
+[5.97756
+0] Tj
+132.62 639.9 Td
+(next_out;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 627.945 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(avail_out;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 615.99 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(total_out_lo32;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 604.035 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(total_out_hi32;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 580.124 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+126.642 578.381 Td
+(*)
+[5.97756
+0] Tj
+132.62 580.124 Td
+(state;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 556.214 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+126.642 554.471 Td
+(*)
+[5.97756
+0] Tj
+132.62 556.214 Td
+(\()
+[5.97756
+0] Tj
+138.597 554.471 Td
+(*)
+[5.97756
+0] Tj
+144.575 556.214 Td
+(bzalloc\)\(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+226.528 554.471 Td
+(*)
+[5.97756
+0] Tj
+232.505 556.214 Td
+(,int,int\);)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 544.259 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+132.62 542.515 Td
+(*)
+[5.97756
+0] Tj
+138.597 544.259 Td
+(bzfree\)\(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+214.572 542.515 Td
+(*)
+[5.97756
+0] Tj
+220.55 544.259 Td
+(,void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+254.682 542.515 Td
+(*)
+[5.97756
+0] Tj
+260.659 544.259 Td
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+98.488 532.304 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+126.642 530.56 Td
+(*)
+[5.97756
+0] Tj
+132.62 532.304 Td
+(opaque;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 520.349 Td
+(})
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 496.438 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+292.281 494.695 Td
+(*)
+[5.97756
+0] Tj
+298.259 496.438 Td
+(strm,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 484.483 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 472.528 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 460.573 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 423.113 Td
+/F15_0 9.9626 Tf
+(Prepares)
+[5.539206
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-356 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-356 TJm
+(compression.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1256 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+209.41 423.113 Td
+/F17_0 9.9626 Tf
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.754 423.113 Td
+/F15_0 9.9626 Tf
+(structure)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-356 TJm
+(holds)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-356 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-356 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-356 TJm
+(pertaining)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-356 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-356 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-356 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-355 TJm
+(acti)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(vity)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1256 TJm
+(A)
+[7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 411.158 Td
+/F17_0 9.9626 Tf
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.581 411.158 Td
+/F15_0 9.9626 Tf
+(structure)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-279 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(allocated)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(initialised)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(prior)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-796 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(\002elds)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-279 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.939 411.158 Td
+/F17_0 9.9626 Tf
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+488.52 411.158 Td
+/F15_0 9.9626 Tf
+(comprise)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 399.203 Td
+(entirety)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(user)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-visible)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.422 399.203 Td
+/F17_0 9.9626 Tf
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.8 399.203 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(pointer)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(pri)
+[4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ate)
+[4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(structures)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(required)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(compression.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 377.285 Td
+(Custom)
+[6.645054
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-372 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-372 TJm
+(allocators)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-372 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-372 TJm
+(supported,)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-403 TJm
+(via)
+[4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-372 TJm
+(\002elds)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+288.908 377.285 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+330.751 377.285 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+337.253 377.285 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+373.118 377.285 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-403 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.714 377.285 Td
+/F17_0 9.9626 Tf
+(opaque)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.579 377.285 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1353 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-372 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.782 377.285 Td
+/F17_0 9.9626 Tf
+(opaque)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 377.285 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 365.33 Td
+(passed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-306 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-306 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-306 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-306 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gument)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-306 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-306 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-306 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-305 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.941 365.33 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.832 365.33 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+316.266 365.33 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+352.132 365.33 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-320 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-306 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-306 TJm
+(otherwise)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-306 TJm
+(ignored)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-306 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-306 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-955 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+72 353.375 Td
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.431 353.375 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(\()
+[5.97756
+0] Tj
+-600 TJm
+(opaque,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(n,)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(m)
+[5.97756
+0] Tj
+-600 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.938 353.375 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-306 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpected)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-305 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-306 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-306 TJm
+(a)
+[4.423394
+0] Tj
+-305 TJm
+(pointer)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.3 353.375 Td
+/F17_0 9.9626 Tf
+(p)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+369.322 353.375 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+380.118 353.375 Td
+/F17_0 9.9626 Tf
+(n)
+[5.97756
+0] Tj
+392.073 351.631 Td
+(*)
+[5.97756
+0] Tj
+404.029 353.375 Td
+(m)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.051 353.375 Td
+/F15_0 9.9626 Tf
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-306 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-305 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-320 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.135 353.375 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+72 341.42 Td
+(\()
+[5.97756
+0] Tj
+-600 TJm
+(opaque,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(p)
+[5.97756
+0] Tj
+-600 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.199 341.42 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(free)
+[3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 319.502 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-280 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(don')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-280 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-279 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-280 TJm
+(a)
+[4.423394
+0] Tj
+-280 TJm
+(custom)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-280 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-279 TJm
+(allocator)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-288 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.9 319.502 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.743 319.502 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+347.096 319.502 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+385.749 319.502 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+402.923 319.502 Td
+/F17_0 9.9626 Tf
+(opaque)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.576 319.502 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+452.115 319.502 Td
+/F17_0 9.9626 Tf
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+476.025 319.502 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-280 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-280 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+72 307.547 Td
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.318 307.547 Td
+/F17_0 9.9626 Tf
+(malloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.674 307.547 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+219.934 307.547 Td
+/F17_0 9.9626 Tf
+(free)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.335 307.547 Td
+/F15_0 9.9626 Tf
+(routines.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 285.629 Td
+(Before)
+[6.645054
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-362 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.438 285.629 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.035 285.629 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-390 TJm
+(\002elds)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.606 285.629 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+314.449 285.629 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.825 285.629 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.296 285.629 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.289 285.629 Td
+/F17_0 9.9626 Tf
+(opaque)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.76 285.629 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-362 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-362 TJm
+(\002lled)
+[5.539206
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-362 TJm
+(appropriately)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+72 273.674 Td
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-322 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-323 TJm
+(described.)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1055 TJm
+(Upon)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(return,)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-341 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-323 TJm
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-322 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-323 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-322 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-323 TJm
+(allocated)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-323 TJm
+(initialised,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-340 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+459.801 273.674 Td
+/F17_0 9.9626 Tf
+(total_in_lo32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 273.674 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 261.718 Td
+/F17_0 9.9626 Tf
+(total_in_hi32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 261.718 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.006 261.718 Td
+/F17_0 9.9626 Tf
+(total_out_lo32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.435 261.718 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.564 261.718 Td
+/F17_0 9.9626 Tf
+(total_out_hi32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+344.994 261.718 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-275 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-276 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-275 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-275 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-276 TJm
+(zero.)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-772 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-275 TJm
+(four)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-275 TJm
+(\002elds)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-276 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+72 249.763 Td
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-340 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-339 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-340 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-339 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-340 TJm
+(inform)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-339 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-340 TJm
+(caller)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-339 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-340 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-339 TJm
+(total)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-340 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-339 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-340 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-340 TJm
+(passed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-339 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-340 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-339 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-340 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-339 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-340 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-362 TJm
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+72 237.808 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-376 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-377 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-376 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-376 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-377 TJm
+(change)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-376 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-1378 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-377 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-376 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-377 TJm
+(1.0,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-408 TJm
+(64-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-376 TJm
+(counts)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-376 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-377 TJm
+(maintained,)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-408 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-376 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-376 TJm
+(32-bit)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-377 TJm
+(platforms,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+72 225.853 Td
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-371 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.148 225.853 Td
+/F17_0 9.9626 Tf
+(_hi32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.729 225.853 Td
+/F15_0 9.9626 Tf
+(\002elds)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-371 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-370 TJm
+(store)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-371 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-371 TJm
+(upper)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-370 TJm
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+-371 TJm
+(bits)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-370 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-371 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-371 TJm
+(count.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-1344 TJm
+(So,)
+[5.539206
+0
+4.9813
+0
+2.49065
+0] Tj
+-400 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-371 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xample,)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-401 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-371 TJm
+(total)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-370 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-371 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-370 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-371 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-371 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 213.898 Td
+/F17_0 9.9626 Tf
+(\(total_in_hi32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(<<)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(32\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(+)
+[5.97756
+0] Tj
+-600 TJm
+(total_in_lo32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.171 213.898 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 191.98 Td
+(P)
+[5.539206
+0] Tj
+15 TJm
+(arameter)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+115.367 191.98 Td
+/F17_0 9.9626 Tf
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.205 191.98 Td
+/F15_0 9.9626 Tf
+(speci\002es)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+3.875451
+0] Tj
+-314 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-314 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-314 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-314 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-314 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-314 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-314 TJm
+(compression.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1004 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-314 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-314 TJm
+(a)
+[4.423394
+0] Tj
+-315 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(u)
+[4.9813
+0] Tj
+-1 TJm
+(e)
+[4.423394
+0] Tj
+-314 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-314 TJm
+(1)
+[4.9813
+0] Tj
+72 180.025 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(9)
+[4.9813
+0] Tj
+-289 TJm
+(inclusi)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-299 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(actual)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-289 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-289 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(100000)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(x)
+[4.9813
+0] Tj
+-289 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(\002gure.)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-854 TJm
+(9)
+[4.9813
+0] Tj
+-290 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(best)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-289 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+72 168.07 Td
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 146.152 Td
+(P)
+[5.539206
+0] Tj
+15 TJm
+(arameter)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+115.095 146.152 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+171.75 146.152 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-287 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(a)
+[4.423394
+0] Tj
+-287 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-286 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-287 TJm
+(0)
+[4.9813
+0] Tj
+-287 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(4)
+[4.9813
+0] Tj
+-286 TJm
+(inclusi)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e.)
+[4.423394
+0
+2.49065
+0] Tj
+-841 TJm
+(0)
+[4.9813
+0] Tj
+-286 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(silent,)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-296 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(greater)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-287 TJm
+(numbers)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-286 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+72 134.197 Td
+(increasingly)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-342 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erbose)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-342 TJm
+(monitoring/deb)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+20 TJm
+(ugging)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-1173 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-343 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-342 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-342 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-342 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(compiled)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.429 134.197 Td
+/F17_0 9.9626 Tf
+(-DBZ_NO_STDIO)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+524.138 134.197 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-342 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+72 122.241 Td
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(appear)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erbosity)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(setting.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 100.324 Td
+(P)
+[5.539206
+0] Tj
+15 TJm
+(arameter)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.619 100.324 Td
+/F17_0 9.9626 Tf
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.775 100.324 Td
+/F15_0 9.9626 Tf
+(controls)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-440 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-439 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-440 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-439 TJm
+(phase)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-440 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-440 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-439 TJm
+(presented)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-440 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-440 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-439 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-487 TJm
+(highly)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 88.368 Td
+(repetiti)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-433 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-396 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-1496 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-396 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-396 TJm
+(runs)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-397 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(nto)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-397 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culties)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-396 TJm
+(caused)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-396 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-396 TJm
+(repetiti)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-396 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-432 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-397 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-396 TJm
+(switches)
+[3.875451
+0
+7.192997
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-396 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(12)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 13 16
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-255 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-254 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-254 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(a)
+[4.423394
+0] Tj
+-255 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(allback)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-254 TJm
+(algorithm.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-648 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-255 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(allback)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-254 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-255 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wer)
+[7.192997
+0
+4.423394
+0
+3.317546
+0] Tj
+-255 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-254 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-255 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-254 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-255 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(perhaps)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+72 698.082 Td
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(actor)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(three,)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+10 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ays)
+[4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(reasonably)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(matter)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(bad)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(input.)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.268 Td
+(Lo)
+[6.087149
+0
+4.9813
+0] Tj
+25 TJm
+(wer)
+[7.192997
+0
+4.423394
+0
+3.317546
+0] Tj
+-240 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-239 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.421 676.268 Td
+/F17_0 9.9626 Tf
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.585 676.268 Td
+/F15_0 9.9626 Tf
+(reduce)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-240 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-240 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fort)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-239 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-240 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-240 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-240 TJm
+(wi)
+[7.192997
+0
+2.769603
+0] Tj
+1 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-240 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpend)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-240 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-240 TJm
+(resorting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-239 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 664.313 Td
+(f)
+[3.317546
+0] Tj
+10 TJm
+(allback.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-618 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-248 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-247 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-248 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-247 TJm
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-248 TJm
+(carefully;)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-248 TJm
+(too)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-248 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-248 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-247 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-248 TJm
+(inputs)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-248 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-247 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-248 TJm
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-247 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-248 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-247 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(allback)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-248 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+72 652.358 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-308 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-308 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-308 TJm
+(rather)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-309 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wly)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-322 TJm
+(too)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-309 TJm
+(high,)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-322 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-308 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-309 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erage-to-w)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+7.192997
+0] Tj
+10 TJm
+(orst)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-308 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-308 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-308 TJm
+(times)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+3.875451
+0] Tj
+-308 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-308 TJm
+(become)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-309 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-308 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge.)
+[4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+72 640.402 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(30)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(reasonable)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(wide)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(range)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(circumstances.)
+[4.423394
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 618.588 Td
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(range)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(0)
+[4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(250)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(inclusi)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e.)
+[4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(0)
+[4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(special)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(equi)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alent)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(30.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.774 Td
+(Note)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(generated)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(ardless)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(whether)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(allback)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(used.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 574.96 Td
+(Be)
+[6.645054
+0
+4.423394
+0] Tj
+-303 TJm
+(a)
+[4.423394
+0] Tj
+15 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-303 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-303 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-303 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-304 TJm
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-303 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-303 TJm
+(disappear)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0] Tj
+-303 TJm
+(entirely)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(future)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-303 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-303 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-303 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-304 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-938 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-303 TJm
+(principle)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-303 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-304 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-303 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+72 563.005 Td
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-270 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(de)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(vise)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-270 TJm
+(a)
+[4.423394
+0] Tj
+-270 TJm
+(good)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(automat)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(ically)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(choose)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-270 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-270 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(use.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-740 TJm
+(Such)
+[5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(a)
+[4.423394
+0] Tj
+-270 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-271 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(render)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-270 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 551.049 Td
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(obsolete.)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 529.235 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 384.677] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 519.771 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 507.816 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 495.86 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 483.905 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 471.95 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(9)
+[5.97756
+0] Tj
+98.488 459.995 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(4)
+[5.97756
+0] Tj
+98.488 448.04 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(250)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 436.085 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 424.129 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(enough)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 412.174 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 400.219 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 362.863 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 313.947] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 353.399 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 341.444 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(returned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 329.488 Td
+(no)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(specific)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(action)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(needed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(case)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 283.429 Td
+/F9_0 17.2154 Tf
+(3.3.2.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzCompress)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 254.959] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 270.501 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+268.371 268.757 Td
+(*)
+[5.97756
+0] Tj
+274.348 270.501 Td
+(strm,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(action)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 233.145 Td
+/F15_0 9.9626 Tf
+(Pro)
+[5.539206
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vides)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-222 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-221 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-222 TJm
+(and/or)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-222 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-222 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-221 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-222 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-222 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-221 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-601 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-222 TJm
+(caller)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-222 TJm
+(maintains)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-222 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-221 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-222 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fers,)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-227 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 221.19 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 221.19 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(transfer)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 199.375 Td
+(Before)
+[6.645054
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-212 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-213 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-212 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.961 199.375 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+231.647 199.375 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.329 199.375 Td
+/F17_0 9.9626 Tf
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+280.288 199.375 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-212 TJm
+(point)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-213 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-212 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-213 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-212 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-213 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-212 TJm
+(compressed,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-220 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.493 199.375 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+513.43 199.375 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 187.42 Td
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-246 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-247 TJm
+(m)
+[7.750903
+0] Tj
+1 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+14 TJm
+(y)
+[4.9813
+0] Tj
+-246 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-246 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-246 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-247 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-246 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.242 187.42 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+345.382 187.42 Td
+/F15_0 9.9626 Tf
+(updates)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.271 187.42 Td
+/F17_0 9.9626 Tf
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+420.114 187.42 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.066 187.42 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+475.34 187.42 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.179 187.42 Td
+/F17_0 9.9626 Tf
+(total_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 175.465 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(re\003ect)
+[3.317546
+0
+4.423394
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 153.651 Td
+(Similarly)
+[5.539206
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.611 153.651 Td
+/F17_0 9.9626 Tf
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.072 153.651 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(point)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-265 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(a)
+[4.423394
+0] Tj
+-265 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-265 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-265 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-265 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-265 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-265 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(placed,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-269 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+464.742 153.651 Td
+/F17_0 9.9626 Tf
+(avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.181 153.651 Td
+/F15_0 9.9626 Tf
+(indi-)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+72 141.696 Td
+(cating)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-209 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-209 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-209 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-209 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-209 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-210 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.087 141.696 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.856 141.696 Td
+/F15_0 9.9626 Tf
+(updates)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+361.375 141.696 Td
+/F17_0 9.9626 Tf
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+409.196 141.696 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.851 141.696 Td
+/F17_0 9.9626 Tf
+(avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+469.732 141.696 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 141.696 Td
+/F17_0 9.9626 Tf
+(total_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 129.74 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(re\003ect)
+[3.317546
+0
+4.423394
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 107.926 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-272 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-272 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-272 TJm
+(little)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-272 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-272 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-272 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-271 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-272 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-272 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-272 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-272 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.123 107.926 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.809 107.926 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-752 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-272 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-272 TJm
+(limit,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+72 95.971 Td
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-266 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-265 TJm
+(acceptable)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-266 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-265 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-266 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-266 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(byte)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-266 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-266 TJm
+(a)
+[4.423394
+0] Tj
+-266 TJm
+(time,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-269 TJm
+(although)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-266 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-266 TJm
+(terribly)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(inef)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(\002cient.)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-714 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 84.016 Td
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+10 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ays)
+[4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(ensure)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(least)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(byte)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(13)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 14 17
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(A)
+[7.192997
+0] Tj
+-250 TJm
+(second)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(purpose)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.662 710.037 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+242.839 710.037 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(request)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(change)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(mode)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 688.12 Td
+(Conceptually)
+[6.645054
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-217 TJm
+(a)
+[4.423394
+0] Tj
+-210 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-209 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-209 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-209 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-210 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-209 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-209 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-209 TJm
+(four)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-210 TJm
+(states:)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-289 TJm
+(IDLE,)
+[3.317546
+0
+7.192997
+0
+6.087149
+0
+6.087149
+0
+2.49065
+0] Tj
+-209 TJm
+(R)
+[6.645054
+0] Tj
+40 TJm
+(UNNING,)
+[7.192997
+0
+7.192997
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+2.49065
+0] Tj
+-210 TJm
+(FLUSHING)
+[5.539206
+0
+6.087149
+0
+7.192997
+0
+5.539206
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+-209 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-209 TJm
+(FINISHING.)
+[5.539206
+0
+3.317546
+0
+7.192997
+0
+3.317546
+0
+5.539206
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+2.49065
+0] Tj
+-419 TJm
+(Be-)
+[6.645054
+0
+4.423394
+0
+3.317546
+0] Tj
+72 676.164 Td
+(fore)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-264 TJm
+(initialisation)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+146.434 676.164 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.031 676.164 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-264 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-264 TJm
+(termination)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+349.75 676.164 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+451.369 676.164 Td
+/F15_0 9.9626 Tf
+(\),)
+[3.317546
+0
+2.49065
+0] Tj
+-267 TJm
+(a)
+[4.423394
+0] Tj
+-264 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-264 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-263 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(arded)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 664.209 Td
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(IDLE.)
+[3.317546
+0
+7.192997
+0
+6.087149
+0
+6.087149
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 642.291 Td
+(Upon)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-389 TJm
+(initialisation)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-390 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.036 642.291 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+262.632 642.291 Td
+/F15_0 9.9626 Tf
+(\),)
+[3.317546
+0
+2.49065
+0] Tj
+-424 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-390 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-389 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-390 TJm
+(placed)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-389 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-389 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-390 TJm
+(R)
+[6.645054
+0] Tj
+40 TJm
+(UNNING)
+[7.192997
+0
+7.192997
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+-389 TJm
+(state.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-1457 TJm
+(Subsequent)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-389 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+72 630.336 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+83.818 630.336 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+171.571 630.336 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-408 TJm
+(pass)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+223.431 630.336 Td
+/F17_0 9.9626 Tf
+(BZ_RUN)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.362 630.336 Td
+/F15_0 9.9626 Tf
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-408 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-409 TJm
+(request)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+1 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-409 TJm
+(action;)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-487 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-408 TJm
+(actions)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-409 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-408 TJm
+(ille)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+-408 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-408 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-408 TJm
+(result)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-409 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 618.381 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.619 618.381 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 596.463 Td
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-279 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-279 TJm
+(point,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-286 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-279 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-278 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+14 TJm
+(vi)
+[4.9813
+0
+2.769603
+0] Tj
+1 TJm
+(ded)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-279 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-279 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ants)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-279 TJm
+(to.)
+[2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-793 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-279 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-279 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-279 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(\002nish)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-279 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+72 584.508 Td
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fect,)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-297 TJm
+(asking)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-288 TJm
+(process)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-287 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-288 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-287 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-287 TJm
+(might)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-288 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-287 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fered)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-288 TJm
+(internally)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-844 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-288 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(state,)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.314 584.508 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 572.553 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-258 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-257 TJm
+(longer)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-258 TJm
+(attempt)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0] Tj
+-258 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-257 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.208 572.553 Td
+/F17_0 9.9626 Tf
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+276.051 572.553 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-260 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-257 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-258 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-258 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-257 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.082 572.553 Td
+/F17_0 9.9626 Tf
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+454.902 572.553 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-666 TJm
+(Because)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-258 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-258 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+72 560.598 Td
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-228 TJm
+(supplied)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-229 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-228 TJm
+(user)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0] Tj
+-228 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-228 TJm
+(arbitrarily)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-229 TJm
+(sma)
+[3.875451
+0
+7.750903
+0
+4.423394
+0] Tj
+1 TJm
+(ll,)
+[2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-233 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-228 TJm
+(\002nishing-up)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(operation)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-229 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-228 TJm
+(necessarily)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-228 TJm
+(done)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-228 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-229 TJm
+(a)
+[4.423394
+0] Tj
+-228 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+72 548.642 Td
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.666 548.642 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.352 548.642 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 526.725 Td
+(Instead,)
+[3.317546
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-346 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-327 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-326 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-327 TJm
+(passes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+218.231 526.725 Td
+/F17_0 9.9626 Tf
+(BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.284 526.725 Td
+/F15_0 9.9626 Tf
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-327 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-327 TJm
+(acti)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+338.109 526.725 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.795 526.725 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1081 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-326 TJm
+(changes)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-327 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-327 TJm
+(stream')
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+72 514.77 Td
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-291 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(FINISHING.)
+[5.539206
+0
+3.317546
+0
+7.192997
+0
+3.317546
+0
+5.539206
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0
+2.49065
+0] Tj
+-581 TJm
+(An)
+[7.192997
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-291 TJm
+(remaining)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-291 TJm
+(\(ie,)
+[3.317546
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.452 514.77 Td
+/F17_0 9.9626 Tf
+(next_in[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+-1200 TJm
+(avail_in-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.892 514.77 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-291 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-290 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-291 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(transferred)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+72 502.814 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-421 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-421 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-421 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-1646 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-421 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-422 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+1 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+222.339 502.814 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.22 502.814 Td
+/F15_0 9.9626 Tf
+(must)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-421 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-421 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-421 TJm
+(repeatedly)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-421 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-421 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-421 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-421 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-421 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-421 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 490.859 Td
+(consumed.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1397 TJm
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-379 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-380 TJm
+(point,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.346 490.859 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.813 490.859 Td
+/F15_0 9.9626 Tf
+(returns)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+307.259 490.859 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.968 490.859 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-379 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(stream')
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-380 TJm
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-379 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-380 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-379 TJm
+(back)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-379 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 478.904 Td
+(IDLE.)
+[3.317546
+0
+7.192997
+0
+6.087149
+0
+6.087149
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.666 478.904 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.776 478.904 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(called.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 456.986 Td
+(Just)
+[3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-380 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-380 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-379 TJm
+(sure)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-380 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-379 TJm
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-380 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-380 TJm
+(cheat,)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-412 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-380 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-380 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-379 TJm
+(a)
+[4.423394
+0] Tj
+-380 TJm
+(note)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-380 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+415.708 456.986 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.312 456.986 Td
+/F15_0 9.9626 Tf
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-380 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-379 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 445.031 Td
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-286 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-286 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(o)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.179 445.031 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.713 445.031 Td
+/F15_0 9.9626 Tf
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.035 445.031 Td
+/F17_0 9.9626 Tf
+(BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.68 445.031 Td
+/F15_0 9.9626 Tf
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-286 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-285 TJm
+(\(ie,)
+[3.317546
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-295 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-286 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-285 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-286 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-286 TJm
+(announced)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+72 433.076 Td
+(intention)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-292 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-292 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-291 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-292 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-292 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-292 TJm
+(input\).)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.49065
+0] Tj
+-870 TJm
+(By)
+[6.645054
+0
+4.9813
+0] Tj
+-292 TJm
+(comparing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-292 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-292 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-291 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-292 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-292 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.862 433.076 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+443.589 433.076 Td
+/F15_0 9.9626 Tf
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-292 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-292 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-291 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 421.121 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.686 421.121 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-247 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-247 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-246 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-247 TJm
+(detect)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-246 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-247 TJm
+(attem)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+1 TJm
+(p)
+[4.9813
+0] Tj
+-1 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(s)
+[3.875451
+0] Tj
+-247 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-246 TJm
+(slip)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-247 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-246 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-247 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-246 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-247 TJm
+(compress.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-617 TJm
+(An)
+[7.192997
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-247 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-246 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-247 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-246 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-247 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 409.165 Td
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.959 409.165 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.578 409.165 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-500 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(indicates)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(programming)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(mistak)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(corrected.)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 387.248 Td
+(Instead)
+[3.317546
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-224 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-223 TJm
+(asking)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-224 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-223 TJm
+(\002nish,)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+-229 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-224 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-223 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-224 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-224 TJm
+(ask)
+[4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.282 387.248 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+379.196 387.248 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-224 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-223 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-224 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-223 TJm
+(remaining)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-224 TJm
+(input,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-229 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+72 375.293 Td
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-278 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(terminate)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-278 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-278 TJm
+(current)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-277 TJm
+(\(Burro)
+[3.317546
+0
+6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws-Wheeler\))
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+-278 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(block.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-787 TJm
+(Th)
+[6.087149
+0
+4.9813
+0] Tj
+-1 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(s)
+[3.875451
+0] Tj
+-278 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-278 TJm
+(useful)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-278 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-278 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-278 TJm
+(control)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-278 TJm
+(purposes.)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+72 363.337 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-328 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-328 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-328 TJm
+(analogous)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-328 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-328 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-328 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-328 TJm
+(\002nishing:)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-466 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+297.049 363.337 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.003 363.337 Td
+/F15_0 9.9626 Tf
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-328 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-328 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-328 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.841 363.337 Td
+/F17_0 9.9626 Tf
+(BZ_FLUSH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.662 363.337 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-328 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+72 351.382 Td
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-445 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-494 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-446 TJm
+(persist)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-445 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-445 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.94 351.382 Td
+/F17_0 9.9626 Tf
+(BZ_FLUSH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.195 351.382 Td
+/F15_0 9.9626 Tf
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-445 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-445 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-446 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.062 351.382 Td
+/F17_0 9.9626 Tf
+(BZ_RUN)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.362 351.382 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-445 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1792 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-445 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-445 TJm
+(\002nishing,)
+[5.539206
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 339.427 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.177 339.427 Td
+/F15_0 9.9626 Tf
+(detects)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(attempt)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\003ush)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(gun.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 317.509 Td
+(Once)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\003ush)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(complete,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(returns)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(R)
+[6.645054
+0] Tj
+40 TJm
+(UNNING)
+[7.192997
+0
+7.192997
+0
+7.192997
+0
+3.317546
+0
+7.192997
+0
+7.192997
+0] Tj
+-250 TJm
+(state.)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 295.591 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-344 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-343 TJm
+(sounds)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-344 TJm
+(pretty)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-344 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(x,)
+[4.9813
+0
+2.49065
+0] Tj
+-367 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-344 TJm
+(isn')
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-344 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1182 TJm
+(Here')
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-344 TJm
+(a)
+[4.423394
+0] Tj
+-344 TJm
+(table)
+[2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-343 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-344 TJm
+(sho)
+[3.875451
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-344 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-344 TJm
+(actions)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-343 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-344 TJm
+(allo)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-344 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-344 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 283.636 Td
+(state,)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-281 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-274 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-275 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-274 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-275 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(en,)
+[4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-280 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-275 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-274 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-274 TJm
+(is,)
+[2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-281 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-275 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-275 TJm
+(non-error)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-274 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-275 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-274 TJm
+(are.)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-767 TJm
+(Note)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-275 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-274 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-275 TJm
+(can')
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+72 271.681 Td
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xplicitly)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-347 TJm
+(ask)
+[4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+-348 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-347 TJm
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-348 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-347 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-348 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-347 TJm
+(in,)
+[2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-372 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-347 TJm
+(nor)
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-348 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-347 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-348 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-347 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-348 TJm
+(--)
+[3.317546
+0
+3.317546
+0] Tj
+-347 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-348 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-347 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-347 TJm
+(inferred)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-348 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-347 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-348 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-347 TJm
+(returned)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-348 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 259.726 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.686 259.726 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(14)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 15 18
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 146.152] cm
+0 0 468 573.848 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(IDLE/any)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(Illegal.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(IDLE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(only)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(exists)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(after)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+98.488 687.721 Td
+(before)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzCompressInit.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 651.856 Td
+(RUNNING/BZ_RUN)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 639.9 Td
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(much)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(possible.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 627.945 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(RUNNING)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 615.99 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_RUN_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 592.08 Td
+(RUNNING/BZ_FLUSH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 580.124 Td
+(Remember)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(current)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 568.169 Td
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(much)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(possible,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(but)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(do)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(accept)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(any)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(more)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 556.214 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(FLUSHING)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 544.259 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_FLUSH_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 520.349 Td
+(RUNNING/BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 508.393 Td
+(Remember)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(current)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 496.438 Td
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(much)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(possible,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(but)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(do)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(accept)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(any)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(more)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 484.483 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(FINISHING)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 472.528 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_FINISH_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 448.618 Td
+(FLUSHING/BZ_FLUSH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 436.662 Td
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(much)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(possible,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 424.707 Td
+(but)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(do)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(accept)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(any)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(more)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 412.752 Td
+(If)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(all)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(existing)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(used)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(up)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(all)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 400.797 Td
+(output)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(removed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+106.976 388.842 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(RUNNING;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_RUN_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 376.887 Td
+(else)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+106.976 364.931 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(FLUSHING;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_FLUSH_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 341.021 Td
+(FLUSHING/other)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 329.066 Td
+(Illegal.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 317.111 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 293.2 Td
+(FINISHING/BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 281.245 Td
+(Compress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(much)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(as)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(possible,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 269.29 Td
+(but)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(accept)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(any)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(more)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 257.335 Td
+(If)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(all)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(existing)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(input)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(used)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(up)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(all)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 245.38 Td
+(output)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(removed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+106.976 233.424 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(IDLE;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 221.469 Td
+(else)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+106.976 209.514 Td
+(Next)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(state)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(FINISHING;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_FINISH_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 185.604 Td
+(FINISHING/other)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 173.649 Td
+(Illegal.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 161.693 Td
+(Return)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(value)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 124.234 Td
+/F15_0 9.9626 Tf
+(That)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(still)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(looks)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(complicated?)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-620 TJm
+(W)
+[9.404694
+0] Tj
+80 TJm
+(ell,)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(air)
+[4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(enough.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(usual)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(sequence)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(load)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(is:)
+[2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 92.353 Td
+(1.)
+[4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Get)
+[7.192997
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(started)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+153.175 92.353 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.771 92.353 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(15)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 16 19
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F15_0 9.9626 Tf
+(2.)
+[4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Sho)
+[5.539206
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-267 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-268 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-267 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(shlurp)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-267 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-268 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-267 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-267 TJm
+(form)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-268 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-267 TJm
+(zero)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-268 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-267 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-268 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(s)
+[3.875451
+0] Tj
+-268 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+400.64 710.037 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.991 710.037 Td
+/F15_0 9.9626 Tf
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-267 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(=)
+[5.618906
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+83.955 698.082 Td
+/F17_0 9.9626 Tf
+(BZ_RUN)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.821 698.082 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 676.164 Td
+(3.)
+[4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Finish)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-276 TJm
+(up.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-387 TJm
+(Repeatedly)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-276 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.722 676.164 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.156 676.164 Td
+/F15_0 9.9626 Tf
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-276 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-276 TJm
+(=)
+[5.618906
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+338.079 676.164 Td
+/F17_0 9.9626 Tf
+(BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.877 676.164 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-276 TJm
+(cop)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+10 TJm
+(ying)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-276 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-276 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-276 TJm
+(output,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+83.955 664.209 Td
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.717 664.209 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+184.916 664.209 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 642.291 Td
+(4.)
+[4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-510 TJm
+(Close)
+[6.645054
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(go)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(home.)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(Call)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.914 642.291 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.533 642.291 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 620.374 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-269 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-270 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-269 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-269 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-270 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-269 TJm
+(\002ts)
+[5.539206
+0
+2.769603
+0
+3.875451
+0] Tj
+-270 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-270 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-269 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-270 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-269 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-270 TJm
+(once,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-274 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(skip)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-270 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-269 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+456.314 620.374 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+72 608.418 Td
+(\()
+[5.97756
+0] Tj
+-600 TJm
+(...,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(BZ_RUN)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.154 608.418 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+225.036 608.418 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(\()
+[5.97756
+0] Tj
+-600 TJm
+(...,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(BZ_FINISH)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.786 608.418 Td
+/F15_0 9.9626 Tf
+(calls.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 586.501 Td
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-278 TJm
+(required)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-277 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-278 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-277 TJm
+(allocated)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-278 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+220.295 586.501 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.891 586.501 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-785 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-278 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-277 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-278 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-277 TJm
+(accept)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-278 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-277 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-278 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-278 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+72 574.545 Td
+(\(ob)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(viously\).)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+-612 TJm
+(So)
+[5.539206
+0
+4.9813
+0] Tj
+-238 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-237 TJm
+(shouldn')
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-238 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-238 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-237 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-238 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-238 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-238 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-237 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.287 574.545 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.342 574.545 Td
+/F15_0 9.9626 Tf
+(calls.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-612 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-237 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-238 TJm
+(do,)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-238 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-238 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 562.59 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.619 562.59 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(programming.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 540.672 Td
+(T)
+[6.087149
+0] Tj
+35 TJm
+(ri)
+[3.317546
+0
+2.769603
+0] Tj
+25 TJm
+(vial)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 501.654] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 529.151 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 517.196 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm->s)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.033 Td
+/F9_0 17.2154 Tf
+(3.3.3.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzCompressEnd)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+11.482672
+0
+10.518609
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 442.563] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 458.104 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+286.303 456.361 Td
+(*)
+[5.97756
+0] Tj
+292.281 458.104 Td
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 420.645 Td
+/F15_0 9.9626 Tf
+(Releases)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 398.727 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 361.766] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 389.263 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm->s)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 377.307 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 331.145 Td
+/F9_0 17.2154 Tf
+(3.3.4.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzDecompressInit)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+4.785881
+0
+10.518609
+0
+4.785881
+0
+5.732728
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 302.674] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 318.216 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzDecompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+304.236 316.473 Td
+(*)
+[5.97756
+0] Tj
+310.214 318.216 Td
+(strm,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 280.757 Td
+/F15_0 9.9626 Tf
+(Prepares)
+[5.539206
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-351 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-351 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-1228 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-351 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.177 280.757 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+342.773 280.757 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-377 TJm
+(a)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.937 280.757 Td
+/F17_0 9.9626 Tf
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+414.235 280.757 Td
+/F15_0 9.9626 Tf
+(record)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-351 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-351 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-352 TJm
+(allocated)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-351 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 268.801 Td
+(initialised)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-306 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-305 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-953 TJm
+(Fields)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+211.833 268.801 Td
+/F17_0 9.9626 Tf
+(bzalloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+253.676 268.801 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.35 268.801 Td
+/F17_0 9.9626 Tf
+(bzfree)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.26 268.801 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+315.69 268.801 Td
+/F17_0 9.9626 Tf
+(opaque)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+354.6 268.801 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-306 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-306 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-305 TJm
+(a)
+[4.423394
+0] Tj
+-306 TJm
+(custom)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-305 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-306 TJm
+(allocator)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-306 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 256.846 Td
+(required,)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-350 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-331 TJm
+(made)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.635 256.846 Td
+/F17_0 9.9626 Tf
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+174.836 256.846 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-330 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-331 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+236.722 256.846 Td
+/F17_0 9.9626 Tf
+(malloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+275.878 256.846 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+281.938 256.846 Td
+/F17_0 9.9626 Tf
+(free)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.139 256.846 Td
+/F15_0 9.9626 Tf
+(routines.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-1102 TJm
+(Upon)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-330 TJm
+(return,)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-350 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-331 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-330 TJm
+(state)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-330 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-330 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-331 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 244.891 Td
+(initialised,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.16 244.891 Td
+/F17_0 9.9626 Tf
+(total_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.471 244.891 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.348 244.891 Td
+/F17_0 9.9626 Tf
+(total_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+256.637 244.891 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(zero.)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 222.973 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.756 222.973 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+246.554 222.973 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.748 222.973 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.345 222.973 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 201.055 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.497 201.055 Td
+/F17_0 9.9626 Tf
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+114.248 201.055 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(nonzero,)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-297 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-288 TJm
+(wil)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(l)
+[2.769603
+0] Tj
+-288 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-287 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-287 TJm
+(alternati)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-288 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-287 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-288 TJm
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-287 TJm
+(less)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-287 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-288 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-287 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 189.1 Td
+(cost)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-289 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-290 TJm
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-289 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wly)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(\(roughly)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(speaking,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-299 TJm
+(half)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(speed,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-299 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(maximum)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+7.750903
+0] Tj
+-289 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-289 TJm
+(requirement)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-290 TJm
+(drops)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+72 177.145 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(around)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(2300k\).)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+-620 TJm
+(See)
+[5.539206
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+([2])
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(information)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(management.)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 155.227 Td
+(Note)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-290 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-289 TJm
+(a)
+[4.423394
+0] Tj
+-290 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-289 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-289 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(determined)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(stream')
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-289 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-290 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+72 143.272 Td
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(read,)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-366 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-342 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-342 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.081 143.272 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.043 143.272 Td
+/F15_0 9.9626 Tf
+(succeeds,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-365 TJm
+(a)
+[4.423394
+0] Tj
+-343 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+381.098 143.272 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.149 143.272 Td
+/F15_0 9.9626 Tf
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-342 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ail)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-343 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 131.317 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.731 131.317 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 109.399 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(16)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 17 20
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 624.359] cm
+0 0 468 95.641 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 687.721 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(&&)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+98.488 663.811 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<;)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(||)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(4\))
+[5.97756
+0
+5.97756
+0] Tj
+90 651.856 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 639.9 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 602.441 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 553.524] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 592.976 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 581.021 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(returned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 569.066 Td
+(no)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(specific)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(action)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(required)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(case)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 522.903 Td
+/F9_0 17.2154 Tf
+(3.3.5.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzDecompress)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 494.433] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 509.975 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+280.326 508.231 Td
+(*)
+[5.97756
+0] Tj
+286.303 509.975 Td
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 472.515 Td
+/F15_0 9.9626 Tf
+(Pro)
+[5.539206
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vides)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-301 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-302 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-301 TJm
+(and/out)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-302 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-301 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-301 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-302 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-301 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-302 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-928 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-301 TJm
+(caller)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-302 TJm
+(maintains)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-301 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-302 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-301 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-301 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fers,)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-315 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 460.56 Td
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.646 460.56 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.778 460.56 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(transfer)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 438.642 Td
+(Before)
+[6.645054
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-498 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-499 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-498 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.356 438.642 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.997 438.642 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+263.071 438.642 Td
+/F17_0 9.9626 Tf
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.879 438.642 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-498 TJm
+(point)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-499 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-498 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-498 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-499 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-560 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.179 438.642 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 426.687 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-308 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-308 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-309 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-308 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-308 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-308 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-308 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-309 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.955 426.687 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+393.667 426.687 Td
+/F15_0 9.9626 Tf
+(updates)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.173 426.687 Td
+/F17_0 9.9626 Tf
+(next_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+469.016 426.687 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+474.723 426.687 Td
+/F17_0 9.9626 Tf
+(avail_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 426.687 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 414.732 Td
+/F17_0 9.9626 Tf
+(total_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.311 414.732 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(re\003ect)
+[3.317546
+0
+4.423394
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 392.814 Td
+(Similarly)
+[5.539206
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.799 392.814 Td
+/F17_0 9.9626 Tf
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.41 392.814 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(point)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-280 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(a)
+[4.423394
+0] Tj
+-280 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-281 TJm
+(i)
+[2.769603
+0] Tj
+1 TJm
+(n)
+[4.9813
+0] Tj
+-281 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-280 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-280 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-280 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(placed,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-288 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 392.814 Td
+/F17_0 9.9626 Tf
+(avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 380.859 Td
+/F15_0 9.9626 Tf
+(indicating)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-525 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-524 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-525 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-524 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-525 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-525 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+285.792 380.859 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.705 380.859 Td
+/F15_0 9.9626 Tf
+(updates)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.367 380.859 Td
+/F17_0 9.9626 Tf
+(next_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.188 380.859 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+466.589 380.859 Td
+/F17_0 9.9626 Tf
+(avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 380.859 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 368.904 Td
+/F17_0 9.9626 Tf
+(total_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.289 368.904 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(re\003ect)
+[3.317546
+0
+4.423394
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(output.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 346.986 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-321 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-320 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-321 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-320 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-321 TJm
+(little)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-320 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-320 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-321 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-320 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-321 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-320 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-321 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-320 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-320 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-321 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-320 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.816 346.986 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+503.457 346.986 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1043 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-320 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 335.031 Td
+(limit,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-295 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-286 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(acceptable)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-286 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-286 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-286 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(byte)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-287 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-286 TJm
+(a)
+[4.423394
+0] Tj
+-286 TJm
+(time,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-295 TJm
+(although)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-286 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(terribly)
+[2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(inef)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(\002cient.)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-838 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+72 323.076 Td
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(al)
+[4.423394
+0
+2.769603
+0] Tj
+10 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ays)
+[4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(ensure)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(least)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(byte)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(space)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 301.158 Td
+(Use)
+[7.192997
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.772 301.158 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+198.904 301.158 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(simpler)
+[3.875451
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+260.064 301.158 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+343.75 301.158 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 279.24 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-346 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-347 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-346 TJm
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-346 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-346 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-347 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-346 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-346 TJm
+(described)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-346 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-371 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-346 TJm
+(repeatedly)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-346 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.638 279.24 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+521.729 279.24 Td
+/F15_0 9.9626 Tf
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 267.285 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+152.314 267.285 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-262 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-344 TJm
+(Appearance)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-262 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.767 267.285 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+342.081 267.285 Td
+/F15_0 9.9626 Tf
+(denotes)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-262 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+392.672 267.285 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.919 267.285 Td
+/F15_0 9.9626 Tf
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-262 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+72 255.33 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-212 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-212 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-211 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-212 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-212 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-212 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.858 255.33 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.609 255.33 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-212 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-212 TJm
+(produce)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+402.263 255.33 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+482.082 255.33 Td
+/F15_0 9.9626 Tf
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-212 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-212 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+72 243.375 Td
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-256 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-256 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(placed)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-256 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-256 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-256 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-256 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-257 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-256 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.979 243.375 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+359.236 243.375 Td
+/F15_0 9.9626 Tf
+(appears,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-257 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-256 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-256 TJm
+(guaranteed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-256 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-256 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+72 231.419 Td
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(decompressed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(output,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+205.369 231.419 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+321.433 231.419 Td
+/F15_0 9.9626 Tf
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(safely)
+[3.875451
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(called.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 209.502 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+261.259 209.502 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+377.323 209.502 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(clean)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(release)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 187.584 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(17)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 18 21
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 540.672] cm
+0 0 468 179.328 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm->s)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 687.721 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm->avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+90 675.766 Td
+(BZ_DATA_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 663.811 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(a)
+[5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(integrity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 651.856 Td
+(BZ_DATA_ERROR_MAGIC)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 639.9 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(doesn't)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(begin)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(right)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(magic)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bytes)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 627.945 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 615.99 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(there)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(wasn't)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(enough)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 604.035 Td
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 592.08 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(logical)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(end)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(all)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 580.124 Td
+(output)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(consumed,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(eg)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(s-->avail_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+90 568.169 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 556.214 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 518.755 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 457.883] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 509.29 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 497.335 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(returned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 485.38 Td
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 473.425 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 427.262 Td
+/F9_0 17.2154 Tf
+(3.3.6.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzDecompressEnd)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+11.482672
+0
+10.518609
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 398.792] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 414.334 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+298.259 412.59 Td
+(*)
+[5.97756
+0] Tj
+304.236 414.334 Td
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 376.874 Td
+/F15_0 9.9626 Tf
+(Releases)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 354.956 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 294.085] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 345.492 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 333.537 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(strm->s)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 321.581 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 309.626 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.167 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.161] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+98.488 262.702 Td
+/F17_0 9.9626 Tf
+(None.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 212.408 Td
+/F9_0 20.6585 Tf
+(3.4.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(High-le)
+[14.915437
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+6.879281
+0
+5.743063
+0
+11.486126
+0] Tj
+15 TJm
+(vel)
+[11.486126
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(interface)
+[5.743063
+0
+12.622344
+0
+6.879281
+0
+11.486126
+0
+8.036157
+0
+6.879281
+0
+11.486126
+0
+11.486126
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 190.49 Td
+/F15_0 9.9626 Tf
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vides)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(writing)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.292 190.49 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+332.67 190.49 Td
+/F15_0 9.9626 Tf
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-620 TJm
+(First,)
+[5.539206
+0
+2.769603
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(general)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(points.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 158.609 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-353 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-352 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-353 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-352 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-353 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.726 158.609 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.658 156.866 Td
+(*)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.149 158.609 Td
+/F15_0 9.9626 Tf
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-353 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(gument,)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+289.871 158.609 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+331.715 158.609 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1236 TJm
+(After)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-352 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-353 TJm
+(call,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.457 158.609 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.813 158.609 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-353 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-352 TJm
+(consulted)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+81.963 146.654 Td
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-371 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-371 TJm
+(determine)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-372 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-371 TJm
+(outcome)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-371 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-371 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-372 TJm
+(call.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-1347 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.539 146.654 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.081 146.654 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+334.424 146.654 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.312 146.654 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-371 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-372 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-371 TJm
+(completed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-371 TJm
+(successfully)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-402 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-371 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+81.963 134.699 Td
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-292 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-293 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-292 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-292 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-293 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-292 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-292 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-293 TJm
+(\(if)
+[3.317546
+0
+2.769603
+0
+3.317546
+0] Tj
+-292 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y\))
+[4.9813
+0
+3.317546
+0] Tj
+-292 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-293 TJm
+(consulted.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-874 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.994 134.699 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.749 134.699 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+418.307 134.699 Td
+/F17_0 9.9626 Tf
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.06 134.699 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-292 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-293 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-292 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+81.963 122.744 Td
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(reading/writ)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(ing)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(underlying)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-278 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-285 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-278 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(consult)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.785 122.744 Td
+/F17_0 9.9626 Tf
+(errno)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+445.448 122.744 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+450.993 122.744 Td
+/F17_0 9.9626 Tf
+(perror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+489.634 122.744 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(determine)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+81.963 110.789 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-376 TJm
+(cause)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-376 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-377 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-376 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culty)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.58 110.789 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+249.171 110.789 Td
+/F15_0 9.9626 Tf
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-376 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-376 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-377 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-376 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-376 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(arious)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-376 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-377 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues;)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-439 TJm
+(precise)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-376 TJm
+(details)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-376 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-377 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-376 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-376 TJm
+(a)
+[4.423394
+0] Tj
+81.963 98.834 Td
+(per)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-function)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(basis)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(belo)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(18)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 19 22
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.793 710.037 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.332 710.037 Td
+/F15_0 9.9626 Tf
+(indicates)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-271 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-270 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-271 TJm
+(\(ie,)
+[3.317546
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-276 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(ything)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xcept)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+290.317 710.037 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.901 710.037 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.984 710.037 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+417.693 710.037 Td
+/F15_0 9.9626 Tf
+(\),)
+[3.317546
+0
+2.49065
+0] Tj
+-271 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-270 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(immediately)
+[2.769603
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-271 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 698.082 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+173.971 698.082 Td
+/F15_0 9.9626 Tf
+(\(or)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+187.932 698.082 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+283.573 698.082 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-238 TJm
+(depending)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-235 TJm
+(whether)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-235 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-235 TJm
+(attempting)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-235 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-236 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-235 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-235 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-236 TJm
+(write\))
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-235 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+81.963 686.127 Td
+(free)
+[3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-309 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-309 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-309 TJm
+(resources)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-310 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-309 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-309 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-309 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-975 TJm
+(Once)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-309 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-310 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-309 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-309 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-309 TJm
+(indicated,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-324 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-309 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-309 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-310 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-309 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xcept)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 674.172 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+175.035 674.172 Td
+/F15_0 9.9626 Tf
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.352 674.172 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.994 674.172 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-342 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-342 TJm
+(unde\002ned.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1173 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-342 TJm
+(implication)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-342 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-342 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-342 TJm
+(\(1\))
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+455.366 674.172 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+500.617 674.172 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-342 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+81.963 662.217 Td
+(check)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-331 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-331 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-331 TJm
+(call,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-351 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-331 TJm
+(\(2\))
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-331 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+223.255 662.217 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+268.396 662.217 Td
+/F15_0 9.9626 Tf
+(indicates)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-331 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-331 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+344.762 662.217 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+437.724 662.217 Td
+/F15_0 9.9626 Tf
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.041 662.217 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.682 662.217 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+81.963 650.261 Td
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(clean)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(up.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 628.344 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+100.186 628.344 Td
+/F17_0 9.9626 Tf
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+124.097 626.6 Td
+(*)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+132.308 628.344 Td
+/F15_0 9.9626 Tf
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(guments)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-224 TJm
+(passed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-224 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.645 628.344 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.565 628.344 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.569 628.344 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.466 628.344 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-224 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-224 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-225 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-224 TJm
+(binary)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-224 TJm
+(mode.)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-603 TJm
+(Most)
+[8.856751
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+81.963 616.389 Td
+(Unix)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(systems)
+[3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-270 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-269 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-270 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(def)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+10 TJm
+(ault,)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-274 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-270 TJm
+(ot)
+[4.9813
+0
+2.769603
+0] Tj
+1 TJm
+(her)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-270 TJm
+(platforms,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-274 TJm
+(including)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-270 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(Mac,)
+[8.856751
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-274 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-270 TJm
+(not.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-736 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-269 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-269 TJm
+(omit)
+[4.9813
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0] Tj
+-270 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+81.963 604.433 Td
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(encounter)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-250 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(mo)
+[7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(ving)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(platforms.)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 582.516 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Memory)
+[8.856751
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-369 TJm
+(allocation)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-370 TJm
+(requests)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-369 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-370 TJm
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-369 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.468 582.516 Td
+/F17_0 9.9626 Tf
+(malloc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.014 582.516 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.465 582.516 Td
+/F17_0 9.9626 Tf
+(free)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+334.376 582.516 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1337 TJm
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-370 TJm
+(present)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-369 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-370 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-369 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-370 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acility)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-369 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-370 TJm
+(user)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-de\002ned)
+[3.317546
+0
+4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+81.963 570.56 Td
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(allocators)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(\(could)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(easily)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(added,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(though\).)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 529.977 Td
+/F9_0 17.2154 Tf
+(3.4.1.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzReadOpen)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+13.393581
+0
+10.518609
+0
+9.571762
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 453.686] cm
+0 0 468 71.731 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 517.048 Td
+/F17_0 9.9626 Tf
+(typedef)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 493.138 Td
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+130.109 491.394 Td
+(*)
+[5.97756
+0] Tj
+136.087 493.138 Td
+(BZ2_bzReadOpen\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+252.171 491.394 Td
+(*)
+[5.97756
+0] Tj
+258.149 493.138 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+338.368 491.394 Td
+(*)
+[5.97756
+0] Tj
+344.346 493.138 Td
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+191.855 481.183 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+191.855 469.228 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+220.01 467.484 Td
+(*)
+[5.97756
+0] Tj
+225.987 469.228 Td
+(unused,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 431.768 Td
+/F15_0 9.9626 Tf
+(Prepare)
+[5.539206
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-290 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-290 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(handle)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.697 431.768 Td
+/F17_0 9.9626 Tf
+(f)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+278.675 431.768 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+285.439 431.768 Td
+/F17_0 9.9626 Tf
+(f)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.302 431.768 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(refer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-289 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-290 TJm
+(a)
+[4.423394
+0] Tj
+-290 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-289 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-290 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(opened)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-290 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(reading,)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-300 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 419.813 Td
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-306 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-305 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-306 TJm
+(indicator)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-305 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+193.457 419.813 Td
+/F17_0 9.9626 Tf
+(ferror\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+247.255 419.813 Td
+/F15_0 9.9626 Tf
+(\)is)
+[3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+-306 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-305 TJm
+(set.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-954 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+308.784 419.813 Td
+/F17_0 9.9626 Tf
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.717 419.813 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-306 TJm
+(1,)
+[4.9813
+0
+2.49065
+0] Tj
+-319 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-306 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-306 TJm
+(wil)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(l)
+[2.769603
+0] Tj
+-306 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-306 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-305 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-306 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-306 TJm
+(less)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+72 407.858 Td
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xpense)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(speed.)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 385.94 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-227 TJm
+(reasons)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-227 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xplained)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(belo)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.193 385.94 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+251.232 385.94 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-227 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-227 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+332.732 385.94 Td
+/F17_0 9.9626 Tf
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+376.838 385.94 Td
+/F15_0 9.9626 Tf
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-227 TJm
+(starting)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-227 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+441.74 385.94 Td
+/F17_0 9.9626 Tf
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+477.605 385.94 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-232 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-227 TJm
+(starting)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 373.985 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-280 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-280 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-279 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.094 373.985 Td
+/F17_0 9.9626 Tf
+(f)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.072 373.985 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-797 TJm
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-280 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+206.414 373.985 Td
+/F17_0 9.9626 Tf
+(BZ_MAX_UNUSED)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+286.907 373.985 Td
+/F15_0 9.9626 Tf
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-280 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-280 TJm
+(supplied)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-279 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-280 TJm
+(this.)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-797 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-279 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acility)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-279 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-280 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-279 TJm
+(required,)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 362.03 Td
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(pass)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.141 362.03 Td
+/F17_0 9.9626 Tf
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.542 362.03 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.419 362.03 Td
+/F17_0 9.9626 Tf
+(0)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.887 362.03 Td
+/F15_0 9.9626 Tf
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.994 362.03 Td
+/F17_0 9.9626 Tf
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+242.35 362.03 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(n)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.208 362.03 Td
+/F17_0 9.9626 Tf
+(Unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.565 362.03 Td
+/F15_0 9.9626 Tf
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 340.112 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(parameters)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.631 340.112 Td
+/F17_0 9.9626 Tf
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.01 340.112 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.887 340.112 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.685 340.112 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.879 340.112 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+439.431 340.112 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 318.194 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-402 TJm
+(amount)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-402 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-402 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-402 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-402 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-402 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-402 TJm
+(a)
+[4.423394
+0] Tj
+-401 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-402 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-402 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-402 TJm
+(determined)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-402 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-402 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-402 TJm
+(\002le')
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-402 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-402 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-402 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-402 TJm
+(read.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 306.239 Td
+(So)
+[5.539206
+0
+4.9813
+0] Tj
+-492 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-491 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-492 TJm
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-492 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.797 306.239 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+255.381 306.239 Td
+/F15_0 9.9626 Tf
+(returns)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+287.946 306.239 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+322.729 306.239 Td
+/F15_0 9.9626 Tf
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-492 TJm
+(a)
+[4.423394
+0] Tj
+-491 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-492 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-492 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.135 306.239 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.81 306.239 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-492 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 294.284 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.731 294.284 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 272.366 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 272.366 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 272.366 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 101.84] cm
+0 0 468 167.372 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 260.844 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 248.889 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 236.934 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 224.979 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(f)
+[5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 213.023 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(neither)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(nor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+98.488 201.068 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(&&)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+98.488 189.113 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(&&)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!\(0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_MAX_UNUSED\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+90 177.158 Td
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 165.203 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ferror\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nonzero)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 153.248 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 141.292 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 129.337 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 117.382 Td
+(otherwise.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 79.922 Td
+/F15_0 9.9626 Tf
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 51.071 Td
+(19)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 20 23
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 660.224] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(Pointer)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(abstract)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 687.721 Td
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 638.306 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 577.435] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 628.842 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 616.887 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 604.932 Td
+(BZ2_bzClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 592.976 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 546.814 Td
+/F9_0 17.2154 Tf
+(3.4.2.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzRead)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 519.841] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 535.383 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+208.595 533.639 Td
+(*)
+[5.97756
+0] Tj
+214.572 535.383 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+306.747 533.639 Td
+(*)
+[5.97756
+0] Tj
+312.724 535.383 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+357.078 533.639 Td
+(*)
+[5.97756
+0] Tj
+363.055 535.383 Td
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 497.923 Td
+/F15_0 9.9626 Tf
+(Reads)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-285 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.569 497.923 Td
+/F17_0 9.9626 Tf
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.337 497.923 Td
+/F15_0 9.9626 Tf
+(\(uncompressed\))
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+-285 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-284 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-285 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-284 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.319 497.923 Td
+/F17_0 9.9626 Tf
+(b)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+345.132 497.923 Td
+/F15_0 9.9626 Tf
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-285 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-284 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.205 497.923 Td
+/F17_0 9.9626 Tf
+(buf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.137 497.923 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-828 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-284 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-285 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-285 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-284 TJm
+(successful,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 485.968 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.36 485.968 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-353 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-353 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+153.374 485.968 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+186.778 485.968 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-353 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-353 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-353 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-353 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-353 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-353 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-353 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1238 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-353 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-353 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-353 TJm
+(end-of-stream)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-353 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-353 TJm
+(detected,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 474.013 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.795 474.013 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-296 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-297 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-296 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.328 474.013 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+250.037 474.013 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-296 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-296 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-296 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-297 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-296 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-296 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-296 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-898 TJm
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-297 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+470 474.013 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+514.795 474.013 Td
+/F15_0 9.9626 Tf
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+72 462.058 Td
+(denote)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 440.14 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.224 440.14 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-246 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.193 440.14 Td
+/F17_0 9.9626 Tf
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.575 440.14 Td
+/F15_0 9.9626 Tf
+(bytes,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-247 TJm
+(unless)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-245 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-246 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-246 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-246 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-245 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-246 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-246 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-246 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-245 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-246 TJm
+(occurs.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+-617 TJm
+(Because)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-246 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-246 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-247 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+72 428.185 Td
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-231 TJm
+(possible)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-231 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-231 TJm
+(detect)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-231 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-231 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-231 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-232 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-231 TJm
+(observing)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-231 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-231 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-231 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-231 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-231 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-231 TJm
+(returned)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-231 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-231 TJm
+(less)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-231 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-232 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-231 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-231 TJm
+(requested.)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 416.23 Td
+(Ne)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ertheless,)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-309 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-297 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-298 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(arded)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-297 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-297 TJm
+(inadvisable;)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-321 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-298 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(instead)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-297 TJm
+(check)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.631 416.23 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.437 416.23 Td
+/F15_0 9.9626 Tf
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-297 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-298 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-297 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(atch)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-298 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-297 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 404.275 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 404.275 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 382.357 Td
+(Internally)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.541 382.357 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+181.786 382.357 Td
+/F15_0 9.9626 Tf
+(copies)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-449 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-448 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-449 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-448 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-449 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-449 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-448 TJm
+(chunks)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-449 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-448 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+419.602 382.357 Td
+/F17_0 9.9626 Tf
+(BZ_MAX_UNUSED)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+501.778 382.357 Td
+/F15_0 9.9626 Tf
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-449 TJm
+(be-)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+72 370.402 Td
+(fore)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-414 TJm
+(decompressing)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-414 TJm
+(it.)
+[2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-1605 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-415 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-414 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-414 TJm
+(contains)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-414 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-414 TJm
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-415 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-414 TJm
+(strictly)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-414 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-414 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-414 TJm
+(reach)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-414 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-415 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-414 TJm
+(end-of-stream,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 358.446 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.749 358.446 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-298 TJm
+(almost)
+[4.423394
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-299 TJm
+(certainly)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-298 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-299 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-298 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-299 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-298 TJm
+(trailing)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-298 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-298 TJm
+(signalling)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+413.162 358.446 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+502.826 358.446 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-597 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-298 TJm
+(col-)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+72 346.491 Td
+(lect)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-242 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-243 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-242 TJm
+(unused)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-242 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-242 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+208.759 346.491 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.835 346.491 Td
+/F15_0 9.9626 Tf
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-242 TJm
+(appeared,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-244 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.201 346.491 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.188 346.491 Td
+/F15_0 9.9626 Tf
+(immediately)
+[2.769603
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+72 334.536 Td
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+99.935 334.536 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+189.599 334.536 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 312.618 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 312.618 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 312.618 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(20)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 21 24
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 456.986] cm
+0 0 468 263.014 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+90 687.721 Td
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(opened)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 663.811 Td
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 651.856 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(there)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(reading)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(file)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 639.9 Td
+(BZ_UNEXPECTED_EOF)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 627.945 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(file)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ended)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(before)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 615.99 Td
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(logical)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(end-of-stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 604.035 Td
+(BZ_DATA_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 592.08 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(a)
+[5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(integrity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 580.124 Td
+(BZ_DATA_ERROR_MAGIC)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 568.169 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(does)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(begin)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(requisite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(header)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bytes)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 556.214 Td
+(\(ie,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(a)
+[5.97756
+0] Tj
+-426 TJm
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(file\).)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(This)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(really)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 544.259 Td
+(a)
+[5.97756
+0] Tj
+-426 TJm
+(special)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(case)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_DATA_ERROR.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 532.304 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 520.349 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 508.393 Td
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 496.438 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(logical)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(end)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 484.483 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 472.528 Td
+(otherwise.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 435.068 Td
+/F15_0 9.9626 Tf
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 374.197] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 425.604 Td
+/F17_0 9.9626 Tf
+(number)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bytes)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(read)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 413.649 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 401.694 Td
+(undefined)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 389.739 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 352.279 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 267.497] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 342.815 Td
+/F17_0 9.9626 Tf
+(collect)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(then)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 330.859 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 318.904 Td
+(collect)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(then)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 306.949 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_SEQUENCE_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 294.994 Td
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 283.039 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 236.876 Td
+/F9_0 17.2154 Tf
+(3.4.3.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzReadGetUn)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+13.393581
+0
+9.571762
+0
+5.732728
+0
+12.429519
+0
+10.518609
+0] Tj
+10 TJm
+(used)
+[10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 197.948] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 225.445 Td
+/F17_0 9.9626 Tf
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadGetUnused\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+259.883 223.702 Td
+(*)
+[5.97756
+0] Tj
+270.104 225.445 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+362.278 223.702 Td
+(*)
+[5.97756
+0] Tj
+368.256 225.445 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+200.343 213.49 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+224.254 211.747 Td
+(**)
+[5.97756
+0
+5.97756
+0] Tj
+240.453 213.49 Td
+(unused,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+304.473 211.747 Td
+(*)
+[5.97756
+0] Tj
+314.694 213.49 Td
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 176.031 Td
+/F15_0 9.9626 Tf
+(Returns)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-435 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-435 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-435 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-435 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-435 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-435 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-435 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-435 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-435 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-435 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-435 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-435 TJm
+(needed)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-435 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-435 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-435 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-435 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-435 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-435 TJm
+(end-of-stream.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 162.332 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+77.978 164.075 Td
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+117.2 164.075 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-337 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-337 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-337 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-337 TJm
+(address)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-337 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-336 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-337 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-359 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.089 162.332 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+275.067 164.075 Td
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+320.267 164.075 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-337 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-337 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-337 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-337 TJm
+(bytes.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.247 162.332 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+433.225 164.075 Td
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+478.425 164.075 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-337 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-337 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-337 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-337 TJm
+(a)
+[4.423394
+0] Tj
+72 152.12 Td
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.506 152.12 Td
+/F17_0 9.9626 Tf
+(0)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+139.975 152.12 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+156.851 152.12 Td
+/F17_0 9.9626 Tf
+(BZ_MAX_UNUSED)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.05 152.12 Td
+/F15_0 9.9626 Tf
+(inclusi)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e.)
+[4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 130.202 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-882 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-883 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-882 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-883 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-882 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-883 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.332 130.202 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+339.9 130.202 Td
+/F15_0 9.9626 Tf
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-882 TJm
+(signalled)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+406.737 130.202 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.231 130.202 Td
+/F15_0 9.9626 Tf
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-882 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 118.247 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.664 118.247 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 96.329 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 96.329 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 96.329 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(21)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 22 25
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 612.403] cm
+0 0 468 107.597 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 687.721 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 675.766 Td
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 663.811 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(not)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(signalled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 651.856 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(opened)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 639.9 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 627.945 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 590.486 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 565.48] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 581.021 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 534.858 Td
+/F9_0 17.2154 Tf
+(3.4.4.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzReadClose)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+12.429519
+0
+4.785881
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 507.886] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 523.428 Td
+/F17_0 9.9626 Tf
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+244.46 521.684 Td
+(*)
+[5.97756
+0] Tj
+250.438 523.428 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+342.612 521.684 Td
+(*)
+[5.97756
+0] Tj
+348.59 523.428 Td
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 485.968 Td
+/F15_0 9.9626 Tf
+(Releases)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-430 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-429 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-430 TJm
+(pertaining)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-429 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-430 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-429 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-430 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+304.352 485.968 Td
+/F17_0 9.9626 Tf
+(b)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.33 485.968 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+321.276 485.968 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+415.22 485.968 Td
+/F15_0 9.9626 Tf
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-430 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-429 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+473.438 485.968 Td
+/F17_0 9.9626 Tf
+(fclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+513.583 485.968 Td
+/F15_0 9.9626 Tf
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-430 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 474.013 Td
+(underlying)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-264 TJm
+(handle,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-267 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-264 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-264 TJm
+(yourself)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-264 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-263 TJm
+(appropriate.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+348.653 474.013 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.946 474.013 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-264 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(clean)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 462.058 Td
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(situations.)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 440.14 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 440.14 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 440.14 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 377.211] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 428.618 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 416.663 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(opened)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzOpenWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 404.708 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 392.753 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 355.293 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 330.287] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 345.829 Td
+/F17_0 9.9626 Tf
+(none)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 299.666 Td
+/F9_0 17.2154 Tf
+(3.4.5.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzWriteOpen)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+16.251338
+0
+6.696791
+0
+4.785881
+0
+5.732728
+0
+9.571762
+0
+13.393581
+0
+10.518609
+0
+9.571762
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 247.286] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 286.738 Td
+/F17_0 9.9626 Tf
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+130.109 284.994 Td
+(*)
+[5.97756
+0] Tj
+136.087 286.738 Td
+(BZ2_bzWriteOpen\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+258.149 284.994 Td
+(*)
+[5.97756
+0] Tj
+264.127 286.738 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+344.346 284.994 Td
+(*)
+[5.97756
+0] Tj
+350.323 286.738 Td
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+196.099 274.783 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 262.827 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 225.368 Td
+/F15_0 9.9626 Tf
+(Prepare)
+[5.539206
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-268 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-268 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-269 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-268 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-269 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-268 TJm
+(handle)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+262.72 225.368 Td
+/F17_0 9.9626 Tf
+(f)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+268.698 225.368 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+274.829 225.368 Td
+/F17_0 9.9626 Tf
+(f)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+283.481 225.368 Td
+/F15_0 9.9626 Tf
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-268 TJm
+(refer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-269 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-268 TJm
+(a)
+[4.423394
+0] Tj
+-269 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-268 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-269 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-268 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-269 TJm
+(opened)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-268 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-269 TJm
+(writing,)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-273 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-268 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+72 213.413 Td
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(indicator)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.577 213.413 Td
+/F17_0 9.9626 Tf
+(ferror\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.375 213.413 Td
+/F15_0 9.9626 Tf
+(\)is)
+[3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(set.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 191.495 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-223 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-224 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-223 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-224 TJm
+(parameters)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.306 191.495 Td
+/F17_0 9.9626 Tf
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.015 191.495 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.784 191.495 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.808 191.495 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.42 191.495 Td
+/F17_0 9.9626 Tf
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.196 191.495 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-229 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.913 191.495 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 191.495 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 169.577 Td
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-382 TJm
+(required)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-382 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-382 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-382 TJm
+(allocated)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-383 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-382 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-382 TJm
+(stage,)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-415 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-382 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-382 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-382 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-382 TJm
+(completes)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-382 TJm
+(successfully)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.691 169.577 Td
+/F17_0 9.9626 Tf
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+500.228 169.577 Td
+/F15_0 9.9626 Tf
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-382 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+72 157.622 Td
+(signalled)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+203.715 157.622 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+269.468 157.622 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 135.704 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 135.704 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 135.704 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(22)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 23 26
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 576.538] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 687.721 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(f)
+[5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 663.811 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(9)
+[5.97756
+0] Tj
+90 651.856 Td
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 639.9 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ferror\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nonzero)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 627.945 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 615.99 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 604.035 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 592.08 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 554.62 Td
+/F15_0 9.9626 Tf
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 493.749] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 545.156 Td
+/F17_0 9.9626 Tf
+(Pointer)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(abstract)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 533.201 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 521.245 Td
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 509.29 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.831 Td
+/F15_0 9.9626 Tf
+(Allo)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(actions:)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 387.049] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 462.366 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 450.411 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 438.456 Td
+(\(you)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(could)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(go)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(directly)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteClose,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(but)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(this)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(would)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(be)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(pretty)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+485.506 434.212 Td
+/F430_0 9.9626 Tf
+( )
+[9.9626
+0] Tj
+493.808 434.212 Td
+/F123_0 9.9626 Tf
+(-)
+[2.76761
+0] Tj
+90 426.501 Td
+/F17_0 9.9626 Tf
+(pointless\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 414.546 Td
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 402.59 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 356.428 Td
+/F9_0 17.2154 Tf
+(3.4.6.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzWrite)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+16.251338
+0
+6.696791
+0
+4.785881
+0
+5.732728
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 329.455] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 344.997 Td
+/F17_0 9.9626 Tf
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+220.55 343.254 Td
+(*)
+[5.97756
+0] Tj
+226.528 344.997 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+318.702 343.254 Td
+(*)
+[5.97756
+0] Tj
+324.679 344.997 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+369.033 343.254 Td
+(*)
+[5.97756
+0] Tj
+375.01 344.997 Td
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 307.537 Td
+/F15_0 9.9626 Tf
+(Absorbs)
+[7.192997
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+107.696 307.537 Td
+/F17_0 9.9626 Tf
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+128.119 307.537 Td
+/F15_0 9.9626 Tf
+(bytes)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+214.544 307.537 Td
+/F17_0 9.9626 Tf
+(buf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+232.477 307.537 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(entually)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(written)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 285.62 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 285.62 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 285.62 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 174.87] cm
+0 0 468 107.597 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 274.098 Td
+/F17_0 9.9626 Tf
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 262.143 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+90 250.188 Td
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 238.232 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(opened)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 226.277 Td
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 214.322 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(there)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(writing)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(file.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 202.367 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 190.412 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 144.249 Td
+/F9_0 17.2154 Tf
+(3.4.7.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzWriteClose)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+16.251338
+0
+6.696791
+0
+4.785881
+0
+5.732728
+0
+9.571762
+0
+12.429519
+0
+4.785881
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F15_0 9.9626 Tf
+(23)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 24 27
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 576.538] cm
+0 0 468 143.462 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteClose\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+246.194 709.888 Td
+(*)
+[5.97756
+0] Tj
+252.172 711.631 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+340.102 709.888 Td
+(*)
+[5.97756
+0] Tj
+350.323 711.631 Td
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+187.611 699.676 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(abandon,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+187.611 687.721 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+257.609 685.978 Td
+(*)
+[5.97756
+0] Tj
+267.83 687.721 Td
+(nbytes_in,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+187.611 675.766 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+257.609 674.022 Td
+(*)
+[5.97756
+0] Tj
+267.83 675.766 Td
+(nbytes_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 651.856 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteClose64\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+258.149 650.112 Td
+(*)
+[5.97756
+0] Tj
+264.127 651.856 Td
+(bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+352.057 650.112 Td
+(*)
+[5.97756
+0] Tj
+362.278 651.856 Td
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+196.099 639.9 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(abandon,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 627.945 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+266.097 626.202 Td
+(*)
+[5.97756
+0] Tj
+276.318 627.945 Td
+(nbytes_in_lo32,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 615.99 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+266.097 614.247 Td
+(*)
+[5.97756
+0] Tj
+276.318 615.99 Td
+(nbytes_in_hi32,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 604.035 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+266.097 602.291 Td
+(*)
+[5.97756
+0] Tj
+276.318 604.035 Td
+(nbytes_out_lo32,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+196.099 592.08 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+266.097 590.336 Td
+(*)
+[5.97756
+0] Tj
+276.318 592.08 Td
+(nbytes_out_hi32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 554.62 Td
+/F15_0 9.9626 Tf
+(Compresses)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-403 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-402 TJm
+(\003ushes)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-403 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-403 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-402 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-403 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-402 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-403 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-403 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-402 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ar)
+[4.423394
+0
+3.317546
+0] Tj
+-403 TJm
+(supplied)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-403 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+384.152 554.62 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.906 554.62 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-768 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-403 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-402 TJm
+(end-of-)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0] Tj
+72 542.665 Td
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-352 TJm
+(mark)
+[7.750903
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+10 TJm
+(ers)
+[4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-352 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-353 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-352 TJm
+(written,)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-378 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-352 TJm
+(subsequent)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-352 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-352 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+300.456 542.665 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+369.718 542.665 Td
+/F15_0 9.9626 Tf
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-352 TJm
+(ille)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(al.)
+[4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-1234 TJm
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-352 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-352 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-352 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+72 530.71 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.411 530.71 Td
+/F17_0 9.9626 Tf
+(b)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.88 530.71 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(released.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+207.231 530.71 Td
+/F17_0 9.9626 Tf
+(fflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.587 530.71 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+422.771 530.71 Td
+/F17_0 9.9626 Tf
+(fclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+458.636 530.71 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+50 TJm
+(d.)
+[4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 508.792 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.574 508.792 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.155 508.792 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-295 TJm
+(called)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-295 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(clean)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-295 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-295 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-295 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-295 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-306 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(action)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-295 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-295 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(release)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-295 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-891 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+72 496.837 Td
+(records)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(codes)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(issued)
+[2.769603
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(vious)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-289 TJm
+(calls,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-299 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-289 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(situation)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-289 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(detected)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(automatically)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-427 TJm
+(There)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-289 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(attempt)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0] Tj
+72 484.882 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-263 TJm
+(complete)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-262 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(operation,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-265 TJm
+(nor)
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-263 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.308 484.882 Td
+/F17_0 9.9626 Tf
+(fflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+296.79 484.882 Td
+/F15_0 9.9626 Tf
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-262 TJm
+(\002le.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-696 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-263 TJm
+(force)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-262 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-263 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-263 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-262 TJm
+(happen)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+72 472.926 Td
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(passing)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(nonzero)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+305.015 472.926 Td
+/F17_0 9.9626 Tf
+(abandon)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.858 472.926 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 451.009 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+80.597 451.009 Td
+/F17_0 9.9626 Tf
+(nbytes_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.358 451.009 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-197 TJm
+(non-null,)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+183.287 449.265 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+189.265 451.009 Td
+(nbytes_in)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.025 451.009 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-197 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-197 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-197 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-197 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-197 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-197 TJm
+(total)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-197 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(olume)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-197 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-197 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-197 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-197 TJm
+(handled.)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-584 TJm
+(Similarly)
+[5.539206
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 439.053 Td
+/F17_0 9.9626 Tf
+(nbytes_out)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+134.716 439.053 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-295 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-295 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-295 TJm
+(total)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-295 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(olume)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-295 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-296 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-295 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-295 TJm
+(written.)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-890 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-295 TJm
+(compatibility)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-295 TJm
+(older)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-295 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-296 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 427.098 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-283 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+118.294 427.098 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.753 427.098 Td
+/F15_0 9.9626 Tf
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(yields)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-283 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wer)
+[7.192997
+0
+4.423394
+0
+3.317546
+0] Tj
+-283 TJm
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+-283 TJm
+(bits)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-283 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-283 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-282 TJm
+(counts.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-817 TJm
+(Use)
+[7.192997
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.499 427.098 Td
+/F17_0 9.9626 Tf
+(BZ2_bzWriteClose64)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.913 427.098 Td
+/F15_0 9.9626 Tf
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+72 415.143 Td
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(full)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(64)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(bit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(counts.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-620 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(tw)
+[2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(otherwise)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(absolutely)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(identical.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 393.225 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(assignments)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+169.144 393.225 Td
+/F17_0 9.9626 Tf
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.987 393.225 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 306.386] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 381.704 Td
+/F17_0 9.9626 Tf
+(BZ_SEQUENCE_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 369.749 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(opened)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 357.793 Td
+(BZ_IO_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 345.838 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(there)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(writing)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(file)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 333.883 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 321.928 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 275.765 Td
+/F9_0 17.2154 Tf
+(3.4.8.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Handling)
+[12.429519
+0
+9.571762
+0
+10.518609
+0
+10.518609
+0
+4.785881
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0] Tj
+-278 TJm
+(embed)
+[9.571762
+0
+15.304491
+0
+10.518609
+0
+9.571762
+0
+10.518609
+0] Tj
+10 TJm
+(ded)
+[10.518609
+0
+9.571762
+0
+10.518609
+0] Tj
+-278 TJm
+(compressed)
+[9.571762
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0] Tj
+-278 TJm
+(data)
+[10.518609
+0
+9.571762
+0
+5.732728
+0
+9.571762
+0] Tj
+-278 TJm
+(streams)
+[9.571762
+0
+5.732728
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+15.304491
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 253.847 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-203 TJm
+(high-le)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-203 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-203 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acilitates)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-203 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-203 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+226.404 253.847 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+258.316 253.847 Td
+/F15_0 9.9626 Tf
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-203 TJm
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-203 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-203 TJm
+(form)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-203 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-203 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-203 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-203 TJm
+(a)
+[4.423394
+0] Tj
+-204 TJm
+(surrounding,)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-212 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-203 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-203 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 221.967 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-264 TJm
+(writing,)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-267 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-264 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-264 TJm
+(tak)
+[2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(open)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-264 TJm
+(handle,)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-267 TJm
+(writes)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-264 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(it,)
+[2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.758 221.967 Td
+/F17_0 9.9626 Tf
+(fflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.624 221.967 Td
+/F15_0 9.9626 Tf
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-264 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-264 TJm
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+504.135 221.967 Td
+/F17_0 9.9626 Tf
+(fclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 210.012 Td
+/F15_0 9.9626 Tf
+(it.)
+[2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-675 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-259 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(a)
+[4.423394
+0] Tj
+1 TJm
+(pp)
+[4.9813
+0
+4.9813
+0] Tj
+-1 TJm
+(l)
+[2.769603
+0] Tj
+1 TJm
+(ication)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-259 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-259 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-259 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-259 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-260 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-259 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-259 TJm
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-259 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-259 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-260 TJm
+(dat)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(a)
+[4.423394
+0] Tj
+-260 TJm
+(stream,)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-261 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-259 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-260 TJm
+(sam)
+[3.875451
+0
+4.423394
+0
+7.750903
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+-260 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+81.963 198.056 Td
+(handle.)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 176.139 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Reading)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-259 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-258 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(x,)
+[4.9813
+0
+2.49065
+0] Tj
+-261 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-258 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acilities)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-259 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-258 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-258 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-259 TJm
+(general)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-258 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-259 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-258 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-259 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-258 TJm
+(generality)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-259 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-258 TJm
+(hard)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-258 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-259 TJm
+(reconcile)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+81.963 164.183 Td
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-432 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(\002cienc)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+161.767 164.183 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+225.847 164.183 Td
+/F15_0 9.9626 Tf
+(reads)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-432 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-432 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-432 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-432 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-432 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-432 TJm
+(blocks)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-432 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-432 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+434.467 164.183 Td
+/F17_0 9.9626 Tf
+(BZ_MAX_UNUSED)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.479 164.183 Td
+/F15_0 9.9626 Tf
+(bytes,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+81.963 152.228 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-436 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-435 TJm
+(doing)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-436 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-436 TJm
+(probably)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-436 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-435 TJm
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ershoot)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-436 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-436 TJm
+(logical)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-435 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-436 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-436 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-436 TJm
+(s)
+[3.875451
+0] Tj
+1 TJm
+(tream.)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-1735 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-436 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-435 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-436 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-436 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+81.963 140.273 Td
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-290 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-289 TJm
+(ended,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-300 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+207.321 140.273 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+323.782 140.273 Td
+/F15_0 9.9626 Tf
+(after)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-290 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(last)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-290 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-290 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.164 140.273 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.826 140.273 Td
+/F15_0 9.9626 Tf
+(\(the)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-290 TJm
+(returning)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 128.318 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.671 128.318 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(calling)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.047 128.318 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+327.71 128.318 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.852 Td
+(24)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 25 28
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-271 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-272 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-271 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-271 TJm
+(easy)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+-271 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-272 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-271 TJm
+(multiple)
+[7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+293.313 710.037 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+325.903 710.037 Td
+/F15_0 9.9626 Tf
+(streams)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-271 TJm
+(placed)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-272 TJm
+(end-to-end.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-374 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-271 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-271 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-271 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-272 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-271 TJm
+(stream,)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+72 698.082 Td
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+96.195 698.082 Td
+/F17_0 9.9626 Tf
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.586 698.082 Td
+/F15_0 9.9626 Tf
+(returns)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.868 698.082 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+266.577 698.082 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-263 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+288.685 698.082 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+404.875 698.082 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-263 TJm
+(coll)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(ect)
+[4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-263 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(unused)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-262 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-263 TJm
+(\(cop)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+10 TJm
+(y)
+[4.9813
+0] Tj
+-262 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+72 686.127 Td
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-265 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-265 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-265 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-265 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+25 TJm
+(where\).)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+2.49065
+0] Tj
+-711 TJm
+(That)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-265 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-265 TJm
+(forms)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+-265 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(start)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-265 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-265 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-265 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-265 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-265 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-711 TJm
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-265 TJm
+(start)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-265 TJm
+(uncompressing)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 674.172 Td
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-246 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-246 TJm
+(stream,)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-247 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+157.205 674.172 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+243.344 674.172 Td
+/F15_0 9.9626 Tf
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ain,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-247 TJm
+(feeding)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-246 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-246 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-247 TJm
+(unused)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-246 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-246 TJm
+(via)
+[4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-246 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.967 674.172 Td
+/F17_0 9.9626 Tf
+(unused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.286 674.172 Td
+/F15_0 9.9626 Tf
+(/)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+449.508 674.172 Td
+/F17_0 9.9626 Tf
+(nUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.804 674.172 Td
+/F15_0 9.9626 Tf
+(parameters.)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+72 662.217 Td
+(K)
+[7.192997
+0] Tj
+25 TJm
+(eep)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-263 TJm
+(doing)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-264 TJm
+(until)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+158.622 662.217 Td
+/F17_0 9.9626 Tf
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+238.952 662.217 Td
+/F15_0 9.9626 Tf
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-263 TJm
+(coincides)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-263 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(ph)
+[4.9813
+0
+4.9813
+0] Tj
+5 TJm
+(ysical)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-263 TJm
+(end)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-263 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-263 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+423.124 662.217 Td
+/F17_0 9.9626 Tf
+(feof\(f\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+464.968 662.217 Td
+/F15_0 9.9626 Tf
+(\).)
+[3.317546
+0
+2.49065
+0] Tj
+-699 TJm
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-263 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-263 TJm
+(situation)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 650.261 Td
+/F17_0 9.9626 Tf
+(BZ2_bzReadGetUnused)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+188.065 650.261 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(course)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 628.344 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-240 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-241 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-240 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-241 TJm
+(feel)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-240 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-241 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-240 TJm
+(high-le)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-241 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace)
+[4.423394
+0
+4.423394
+0
+4.423394
+0] Tj
+-240 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-241 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-240 TJm
+(used.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-614 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-240 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-241 TJm
+(require)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-240 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xtra)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-241 TJm
+(\003e)
+[5.539206
+0
+4.423394
+0] Tj
+15 TJm
+(xibi)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+1 TJm
+(lity)
+[2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-243 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+10 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-240 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-241 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 616.389 Td
+(bite)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ullet)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(grips)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 585.767 Td
+/F9_0 17.2154 Tf
+(3.4.9.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Standar)
+[11.482672
+0
+5.732728
+0
+9.571762
+0
+10.518609
+0
+10.518609
+0
+9.571762
+0
+6.696791
+0] Tj
+20 TJm
+(d)
+[10.518609
+0] Tj
+-278 TJm
+(\002le-reading/writing)
+[10.518609
+0
+4.785881
+0
+9.571762
+0
+5.732728
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0
+4.785881
+0
+13.393581
+0
+6.696791
+0
+4.785881
+0
+5.732728
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0] Tj
+-278 TJm
+(code)
+[9.571762
+0
+10.518609
+0
+10.518609
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 563.85 Td
+/F15_0 9.9626 Tf
+(Here')
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-250 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(d)
+[4.9813
+0] Tj
+-250 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le:)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 190.086] cm
+0 0 468 370.61 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 552.328 Td
+/F17_0 9.9626 Tf
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+113.91 550.584 Td
+(*)
+[5.97756
+0] Tj
+132.62 552.328 Td
+(f;)
+[5.97756
+0
+5.97756
+0] Tj
+90 540.373 Td
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+125.866 538.629 Td
+(*)
+[5.97756
+0] Tj
+136.087 540.373 Td
+(b;)
+[5.97756
+0
+5.97756
+0] Tj
+90 528.418 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(nBuf;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 516.462 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1704 TJm
+(buf[)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(/)
+[5.97756
+0] Tj
+165.018 514.719 Td
+(*)
+[5.97756
+0] Tj
+175.24 516.462 Td
+(whatever)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(you)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(like)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+305.79 514.719 Td
+(*)
+[5.97756
+0] Tj
+311.767 516.462 Td
+(/)
+[5.97756
+0] Tj
+-426 TJm
+(];)
+[5.97756
+0
+5.97756
+0] Tj
+90 504.507 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(bzerror;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 492.552 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(nWritten;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 468.642 Td
+(f)
+[5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(fopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+("myfile.bz2",)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+("w")
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 456.687 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(!f)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+94.244 444.731 Td
+(/)
+[5.97756
+0] Tj
+100.222 442.988 Td
+(*)
+[5.97756
+0] Tj
+110.443 444.731 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+184.684 442.988 Td
+(*)
+[5.97756
+0] Tj
+190.662 444.731 Td
+(/)
+[5.97756
+0] Tj
+90 432.776 Td
+(})
+[5.97756
+0] Tj
+90 420.821 Td
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWriteOpen\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(9)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 408.866 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+94.244 396.911 Td
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+94.244 384.955 Td
+(/)
+[5.97756
+0] Tj
+100.222 383.212 Td
+(*)
+[5.97756
+0] Tj
+110.443 384.955 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+184.684 383.212 Td
+(*)
+[5.97756
+0] Tj
+190.662 384.955 Td
+(/)
+[5.97756
+0] Tj
+90 373 Td
+(})
+[5.97756
+0] Tj
+90 349.09 Td
+(while)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(/)
+[5.97756
+0] Tj
+140.331 347.346 Td
+(*)
+[5.97756
+0] Tj
+150.553 349.09 Td
+(condition)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+208.595 347.346 Td
+(*)
+[5.97756
+0] Tj
+214.572 349.09 Td
+(/)
+[5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+94.244 337.135 Td
+(/)
+[5.97756
+0] Tj
+100.222 335.391 Td
+(*)
+[5.97756
+0] Tj
+110.443 337.135 Td
+(get)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(write)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(into)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(set)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nBuf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(appropriately)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+421.874 335.391 Td
+(*)
+[5.97756
+0] Tj
+427.852 337.135 Td
+(/)
+[5.97756
+0] Tj
+94.244 325.18 Td
+(nWritten)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ2_bzWrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nBuf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+94.244 313.224 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_IO_ERROR\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+102.732 301.269 Td
+(BZ2_bzWriteClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+102.732 289.314 Td
+(/)
+[5.97756
+0] Tj
+108.71 287.571 Td
+(*)
+[5.97756
+0] Tj
+118.931 289.314 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+193.172 287.571 Td
+(*)
+[5.97756
+0] Tj
+199.15 289.314 Td
+(/)
+[5.97756
+0] Tj
+94.244 277.359 Td
+(})
+[5.97756
+0] Tj
+90 265.404 Td
+(})
+[5.97756
+0] Tj
+90 241.493 Td
+(BZ2_bzWriteClose\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 229.538 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_IO_ERROR\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+94.244 217.583 Td
+(/)
+[5.97756
+0] Tj
+100.222 215.84 Td
+(*)
+[5.97756
+0] Tj
+110.443 217.583 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+184.684 215.84 Td
+(*)
+[5.97756
+0] Tj
+190.662 217.583 Td
+(/)
+[5.97756
+0] Tj
+90 205.628 Td
+(})
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 168.168 Td
+/F15_0 9.9626 Tf
+(And)
+[7.192997
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le:)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(25)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 26 29
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 349.39] cm
+0 0 468 370.61 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(FILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+113.91 709.888 Td
+(*)
+[5.97756
+0] Tj
+132.62 711.631 Td
+(f;)
+[5.97756
+0
+5.97756
+0] Tj
+90 699.676 Td
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+125.866 697.933 Td
+(*)
+[5.97756
+0] Tj
+136.087 699.676 Td
+(b;)
+[5.97756
+0
+5.97756
+0] Tj
+90 687.721 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(nBuf;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 675.766 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1704 TJm
+(buf[)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(/)
+[5.97756
+0] Tj
+165.018 674.022 Td
+(*)
+[5.97756
+0] Tj
+175.24 675.766 Td
+(whatever)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(you)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(like)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+305.79 674.022 Td
+(*)
+[5.97756
+0] Tj
+311.767 675.766 Td
+(/)
+[5.97756
+0] Tj
+-426 TJm
+(];)
+[5.97756
+0
+5.97756
+0] Tj
+90 663.811 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(bzerror;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 651.856 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-2130 TJm
+(nWritten;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 627.945 Td
+(f)
+[5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(fopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+("myfile.bz2",)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+("r")
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 615.99 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(!f)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+98.488 604.035 Td
+(/)
+[5.97756
+0] Tj
+104.466 602.291 Td
+(*)
+[5.97756
+0] Tj
+114.687 604.035 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+188.928 602.291 Td
+(*)
+[5.97756
+0] Tj
+194.906 604.035 Td
+(/)
+[5.97756
+0] Tj
+90 592.08 Td
+(})
+[5.97756
+0] Tj
+90 580.125 Td
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ2_bzReadOpen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(f,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 568.169 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+98.488 556.214 Td
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+98.488 544.259 Td
+(/)
+[5.97756
+0] Tj
+104.466 542.516 Td
+(*)
+[5.97756
+0] Tj
+114.687 544.259 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+188.928 542.516 Td
+(*)
+[5.97756
+0] Tj
+194.906 544.259 Td
+(/)
+[5.97756
+0] Tj
+90 532.304 Td
+(})
+[5.97756
+0] Tj
+90 508.393 Td
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ_OK;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 496.438 Td
+(while)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(&&)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(/)
+[5.97756
+0] Tj
+252.948 494.695 Td
+(*)
+[5.97756
+0] Tj
+263.17 496.438 Td
+(arbitrary)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(other)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(conditions)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+419.364 494.695 Td
+(*)
+[5.97756
+0] Tj
+425.341 496.438 Td
+(/\))
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+98.488 484.483 Td
+(nBuf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(=)
+[5.97756
+0] Tj
+-426 TJm
+(BZ2_bzRead)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(/)
+[5.97756
+0] Tj
+319.478 482.74 Td
+(*)
+[5.97756
+0] Tj
+329.7 484.483 Td
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+396.23 482.74 Td
+(*)
+[5.97756
+0] Tj
+402.208 484.483 Td
+(/)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+98.488 472.528 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+106.976 460.573 Td
+(/)
+[5.97756
+0] Tj
+112.953 458.829 Td
+(*)
+[5.97756
+0] Tj
+123.175 460.573 Td
+(do)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(something)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(buf[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(nBuf-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+321.989 458.829 Td
+(*)
+[5.97756
+0] Tj
+327.966 460.573 Td
+(/)
+[5.97756
+0] Tj
+98.488 448.618 Td
+(})
+[5.97756
+0] Tj
+90 436.662 Td
+(})
+[5.97756
+0] Tj
+90 424.707 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ_STREAM_END)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+102.732 412.752 Td
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+102.732 400.797 Td
+(/)
+[5.97756
+0] Tj
+108.71 399.053 Td
+(*)
+[5.97756
+0] Tj
+118.931 400.797 Td
+(handle)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+193.172 399.053 Td
+(*)
+[5.97756
+0] Tj
+199.15 400.797 Td
+(/)
+[5.97756
+0] Tj
+90 388.842 Td
+(})
+[5.97756
+0] Tj
+-426 TJm
+(else)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+({)
+[5.97756
+0] Tj
+102.732 376.887 Td
+(BZ2_bzReadClose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(&bzerror,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 364.931 Td
+(})
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 314.637 Td
+/F9_0 20.6585 Tf
+(3.5.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Utility)
+[14.915437
+0
+6.879281
+0
+5.743063
+0
+5.743063
+0
+5.743063
+0
+6.879281
+0
+11.486126
+0] Tj
+-278 TJm
+(functions)
+[6.879281
+0
+12.622344
+0
+12.622344
+0
+11.486126
+0
+6.879281
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 284.016 Td
+/F9_0 17.2154 Tf
+(3.5.1.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzBuffT)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+10.518609
+0
+5.732728
+0
+5.732728
+0
+10.518609
+0] Tj
+80 TJm
+(oBuffCompress)
+[10.518609
+0
+12.429519
+0
+10.518609
+0
+5.732728
+0
+5.732728
+0
+12.429519
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 183.815] cm
+0 0 468 95.641 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 271.087 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzBuffToBuffCompress\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+289.771 269.344 Td
+(*)
+[5.97756
+0] Tj
+333.944 271.087 Td
+(dest,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 259.132 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+287.317 257.389 Td
+(*)
+[5.97756
+0] Tj
+297.538 259.132 Td
+(destLen,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 247.177 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+241.23 245.434 Td
+(*)
+[5.97756
+0] Tj
+285.403 247.177 Td
+(source,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 235.222 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(sourceLen,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 223.267 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(blockSize100k,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 211.312 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(verbosity,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+217.319 199.356 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 161.897 Td
+/F15_0 9.9626 Tf
+(Attempts)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-442 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-442 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-443 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-442 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-442 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.87 161.897 Td
+/F17_0 9.9626 Tf
+(source[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+-1200 TJm
+(sourceLen-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.715 161.897 Td
+/F15_0 9.9626 Tf
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-442 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-443 TJm
+(dest)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+1 TJm
+(ination)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-443 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 161.897 Td
+/F17_0 9.9626 Tf
+(dest[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+72 148.198 Td
+(*)
+[5.97756
+0] Tj
+77.978 149.942 Td
+(destLen-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 149.942 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1393 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-379 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(destination)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-379 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-378 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-379 TJm
+(big)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-379 TJm
+(enough,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+318.487 148.198 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+324.464 149.942 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.082 149.942 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-379 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-379 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-378 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-379 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-379 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-379 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+72 137.986 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.527 137.986 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.556 137.986 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-315 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1012 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-315 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-316 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-315 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(on')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-316 TJm
+(\002t,)
+[5.539206
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+313.323 136.243 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+319.3 137.986 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.285 137.986 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-315 TJm
+(unchanged,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-332 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.551 137.986 Td
+/F17_0 9.9626 Tf
+(BZ_OUTBUFF_FULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 137.986 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 126.031 Td
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 104.113 Td
+(Compression)
+[6.645054
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-297 TJm
+(manner)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-297 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-297 TJm
+(a)
+[4.423394
+0] Tj
+-297 TJm
+(one-shot)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-297 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ent,)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-309 TJm
+(done)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-297 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(a)
+[4.423394
+0] Tj
+-297 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-297 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-297 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-297 TJm
+(function.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-903 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-297 TJm
+(resulting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+72 92.158 Td
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-296 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-296 TJm
+(a)
+[4.423394
+0] Tj
+-296 TJm
+(complete)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+147.988 92.158 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+180.825 92.158 Td
+/F15_0 9.9626 Tf
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-296 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-296 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-897 TJm
+(There)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-296 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-296 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-296 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-296 TJm
+(making)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(additional)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-296 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-296 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(pro)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(vide)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-296 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xtra)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+72 80.203 Td
+(input)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(data.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(kind)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(mechanism,)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0
+2.49065
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(lo)
+[2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w-le)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(interf)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+10 TJm
+(ace.)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(26)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 27 30
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-223 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-224 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-223 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-224 TJm
+(parameters)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+195.306 710.037 Td
+/F17_0 9.9626 Tf
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+273.015 710.037 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.784 710.037 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+333.808 710.037 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+350.42 710.037 Td
+/F17_0 9.9626 Tf
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+410.196 710.037 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-229 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+429.913 710.037 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 710.037 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 688.12 Td
+(T)
+[6.087149
+0] Tj
+80 TJm
+(o)
+[4.9813
+0] Tj
+-410 TJm
+(guarantee)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-410 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-410 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-410 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-410 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-410 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-410 TJm
+(\002t)
+[5.539206
+0
+2.769603
+0] Tj
+-410 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-410 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-410 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-450 TJm
+(allocate)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-410 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-410 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-410 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-411 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-410 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-410 TJm
+(1%)
+[4.9813
+0
+8.298846
+0] Tj
+-410 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ger)
+[4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-410 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-410 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 676.164 Td
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(plus)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(six)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(hundred)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xtra)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(bytes.)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 654.247 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.553 654.247 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-315 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-315 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-314 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-315 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-315 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-315 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(yond)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+362.484 654.247 Td
+/F17_0 9.9626 Tf
+(dest[)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+392.372 652.503 Td
+(*)
+[5.97756
+0] Tj
+398.349 654.247 Td
+(destLen])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.17 654.247 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-331 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-315 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-314 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-315 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+72 642.291 Td
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er\003o)
+[4.423394
+0
+3.317546
+0
+5.539206
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 620.374 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 451.905] cm
+0 0 468 167.372 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 610.909 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 598.954 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 586.999 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 575.044 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(dest)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 563.089 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(blockSize100k)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(9)
+[5.97756
+0] Tj
+98.488 551.133 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(4)
+[5.97756
+0] Tj
+98.488 539.178 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(workFactor)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(250)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 527.223 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 515.268 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 503.313 Td
+(BZ_OUTBUFF_FULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 491.357 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(exceeds)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+341.655 489.614 Td
+(*)
+[5.97756
+0] Tj
+347.633 491.357 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 479.402 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 467.447 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 421.284 Td
+/F9_0 17.2154 Tf
+(3.5.2.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(BZ2_bzBuffT)
+[12.429519
+0
+10.518609
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+8.6077
+0
+12.429519
+0
+10.518609
+0
+5.732728
+0
+5.732728
+0
+10.518609
+0] Tj
+80 TJm
+(oBuffDecompress)
+[10.518609
+0
+12.429519
+0
+10.518609
+0
+5.732728
+0
+5.732728
+0
+12.429519
+0
+9.571762
+0
+9.571762
+0
+10.518609
+0
+15.304491
+0
+10.518609
+0
+6.696791
+0
+9.571762
+0
+9.571762
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 333.038] cm
+0 0 468 83.686 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 408.356 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzBuffToBuffDecompress\()
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+301.726 406.612 Td
+(*)
+[5.97756
+0] Tj
+345.899 408.356 Td
+(dest,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+225.807 396.401 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+295.805 394.657 Td
+(*)
+[5.97756
+0] Tj
+306.026 396.401 Td
+(destLen,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+225.807 384.446 Td
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+249.717 382.702 Td
+(*)
+[5.97756
+0] Tj
+293.891 384.446 Td
+(source,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+225.807 372.49 Td
+(unsigned)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(sourceLen,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+225.807 360.535 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(small,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+225.807 348.58 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-4686 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 311.12 Td
+/F15_0 9.9626 Tf
+(Attempts)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-358 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-359 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-358 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-358 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-359 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.259 311.12 Td
+/F17_0 9.9626 Tf
+(source[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+-1200 TJm
+(sourceLen-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+374.268 311.12 Td
+/F15_0 9.9626 Tf
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-358 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-359 TJm
+(destination)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-358 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+486.202 311.12 Td
+/F17_0 9.9626 Tf
+(dest[0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(..)
+[5.97756
+0
+5.97756
+0] Tj
+72 297.422 Td
+(*)
+[5.97756
+0] Tj
+77.978 299.165 Td
+(destLen-1])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 299.165 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1123 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-334 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-334 TJm
+(destination)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-334 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-334 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-334 TJm
+(big)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-334 TJm
+(enough,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.554 297.422 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+318.531 299.165 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.701 299.165 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-334 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+-334 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-334 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-334 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-333 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-334 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-334 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-334 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+72 287.21 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+89.527 287.21 Td
+/F17_0 9.9626 Tf
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.556 287.21 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-315 TJm
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1012 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-315 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-316 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-315 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(on')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-316 TJm
+(\002t,)
+[5.539206
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+313.323 285.467 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+319.3 287.21 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+364.285 287.21 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-315 TJm
+(unchanged,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-332 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.551 287.21 Td
+/F17_0 9.9626 Tf
+(BZ_OUTBUFF_FULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 287.21 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 275.255 Td
+(returned.)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 253.337 Td
+/F17_0 9.9626 Tf
+(source)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+110.981 253.337 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-313 TJm
+(assumed)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-312 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-313 TJm
+(hold)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-313 TJm
+(a)
+[4.423394
+0] Tj
+-313 TJm
+(complete)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+237.04 253.337 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+270.044 253.337 Td
+/F15_0 9.9626 Tf
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-313 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-312 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.446 253.337 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+511.978 253.337 Td
+/F15_0 9.9626 Tf
+(tries)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-313 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 241.382 Td
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(entirety)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(stream)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 219.464 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(meaning)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(parameters)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.631 219.464 Td
+/F17_0 9.9626 Tf
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+229.01 219.464 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+245.887 219.464 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.685 219.464 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+319.879 219.464 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+439.431 219.464 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 197.546 Td
+(Because)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-249 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(ratio)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-249 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-249 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-249 TJm
+(cannot)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(kno)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-249 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(adv)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ance,)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-249 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-249 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(easy)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-249 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(guarantee)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+72 185.591 Td
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-286 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(output)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-286 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-287 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-286 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(big)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(enough.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-838 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-286 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(course)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0] Tj
+-286 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-286 TJm
+(arrangements)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-287 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-286 TJm
+(record)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-287 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-286 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-287 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 173.636 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(yond)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(scope)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 151.718 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.553 151.718 Td
+/F15_0 9.9626 Tf
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-315 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-315 TJm
+(write)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-314 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-315 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-315 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-315 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(yond)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+362.484 151.718 Td
+/F17_0 9.9626 Tf
+(dest[)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+392.372 149.975 Td
+(*)
+[5.97756
+0] Tj
+398.349 151.718 Td
+(destLen])
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+446.17 151.718 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-331 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-315 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-314 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-315 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uf)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(fer)
+[3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+72 139.763 Td
+(o)
+[4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er\003o)
+[4.423394
+0
+3.317546
+0
+5.539206
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 117.845 Td
+(Possible)
+[5.539206
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(27)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 28 31
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+420.96 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+498.449 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 75.786 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 492.852] cm
+0 0 468 227.148 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 711.631 Td
+/F17_0 9.9626 Tf
+(BZ_CONFIG_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 699.676 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(library)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(has)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(been)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(mis-compiled)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 687.721 Td
+(BZ_PARAM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 675.766 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(dest)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(NULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 663.811 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(&&)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(small)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(!=)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1)
+[5.97756
+0] Tj
+98.488 651.856 Td
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(<)
+[5.97756
+0] Tj
+-426 TJm
+(0)
+[5.97756
+0] Tj
+-426 TJm
+(or)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(>)
+[5.97756
+0] Tj
+-426 TJm
+(4)
+[5.97756
+0] Tj
+90 639.9 Td
+(BZ_MEM_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 627.945 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(insufficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(memory)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(is)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 615.99 Td
+(BZ_OUTBUFF_FULL)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 604.035 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(size)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(exceeds)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+341.655 602.291 Td
+(*)
+[5.97756
+0] Tj
+347.633 604.035 Td
+(destLen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 592.08 Td
+(BZ_DATA_ERROR)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 580.124 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(a)
+[5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(integrity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(was)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(detected)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 568.169 Td
+(BZ_DATA_ERROR_MAGIC)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 556.214 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(doesn't)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(begin)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(right)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(magic)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bytes)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 544.259 Td
+(BZ_UNEXPECTED_EOF)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 532.304 Td
+(if)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compressed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ends)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(unexpectedly)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 520.349 Td
+(BZ_OK)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 508.393 Td
+(otherwise)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 458.099 Td
+/F9_0 20.6585 Tf
+(3.6.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(zlib)
+[10.32925
+0
+5.743063
+0
+5.743063
+0
+12.622344
+0] Tj
+-278 TJm
+(compatibility)
+[11.486126
+0
+12.622344
+0
+18.365407
+0
+12.622344
+0
+11.486126
+0
+6.879281
+0
+5.743063
+0
+12.622344
+0
+5.743063
+0
+5.743063
+0
+5.743063
+0
+6.879281
+0
+11.486126
+0] Tj
+-278 TJm
+(functions)
+[6.879281
+0
+12.622344
+0
+12.622344
+0
+11.486126
+0
+6.879281
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 436.181 Td
+/F15_0 9.9626 Tf
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(oshioka)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-604 TJm
+(Tsuneo)
+[6.087149
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-604 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-604 TJm
+(contrib)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(uted)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-604 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-604 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-604 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-604 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-604 TJm
+(better)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+356.347 436.181 Td
+/F17_0 9.9626 Tf
+(zlib)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+386.275 436.181 Td
+/F15_0 9.9626 Tf
+(compatibility)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1372 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-604 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-604 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.776 424.226 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.283 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzread)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.059 424.226 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+216.567 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzwrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.32 424.226 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.827 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+360.581 424.226 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+373.088 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+438.842 424.226 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+451.349 424.226 Td
+/F17_0 9.9626 Tf
+(BZ2_bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+525.614 424.226 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 412.271 Td
+/F17_0 9.9626 Tf
+(BZ2_bzlibVersion)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.641 412.271 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1420 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-383 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-383 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-383 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-383 TJm
+(\(yet\))
+[3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-384 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(\002cially)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-383 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-383 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-383 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-384 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-1419 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-383 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-384 TJm
+(break,)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-416 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-383 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-384 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 400.316 Td
+(k)
+[4.9813
+0] Tj
+10 TJm
+(eep)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(pieces.)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-620 TJm
+(Ne)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ertheless,)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(think)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(ok.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 349.342] cm
+0 0 468 47.821 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 388.794 Td
+/F17_0 9.9626 Tf
+(typedef)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZFILE;)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 364.884 Td
+(const)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+152.286 363.14 Td
+(*)
+[5.97756
+0] Tj
+162.508 364.884 Td
+(BZ2_bzlibVersion)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 327.424 Td
+/F15_0 9.9626 Tf
+(Returns)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(string)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(indicating)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion.)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 288.405] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 315.902 Td
+/F17_0 9.9626 Tf
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+130.109 314.159 Td
+(*)
+[5.97756
+0] Tj
+140.331 315.902 Td
+(BZ2_bzopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(const)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+281.103 314.159 Td
+(*)
+[5.97756
+0] Tj
+287.08 315.902 Td
+(path,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(const)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+383.498 314.159 Td
+(*)
+[5.97756
+0] Tj
+389.476 315.902 Td
+(mode)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 303.947 Td
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+130.109 302.204 Td
+(*)
+[5.97756
+0] Tj
+140.331 303.947 Td
+(BZ2_bzdopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-3408 TJm
+(fd,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1704 TJm
+(const)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+369.629 302.204 Td
+(*)
+[5.97756
+0] Tj
+375.607 303.947 Td
+(mode)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 266.488 Td
+/F15_0 9.9626 Tf
+(Opens)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-243 TJm
+(a)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+106.713 266.488 Td
+/F17_0 9.9626 Tf
+(.bz2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+133.041 266.488 Td
+/F15_0 9.9626 Tf
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-243 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-242 TJm
+(reading)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-243 TJm
+(writing,)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-244 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(either)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-242 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-243 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-243 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-242 TJm
+(a)
+[4.423394
+0] Tj
+-243 TJm
+(pre-e)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-242 TJm
+(descriptor)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-615 TJm
+(Analogous)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-243 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 266.488 Td
+/F17_0 9.9626 Tf
+(fopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 254.532 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+88.877 254.532 Td
+/F17_0 9.9626 Tf
+(fdopen)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.742 254.532 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 216.137] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 243.633 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzread)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+226.528 241.89 Td
+(*)
+[5.97756
+0] Tj
+236.749 243.633 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+276.859 241.89 Td
+(*)
+[5.97756
+0] Tj
+287.08 243.633 Td
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 231.678 Td
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzwrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+228.261 229.935 Td
+(*)
+[5.97756
+0] Tj
+238.483 231.678 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+278.592 229.935 Td
+(*)
+[5.97756
+0] Tj
+288.814 231.678 Td
+(buf,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(len)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 194.219 Td
+/F15_0 9.9626 Tf
+(Reads/writes)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(from/to)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(pre)
+[4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(viously)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(opened)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+259.903 194.219 Td
+/F17_0 9.9626 Tf
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+295.769 194.219 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-500 TJm
+(Analogous)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+359.141 194.219 Td
+/F17_0 9.9626 Tf
+(fread)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.519 194.219 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+408.396 194.219 Td
+/F17_0 9.9626 Tf
+(fwrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+444.261 194.219 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 155.2] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 182.697 Td
+/F17_0 9.9626 Tf
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(BZ2_bzflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+232.505 180.954 Td
+(*)
+[5.97756
+0] Tj
+242.727 182.697 Td
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+90 170.742 Td
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BZ2_bzclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+234.239 168.998 Td
+(*)
+[5.97756
+0] Tj
+244.46 170.742 Td
+(b)
+[5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 133.282 Td
+/F15_0 9.9626 Tf
+(Flushes/closes)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+138.968 133.282 Td
+/F17_0 9.9626 Tf
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+174.833 133.282 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.815 133.282 Td
+/F17_0 9.9626 Tf
+(BZ2_bzflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+248.059 133.282 Td
+/F15_0 9.9626 Tf
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(actually)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(ything.)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(Analogous)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+425.472 133.282 Td
+/F17_0 9.9626 Tf
+(fflush)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.828 133.282 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.705 133.282 Td
+/F17_0 9.9626 Tf
+(fclose)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+516.57 133.282 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 106.219] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 121.761 Td
+/F17_0 9.9626 Tf
+(const)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(char)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+152.286 120.017 Td
+(*)
+[5.97756
+0] Tj
+162.508 121.761 Td
+(BZ2_bzerror)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(BZFILE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+282.836 120.017 Td
+(*)
+[5.97756
+0] Tj
+288.814 121.761 Td
+(b,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+327.19 120.017 Td
+(*)
+[5.97756
+0] Tj
+333.167 121.761 Td
+(errnum)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\))
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 84.301 Td
+/F15_0 9.9626 Tf
+(Returns)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(string)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(describing)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(recent)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(status)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+303.858 84.301 Td
+/F17_0 9.9626 Tf
+(b)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+309.835 84.301 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(sets)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+367.668 82.558 Td
+/F17_0 9.9626 Tf
+(*)
+[5.97756
+0] Tj
+373.645 84.301 Td
+(errnum)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.002 84.301 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(numerical)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alue.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+536.307 50.951 Td
+(28)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 29 32
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 704.93 Td
+/F9_0 20.6585 Tf
+(3.7.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Using)
+[14.915437
+0
+11.486126
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+-278 TJm
+(the)
+[6.879281
+0
+12.622344
+0
+11.486126
+0] Tj
+-278 TJm
+(librar)
+[5.743063
+0
+5.743063
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0
+8.036157
+0] Tj
+-10 TJm
+(y)
+[11.486126
+0] Tj
+-278 TJm
+(in)
+[5.743063
+0
+12.622344
+0] Tj
+-278 TJm
+(a)
+[11.486126
+0] Tj
+-278 TJm
+(stdio-free)
+[11.486126
+0
+6.879281
+0
+12.622344
+0
+5.743063
+0
+12.622344
+0
+6.879281
+0
+6.879281
+0
+8.036157
+0
+11.486126
+0
+11.486126
+0] Tj
+72 680.139 Td
+(en)
+[11.486126
+0
+12.622344
+0] Tj
+40 TJm
+(vir)
+[11.486126
+0
+5.743063
+0
+8.036157
+0] Tj
+20 TJm
+(onment)
+[12.622344
+0
+12.622344
+0
+18.365407
+0
+11.486126
+0
+12.622344
+0
+6.879281
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 649.583 Td
+/F9_0 17.2154 Tf
+(3.7.1.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Getting)
+[13.393581
+0
+9.571762
+0
+5.732728
+0
+5.732728
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0] Tj
+-278 TJm
+(rid)
+[6.696791
+0
+4.785881
+0
+10.518609
+0] Tj
+-278 TJm
+(of)
+[10.518609
+0
+5.732728
+0] Tj
+-278 TJm
+(stdio)
+[9.571762
+0
+5.732728
+0
+10.518609
+0
+4.785881
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 627.73 Td
+/F15_0 9.9626 Tf
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-319 TJm
+(a)
+[4.423394
+0] Tj
+-319 TJm
+(deeply)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-319 TJm
+(embedded)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-319 TJm
+(application,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-336 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-319 TJm
+(might)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-319 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-319 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-319 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-319 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-319 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-319 TJm
+(memory-to-memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-319 TJm
+(functions.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-1035 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-319 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-319 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-319 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+72 615.775 Td
+(con)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(eniently)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-327 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(compiling)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-327 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-327 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-328 TJm
+(preproces)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+1 TJm
+(sor)
+[3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+-328 TJm
+(symbol)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+336.045 615.775 Td
+/F17_0 9.9626 Tf
+(BZ_NO_STDIO)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+405.057 615.775 Td
+/F15_0 9.9626 Tf
+(de\002ned.)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-1083 TJm
+(Doing)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-327 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-327 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(a)
+[4.423394
+0] Tj
+72 603.819 Td
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(containing)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(only)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(eight)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(functions:)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 581.966 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+179.597 581.966 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+199.079 581.966 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+282.765 581.966 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.247 581.966 Td
+/F17_0 9.9626 Tf
+(BZ2_bzCompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-1414 TJm
+(BZ2_bzDe)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-1 TJm
+(compressInit)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 581.966 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 570.011 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+167.641 570.011 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+172.144 570.011 Td
+/F17_0 9.9626 Tf
+(BZ2_bzDecompressEnd)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-190 TJm
+(BZ2_bzBuffToBuffCompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+431.073 570.011 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+435.577 570.011 Td
+/F17_0 9.9626 Tf
+(BZ2_bzBuffToBuffDecompress)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 548.158 Td
+/F15_0 9.9626 Tf
+(When)
+[9.404694
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(compiled)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(this,)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(functions)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(ignore)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.526 548.158 Td
+/F17_0 9.9626 Tf
+(verbosity)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.815 548.158 Td
+/F15_0 9.9626 Tf
+(settings.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 517.601 Td
+/F9_0 17.2154 Tf
+(3.7.2.)
+[9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(Critical)
+[12.429519
+0
+6.696791
+0
+4.785881
+0
+5.732728
+0
+4.785881
+0
+9.571762
+0
+9.571762
+0
+4.785881
+0] Tj
+-278 TJm
+(err)
+[9.571762
+0
+6.696791
+0
+6.696791
+0] Tj
+20 TJm
+(or)
+[10.518609
+0
+6.696791
+0] Tj
+-278 TJm
+(handling)
+[10.518609
+0
+9.571762
+0
+10.518609
+0
+10.518609
+0
+4.785881
+0
+4.785881
+0
+10.518609
+0
+10.518609
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 495.748 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.529 495.748 Td
+/F15_0 9.9626 Tf
+(contains)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-473 TJm
+(a)
+[4.423394
+0] Tj
+-472 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-473 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-472 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-473 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-472 TJm
+(checks)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-473 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-472 TJm
+(should,)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-529 TJm
+(needless)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-472 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-473 TJm
+(say)
+[3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-528 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-473 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-472 TJm
+(acti)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ated.)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 483.793 Td
+(Ne)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ertheless,)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-533 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-476 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-476 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-476 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-476 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ail,)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-532 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-476 TJm
+(depends)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-476 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-476 TJm
+(whether)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-476 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-477 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-476 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-476 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-476 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-476 TJm
+(compiled)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-476 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 471.838 Td
+/F17_0 9.9626 Tf
+(BZ_NO_STDIO)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+140.244 471.838 Td
+/F15_0 9.9626 Tf
+(set.)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 449.985 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(compile,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailure)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(yields)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(message:)
+[7.750903
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 428.131 Td
+(bzip2/libbzip2:)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-310 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(N.)
+[7.192997
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 406.278 Td
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-357 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-358 TJm
+(a)
+[4.423394
+0] Tj
+-357 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-357 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-358 TJm
+(bzip2/libbzip2,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-384 TJm
+(1.0.8)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-357 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-357 TJm
+(13)
+[4.9813
+0
+4.9813
+0] Tj
+-358 TJm
+(July)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-357 TJm
+(2019.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-632 TJm
+(Please)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-357 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-358 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-357 TJm
+(to:)
+[2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-524 TJm
+(bzip2-de)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(el@source)
+[4.423394
+0
+2.769603
+0
+9.175555
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(are.or)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(g.)
+[4.9813
+0
+2.49065
+0] Tj
+-1264 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-358 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+72 394.323 Td
+(happened)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-297 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-298 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(were)
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-297 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-298 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-297 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-297 TJm
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-297 TJm
+(libbzip2)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-298 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-297 TJm
+(a)
+[4.423394
+0] Tj
+-297 TJm
+(component,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-309 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-298 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-297 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-297 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-298 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+72 382.368 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-264 TJm
+(author\(s\))
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+3.875451
+0
+3.317546
+0] Tj
+-264 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-264 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-264 TJm
+(program.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-703 TJm
+(Please)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-264 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-264 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(fort)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-264 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-263 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-264 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug;)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-271 TJm
+(timely)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-264 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(accurate)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-264 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(reports)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+-264 TJm
+(e)
+[4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(entually)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+72 370.413 Td
+(lead)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(higher)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(quality)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(softw)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(are.)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(Thanks.)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 338.758 Td
+(where)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+98.831 338.758 Td
+/F17_0 9.9626 Tf
+(N)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+107.301 338.758 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-251 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-621 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+230.81 338.758 Td
+/F17_0 9.9626 Tf
+(N)
+[5.97756
+0] Tj
+-600 TJm
+(==)
+[5.97756
+0
+5.97756
+0] Tj
+-600 TJm
+(1007)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+284.608 338.758 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+-251 TJm
+(prints)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xtra)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(te)
+[2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xt)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(advising)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(reader)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(unreliable)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+72 326.803 Td
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-425 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-424 TJm
+(often)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-425 TJm
+(associated)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-425 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-424 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-425 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-424 TJm
+(1007.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-834 TJm
+(\(This)
+[3.317546
+0
+6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-425 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-425 TJm
+(a)
+[4.423394
+0] Tj
+-424 TJm
+(frequently-observ)
+[3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(ed-phenomenon)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-425 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-425 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+72 314.848 Td
+(1.0.0/1.0.1\).)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 292.995 Td
+/F17_0 9.9626 Tf
+(exit\(3\))
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+116.334 292.995 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(then)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(called.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 271.142 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+95.093 271.142 Td
+/F17_0 9.9626 Tf
+(stdio)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.981 271.142 Td
+/F15_0 9.9626 Tf
+(-free)
+[3.317546
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailures)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(result)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(call)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(function)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(declared)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(as:)
+[4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 244.078] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 259.62 Td
+/F17_0 9.9626 Tf
+(extern)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(void)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bz_internal_error)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\()
+[5.97756
+0] Tj
+-426 TJm
+(int)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(errcode)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\);)
+[5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 222.225 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(rele)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(passed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(parameter)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-620 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(supply)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(function.)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 200.372 Td
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-294 TJm
+(either)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-294 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-306 TJm
+(once)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-294 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-294 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailure)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-294 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-295 TJm
+(occurred,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-305 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+306.541 200.372 Td
+/F17_0 9.9626 Tf
+(bz_stream)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.271 200.372 Td
+/F15_0 9.9626 Tf
+(records)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0] Tj
+-294 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(olv)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+15 TJm
+(ed)
+[4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-295 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-294 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(arded)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-294 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-294 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alid.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+72 188.417 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(attempt)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(resume)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(normal)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(operation)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 166.564 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-310 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-299 TJm
+(course,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-311 TJm
+(change)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-298 TJm
+(critical)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-299 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-298 TJm
+(handling)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-298 TJm
+(suit)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-299 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-298 TJm
+(needs.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-912 TJm
+(As)
+[7.192997
+0
+3.875451
+0] Tj
+-298 TJm
+(I)
+[3.317546
+0] Tj
+-299 TJm
+(said)
+[3.875451
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-298 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-311 TJm
+(critical)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-299 TJm
+(errors)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-298 TJm
+(indicate)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-299 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ugs)
+[4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+72 154.609 Td
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-263 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-263 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-263 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-263 TJm
+(occur)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-697 TJm
+(All)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+-263 TJm
+("normal")
+[4.064741
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.064741
+0] Tj
+-263 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-263 TJm
+(situations)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-263 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-263 TJm
+(indicated)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-263 TJm
+(via)
+[4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-263 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-263 TJm
+(return)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-263 TJm
+(codes)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-263 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-263 TJm
+(functions,)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+72 142.653 Td
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(reco)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ered)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(from.)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 107.965 Td
+/F9_0 20.6585 Tf
+(3.8.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Making)
+[17.208531
+0
+11.486126
+0
+11.486126
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+-278 TJm
+(a)
+[11.486126
+0] Tj
+-278 TJm
+(Windo)
+[19.501624
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+12.622344
+0] Tj
+15 TJm
+(ws)
+[16.072313
+0
+11.486126
+0] Tj
+-278 TJm
+(DLL)
+[14.915437
+0
+12.622344
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 86.112 Td
+/F15_0 9.9626 Tf
+(Ev)
+[6.087149
+0
+4.9813
+0] Tj
+15 TJm
+(erything)
+[4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-328 TJm
+(related)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-327 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-328 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(indo)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(ws)
+[7.192997
+0
+3.875451
+0] Tj
+-328 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-327 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-328 TJm
+(contrib)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(uted)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-328 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-327 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(oshioka)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-328 TJm
+(Tsuneo)
+[6.087149
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-328 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+378.139 86.112 Td
+/F17_0 9.9626 Tf
+(tsuneo@rr.iij4u.or.jp)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+503.668 86.112 Td
+/F15_0 9.9626 Tf
+(\),)
+[3.317546
+0
+2.49065
+0] Tj
+-347 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-328 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+72 74.157 Td
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(send)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(queries)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(him)
+[4.9813
+0
+2.769603
+0
+7.750903
+0] Tj
+-250 TJm
+(\(b)
+[3.317546
+0
+4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(please)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(Cc:)
+[6.645054
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+264.715 74.157 Td
+/F17_0 9.9626 Tf
+(bzip2-devel@sourceware.org)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+420.133 74.157 Td
+/F15_0 9.9626 Tf
+(\).)
+[3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 51.071 Td
+(29)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 30 33
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+419.067 749.245 Td
+/F15_0 9.9626 Tf
+(Programming)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.556 749.245 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(My)
+[8.856751
+0
+4.9813
+0] Tj
+-367 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ague)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-367 TJm
+(understanding)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-367 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-368 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-367 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(is:)
+[2.769603
+0
+3.875451
+0
+2.769603
+0] Tj
+-544 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-367 TJm
+(V)
+[7.192997
+0] Tj
+60 TJm
+(isual)
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-367 TJm
+(C++)
+[6.645054
+0
+5.618906
+0
+5.618906
+0] Tj
+-367 TJm
+(5.0,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-397 TJm
+(open)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-367 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-367 TJm
+(project)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-367 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+432.966 710.037 Td
+/F17_0 9.9626 Tf
+(libbz2.dsp)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+492.742 710.037 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-396 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-368 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uild.)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+72 698.082 Td
+(That')
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-250 TJm
+(all.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 676.164 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-284 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(can')
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-285 TJm
+(open)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-284 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-284 TJm
+(project)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-284 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-284 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-285 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-284 TJm
+(reason,)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-293 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-284 TJm
+(a)
+[4.423394
+0] Tj
+-284 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-284 TJm
+(one,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-293 TJm
+(naming)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-284 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-284 TJm
+(\002les:)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+424.505 676.164 Td
+/F17_0 9.9626 Tf
+(blocksort.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+490.259 676.164 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+495.666 676.164 Td
+/F17_0 9.9626 Tf
+(bzlib.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+537.509 676.164 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+/F17_0 9.9626 Tf
+(compress.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+131.776 664.209 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+136.436 664.209 Td
+/F17_0 9.9626 Tf
+(crctable.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.211 664.209 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+200.871 664.209 Td
+/F17_0 9.9626 Tf
+(decompress.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+272.602 664.209 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+277.262 664.209 Td
+/F17_0 9.9626 Tf
+(huffman.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+331.06 664.209 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.72 664.209 Td
+/F17_0 9.9626 Tf
+(randtable.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+403.562 664.209 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+420.037 664.209 Td
+/F17_0 9.9626 Tf
+(libbz2.def)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+479.812 664.209 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-593 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-210 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-209 TJm
+(also)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+72 652.254 Td
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(name)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(header)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+190.415 652.254 Td
+/F17_0 9.9626 Tf
+(bzlib.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.749 652.254 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+251.625 652.254 Td
+/F17_0 9.9626 Tf
+(bzlib_private.h)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+341.289 652.254 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 630.336 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(don')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(VC++,)
+[7.192997
+0
+6.645054
+0
+5.618906
+0
+5.618906
+0
+2.49065
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(de\002ne)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(proprocessor)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(symbol)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.634 630.336 Td
+/F17_0 9.9626 Tf
+(_WIN32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+399.5 630.336 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 608.418 Td
+(Finally)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.568 608.418 Td
+/F17_0 9.9626 Tf
+(dlltest.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.856 608.418 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(sample)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(DLL.)
+[7.192997
+0
+6.087149
+0
+6.087149
+0
+2.49065
+0] Tj
+-500 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(project)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(\002le,)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+388.58 608.418 Td
+/F17_0 9.9626 Tf
+(dlltest.dsp)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+454.334 608.418 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 586.501 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e\002le)
+[4.423394
+0
+5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(V)
+[7.192997
+0] Tj
+60 TJm
+(isual)
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(C,)
+[6.645054
+0
+2.49065
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(look)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+292.212 586.501 Td
+/F17_0 9.9626 Tf
+(makefile.msc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+363.943 586.501 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 564.583 Td
+(Be)
+[6.645054
+0
+4.423394
+0] Tj
+-291 TJm
+(a)
+[4.423394
+0] Tj
+15 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-291 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-291 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-291 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-291 TJm
+(compile)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+192.07 564.583 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+224.857 564.583 Td
+/F15_0 9.9626 Tf
+(itself)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-291 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-291 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(in32,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-301 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-291 TJm
+(must)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-291 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+346.842 564.583 Td
+/F17_0 9.9626 Tf
+(BZ_UNIX)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.584 564.583 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(0)
+[4.9813
+0] Tj
+-291 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+427.4 564.583 Td
+/F17_0 9.9626 Tf
+(BZ_LCCWIN32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+496.052 564.583 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(1,)
+[4.9813
+0
+2.49065
+0] Tj
+-301 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-291 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+72 552.628 Td
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+87.223 552.628 Td
+/F17_0 9.9626 Tf
+(bzip2.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+129.066 552.628 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(compiling.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Otherwise)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(resulting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(binary)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(on')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 530.71 Td
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en')
+[4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(tried)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(stuf)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(f)
+[3.317546
+0] Tj
+-250 TJm
+(myself,)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(looks)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(plausible.)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(30)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 31 34
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 701.916 Td
+/F9_0 24.7902 Tf
+(4.)
+[13.783351
+0
+6.891676
+0] Tj
+-278 TJm
+(Miscellanea)
+[20.650237
+0
+6.891676
+0
+13.783351
+0
+13.783351
+0
+13.783351
+0
+6.891676
+0
+6.891676
+0
+13.783351
+0
+15.146812
+0
+13.783351
+0
+13.783351
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 656.35 Td
+/F9_0 17.2154 Tf
+(T)
+[10.518609
+0] Tj
+80 TJm
+(ab)
+[9.571762
+0
+10.518609
+0] Tj
+10 TJm
+(le)
+[4.785881
+0
+9.571762
+0] Tj
+-278 TJm
+(of)
+[10.518609
+0
+5.732728
+0] Tj
+-278 TJm
+(Contents)
+[12.429519
+0
+10.518609
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0
+10.518609
+0
+5.732728
+0
+9.571762
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 635.788 Td
+/F15_0 9.9626 Tf
+(4.1.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Limitations)
+[6.087149
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+267.908 635.788 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 635.788 Td
+/F15_0 9.9626 Tf
+(31)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 623.832 Td
+(4.2.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Portability)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(issues)
+[2.769603
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.784 623.832 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 623.832 Td
+/F15_0 9.9626 Tf
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 611.877 Td
+(4.3.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Reporting)
+[6.645054
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ugs)
+[4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+162.656 611.877 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 611.877 Td
+/F15_0 9.9626 Tf
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 599.922 Td
+(4.4.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Did)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(right)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(package?)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.565 599.922 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 599.922 Td
+/F15_0 9.9626 Tf
+(33)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 587.967 Td
+(4.5.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Further)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(Reading)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+166.902 587.967 Td
+/F123_0 9.9626 Tf
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-167 TJm
+(:)
+[2.76761
+0] Tj
+-166 TJm
+(:)
+[2.76761
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+506.127 587.967 Td
+/F15_0 9.9626 Tf
+(34)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 556.086 Td
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(random)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(thoughts)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(mine.)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(our)
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(mileage)
+[7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ary)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 521.334 Td
+/F9_0 20.6585 Tf
+(4.1.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Limitations)
+[12.622344
+0
+5.743063
+0
+18.365407
+0
+5.743063
+0
+6.879281
+0
+11.486126
+0
+6.879281
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+11.486126
+0] Tj
+-278 TJm
+(of)
+[12.622344
+0
+6.879281
+0] Tj
+-278 TJm
+(the)
+[6.879281
+0
+12.622344
+0
+11.486126
+0] Tj
+-278 TJm
+(compressed)
+[11.486126
+0
+12.622344
+0
+18.365407
+0
+12.622344
+0
+8.036157
+0
+11.486126
+0
+11.486126
+0
+11.486126
+0
+11.486126
+0
+12.622344
+0] Tj
+-278 TJm
+(\002le)
+[12.622344
+0
+5.743063
+0
+11.486126
+0] Tj
+-278 TJm
+(f)
+[6.879281
+0] Tj
+20 TJm
+(ormat)
+[12.622344
+0
+8.036157
+0
+18.365407
+0
+11.486126
+0
+6.879281
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 499.416 Td
+/F17_0 9.9626 Tf
+(bzip2-1.0.X)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.753 499.416 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+143.405 499.416 Td
+/F17_0 9.9626 Tf
+(0.9.5)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+176.453 499.416 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+194 499.416 Td
+/F17_0 9.9626 Tf
+(0.9.0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+227.048 499.416 Td
+/F15_0 9.9626 Tf
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-317 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xactly)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-318 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-317 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-317 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-317 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-317 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-318 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-317 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-317 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion,)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+455.801 499.416 Td
+/F17_0 9.9626 Tf
+(bzip2-0.1)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+509.599 499.416 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1024 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+72 487.461 Td
+(decision)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-222 TJm
+(made)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-222 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-221 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-222 TJm
+(interests)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-222 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-222 TJm
+(stability)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-601 TJm
+(Creating)
+[6.645054
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(yet)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-222 TJm
+(another)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-222 TJm
+(incompatible)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-221 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-222 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-222 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-222 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-222 TJm
+(create)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+72 475.505 Td
+(further)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(confusion)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(disruption)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(users.)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 453.588 Td
+(Ne)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ertheless,)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-234 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-229 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-230 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-229 TJm
+(a)
+[4.423394
+0] Tj
+-230 TJm
+(painless)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-229 TJm
+(decision.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-606 TJm
+(De)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(elopment)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-230 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-230 TJm
+(sinc)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+1 TJm
+(e)
+[4.423394
+0] Tj
+-230 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-230 TJm
+(release)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-229 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+407.317 453.588 Td
+/F17_0 9.9626 Tf
+(bzip2-0.1)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+463.402 453.588 Td
+/F15_0 9.9626 Tf
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-230 TJm
+(August)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-229 TJm
+(1997)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-230 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+72 441.632 Td
+(sho)
+[3.875451
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-226 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xities)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-226 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-225 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-226 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-226 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-226 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-226 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-225 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-226 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-226 TJm
+(and,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-231 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-226 TJm
+(retrospect,)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-230 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-226 TJm
+(unnecessary)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-604 TJm
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-226 TJm
+(are:)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 409.752 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(run-length)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(encoder)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-297 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-287 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-288 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-287 TJm
+(\002rst)
+[5.539206
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-287 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-287 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-288 TJm
+(compression)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-287 TJm
+(transformations,)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-296 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-288 TJm
+(entirely)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-287 TJm
+(irrele)
+[2.769603
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-843 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-288 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+81.963 397.797 Td
+(purpose)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-322 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-322 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(protect)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-321 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-322 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-322 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-322 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-321 TJm
+(case)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-322 TJm
+(input:)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-454 TJm
+(a)
+[4.423394
+0] Tj
+-322 TJm
+(string)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-322 TJm
+(repeated)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-321 TJm
+(symbols.)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-1052 TJm
+(But)
+[6.645054
+0
+4.9813
+0
+2.769603
+0] Tj
+81.963 385.842 Td
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-229 TJm
+(steps)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-230 TJm
+(Q6a)
+[7.192997
+0
+4.9813
+0
+4.423394
+0] Tj
+-229 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-230 TJm
+(Q6b)
+[7.192997
+0
+4.9813
+0
+4.9813
+0] Tj
+-229 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-230 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(he)
+[4.9813
+0
+4.423394
+0] Tj
+-230 TJm
+(original)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-229 TJm
+(Burro)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws-Wheeler)
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-230 TJm
+(technical)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-229 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-230 TJm
+(\(SRC-124\))
+[3.317546
+0
+5.539206
+0
+6.645054
+0
+6.645054
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-229 TJm
+(sho)
+[3.875451
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-229 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-230 TJm
+(repeats)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-229 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-230 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+81.963 373.886 Td
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(without)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culty)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(sorting.)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 351.969 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(randomisation)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-314 TJm
+(mechanism)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-315 TJm
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-314 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-315 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(there.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-1007 TJm
+(Udi)
+[7.192997
+0
+4.9813
+0
+2.769603
+0] Tj
+-315 TJm
+(Manber)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-315 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-314 TJm
+(Gene)
+[7.192997
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(Myers)
+[8.856751
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-314 TJm
+(published)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(a)
+[4.423394
+0] Tj
+-315 TJm
+(suf)
+[3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(\002x)
+[5.539206
+0
+4.9813
+0] Tj
+81.963 340.013 Td
+(array)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(construction)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-266 TJm
+(a)
+[4.423394
+0] Tj
+-266 TJm
+(fe)
+[3.317546
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-266 TJm
+(years)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-266 TJm
+(back,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-269 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-266 TJm
+(emplo)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(yed)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-266 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-266 TJm
+(sort)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-266 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-266 TJm
+(block,)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-270 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-266 TJm
+(matter)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-266 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-266 TJm
+(repetiti)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+81.963 328.058 Td
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-257 TJm
+(O\(N)
+[7.192997
+0
+3.317546
+0
+7.192997
+0] Tj
+-257 TJm
+(log)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-257 TJm
+(N\))
+[7.192997
+0
+3.317546
+0] Tj
+-258 TJm
+(time.)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-663 TJm
+(Subsequent)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-257 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-257 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-257 TJm
+(K)
+[7.192997
+0] Tj
+15 TJm
+(unihik)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-257 TJm
+(Sadakane)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-258 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-257 TJm
+(produced)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-257 TJm
+(a)
+[4.423394
+0] Tj
+-257 TJm
+(deri)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ati)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-257 TJm
+(O\(N)
+[7.192997
+0
+3.317546
+0
+7.192997
+0] Tj
+-257 TJm
+(\(log)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-258 TJm
+(N\)^2\))
+[7.192997
+0
+3.317546
+0
+4.672459
+0
+4.9813
+0
+3.317546
+0] Tj
+-257 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+81.963 316.103 Td
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(usually)
+[4.9813
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(outperforms)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(Manber)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-Myers)
+[3.317546
+0
+8.856751
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(algorithm.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 294.185 Td
+(I)
+[3.317546
+0] Tj
+-274 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-274 TJm
+(changed)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-274 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(Sadakane')
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-274 TJm
+(algorithm,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-280 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-274 TJm
+(I)
+[3.317546
+0] Tj
+-274 TJm
+(\002nd)
+[5.539206
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-274 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-274 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wer)
+[7.192997
+0
+4.423394
+0
+3.317546
+0] Tj
+-274 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+391.407 294.185 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+421.295 294.185 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-274 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-274 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-274 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+81.963 282.23 Td
+(inputs,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-399 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-369 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-369 TJm
+(randomisation)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-370 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+1 TJm
+(chanism)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+7.750903
+0] Tj
+-370 TJm
+(protects)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-369 TJm
+(adequately)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-369 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ainst)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-369 TJm
+(bad)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-369 TJm
+(cases.)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-1336 TJm
+(I)
+[3.317546
+0] Tj
+-369 TJm
+(didn')
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-369 TJm
+(think)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-369 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-369 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-369 TJm
+(a)
+[4.423394
+0] Tj
+-370 TJm
+(good)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+81.963 270.275 Td
+(tradeof)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(f)
+[3.317546
+0] Tj
+-282 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e.)
+[4.423394
+0
+2.49065
+0] Tj
+-815 TJm
+(P)
+[5.539206
+0] Tj
+15 TJm
+(artly)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-282 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-282 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-283 TJm
+(due)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(act)
+[4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-283 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-282 TJm
+(I)
+[3.317546
+0] Tj
+-283 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-282 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-282 TJm
+(\003ooded)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-283 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-282 TJm
+(email)
+[4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-283 TJm
+(complaints)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-282 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+479.557 270.275 Td
+/F17_0 9.9626 Tf
+(bzip2-0.1)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+533.355 270.275 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+81.963 258.32 Td
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(repetiti)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(data,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(perhaps)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(isn')
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(problem)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(real)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(inputs.)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 236.402 Td
+(Probably)
+[5.539206
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(best)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0] Tj
+-314 TJm
+(long-term)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+7.750903
+0] Tj
+-314 TJm
+(solution,)
+[3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-331 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-314 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-314 TJm
+(one)
+[4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(I)
+[3.317546
+0] Tj
+-314 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-314 TJm
+(incorporated)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-315 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(0.9.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-314 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-315 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-330 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-315 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-314 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-314 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-315 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+81.963 224.447 Td
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-206 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-206 TJm
+(initially)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-215 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-207 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-206 TJm
+(back)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-206 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-206 TJm
+(a)
+[4.423394
+0] Tj
+-207 TJm
+(O\(N)
+[7.192997
+0
+3.317546
+0
+7.192997
+0] Tj
+-206 TJm
+(\(log)
+[3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-206 TJm
+(N\)^2\))
+[7.192997
+0
+3.317546
+0
+4.672459
+0
+4.9813
+0
+3.317546
+0] Tj
+-206 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-206 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-207 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-206 TJm
+(standard)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-206 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-206 TJm
+(gets)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-206 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-207 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culties.)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 202.529 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-321 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-321 TJm
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-321 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-322 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-321 TJm
+(designed)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-321 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-321 TJm
+(handled)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-321 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(a)
+[4.423394
+0] Tj
+-321 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-339 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(I)
+[3.317546
+0] Tj
+-321 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-321 TJm
+(had)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-322 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-321 TJm
+(jump)
+[2.769603
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0] Tj
+-321 TJm
+(though)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+81.963 190.574 Td
+(hoops)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-299 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(o)
+[4.9813
+0] Tj
+-299 TJm
+(produce)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-299 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-298 TJm
+(ef)
+[4.423394
+0
+3.317546
+0] Tj
+25 TJm
+(\002cient)
+[5.539206
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-299 TJm
+(implementation)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-298 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-299 TJm
+(decompression.)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-911 TJm
+(It')
+[3.317546
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-298 TJm
+(a)
+[4.423394
+0] Tj
+-299 TJm
+(bit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-298 TJm
+(hairy)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-912 TJm
+(T)
+[6.087149
+0] Tj
+35 TJm
+(ry)
+[3.317546
+0
+4.9813
+0] Tj
+-298 TJm
+(passing)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+468.269 190.574 Td
+/F17_0 9.9626 Tf
+(decompress.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 178.619 Td
+/F15_0 9.9626 Tf
+(through)
+[2.769603
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-289 TJm
+(C)
+[6.645054
+0] Tj
+-289 TJm
+(preprocessor)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-289 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+10 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-289 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+-289 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-289 TJm
+(I)
+[3.317546
+0] Tj
+-289 TJm
+(mean.)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-854 TJm
+(Much)
+[8.856751
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-289 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-289 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xity)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-289 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-289 TJm
+(been)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(oided)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-289 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-289 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+81.963 166.663 Td
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(size)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(each)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(block)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(recorded)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(stream.)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 144.746 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(An)
+[7.192997
+0
+4.9813
+0] Tj
+-250 TJm
+(Adler)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-32)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(checksum,)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-250 TJm
+(rather)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(CRC32)
+[6.645054
+0
+6.645054
+0
+6.645054
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(checksum,)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(compute.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 122.828 Td
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-349 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-349 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(air)
+[4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-348 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(say)
+[3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-349 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-349 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+201.979 122.828 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+235.342 122.828 Td
+/F15_0 9.9626 Tf
+(format)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-349 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-349 TJm
+(frozen)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-348 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-349 TJm
+(I)
+[3.317546
+0] Tj
+-349 TJm
+(properly)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-349 TJm
+(fully)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-349 TJm
+(understood)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-348 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-349 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+72 110.873 Td
+(consequences)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(doing)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(so.)
+[3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 88.955 Td
+(Impro)
+[3.317546
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ements)
+[4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(incorporate)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(0.9.0,)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(despite)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(format,)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(are:)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(31)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 32 35
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F15_0 9.9626 Tf
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Single)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-234 TJm
+(array)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-234 TJm
+(implementation)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-235 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-234 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-234 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erse)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0] Tj
+-234 TJm
+(BWT)
+[6.645054
+0
+9.404694
+0
+6.087149
+0] Tj
+74 TJm
+(.)
+[2.49065
+0] Tj
+-469 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-234 TJm
+(signi\002cantly)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-235 TJm
+(speeds)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-234 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-234 TJm
+(decompression,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-237 TJm
+(presumably)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-235 TJm
+(because)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+81.963 698.082 Td
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(reduces)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(number)
+[4.9813
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(cache)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(misses.)
+[7.750903
+0
+2.769603
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 676.164 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(F)
+[5.539206
+0] Tj
+15 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-338 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(erse)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+4.423394
+0] Tj
+-338 TJm
+(MTF)
+[8.856751
+0
+6.087149
+0
+5.539206
+0] Tj
+-338 TJm
+(transform)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+-338 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-339 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-338 TJm
+(MTF)
+[8.856751
+0
+6.087149
+0
+5.539206
+0] Tj
+-338 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-574 TJm
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-338 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-339 TJm
+(implementation)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-338 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-338 TJm
+(based)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-338 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-338 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-338 TJm
+(notion)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-339 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-338 TJm
+(sliding)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+81.963 664.209 Td
+(blocks)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(alues.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 642.291 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+82.461 642.291 Td
+/F17_0 9.9626 Tf
+(bzip2-0.9.0)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+151.137 642.291 Td
+/F15_0 9.9626 Tf
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-293 TJm
+(reads)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-294 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-293 TJm
+(writes)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-293 TJm
+(\002les)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-294 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+279.657 642.291 Td
+/F17_0 9.9626 Tf
+(fread)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+312.467 642.291 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+329.776 642.291 Td
+/F17_0 9.9626 Tf
+(fwrite)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+365.642 642.291 Td
+/F15_0 9.9626 Tf
+(;)
+[2.769603
+0] Tj
+-315 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-293 TJm
+(0.1)
+[4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-294 TJm
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+440.214 642.291 Td
+/F17_0 9.9626 Tf
+(putc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.047 642.291 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+484.356 642.291 Td
+/F17_0 9.9626 Tf
+(getc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+508.266 642.291 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-880 TJm
+(Duh!)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+81.963 630.336 Td
+(W)
+[9.404694
+0] Tj
+80 TJm
+(ell,)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(li)
+[2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(learn.)
+[2.769603
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 608.418 Td
+(Further)
+[5.539206
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-304 TJm
+(ahead,)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-318 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-305 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ould)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-304 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(nice)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-304 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-305 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-304 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-304 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-305 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-304 TJm
+(random)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0] Tj
+-305 TJm
+(access)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-304 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-305 TJm
+(\002les.)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-946 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-305 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-304 TJm
+(require)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0] Tj
+-304 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-305 TJm
+(careful)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(design)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-305 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+72 596.463 Td
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(formats.)
+[3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 561.71 Td
+/F9_0 20.6585 Tf
+(4.2.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(P)
+[13.77922
+0] Tj
+40 TJm
+(or)
+[12.622344
+0
+8.036157
+0] Tj
+-20 TJm
+(tability)
+[6.879281
+0
+11.486126
+0
+12.622344
+0
+5.743063
+0
+5.743063
+0
+5.743063
+0
+6.879281
+0
+11.486126
+0] Tj
+-278 TJm
+(issues)
+[5.743063
+0
+11.486126
+0
+11.486126
+0
+12.622344
+0
+11.486126
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 539.792 Td
+/F15_0 9.9626 Tf
+(After)
+[7.192997
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(consideration,)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(decided)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+303.231 539.792 Td
+/F17_0 9.9626 Tf
+(autoconf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.542 539.792 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(con\002gure)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(0.9.5)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(1.0.)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 517.875 Td
+/F17_0 9.9626 Tf
+(autoconf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+119.821 517.875 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-502 TJm
+(admirable)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-452 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-452 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(onderful)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0] Tj
+-452 TJm
+(though)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-452 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-452 TJm
+(is,)
+[2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-502 TJm
+(mainly)
+[7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-452 TJm
+(assists)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-452 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-452 TJm
+(portability)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-452 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-452 TJm
+(between)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-452 TJm
+(Unix-lik)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+72 505.92 Td
+(platforms.)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-1398 TJm
+(But)
+[6.645054
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+144.784 505.92 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+178.455 505.92 Td
+/F15_0 9.9626 Tf
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-380 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-379 TJm
+(much)
+[7.750903
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-380 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-380 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-380 TJm
+(portability)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-379 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-380 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-380 TJm
+(Unix;)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0] Tj
+-444 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-380 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-380 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-379 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culties)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+72 493.964 Td
+(appear)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0] Tj
+-297 TJm
+(when)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-296 TJm
+(p)
+[4.9813
+0] Tj
+-1 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+1 TJm
+(ting)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-297 TJm
+(Mac,)
+[8.856751
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-308 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-297 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(Microsoft')
+[8.856751
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-296 TJm
+(operating)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-297 TJm
+(systems.)
+[3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+361.339 493.964 Td
+/F17_0 9.9626 Tf
+(autoconf)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+412.116 493.964 Td
+/F15_0 9.9626 Tf
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-297 TJm
+(help)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-297 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(those)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-297 TJm
+(cases,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-308 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 482.009 Td
+(brings)
+[4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(whole)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(load)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-250 TJm
+(comple)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+15 TJm
+(xity)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 460.091 Td
+(Most)
+[8.856751
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-392 TJm
+(people)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-392 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-393 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-392 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-392 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-392 TJm
+(compile)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-393 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-392 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-392 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-392 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-393 TJm
+(under)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-392 TJm
+(Unix)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-392 TJm
+(straight)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-392 TJm
+(out-of-the-box,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-428 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-392 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-393 TJm
+(speak,)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+72 448.136 Td
+(especially)
+[4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-250 TJm
+(C)
+[6.645054
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 426.218 Td
+(There)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-259 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-258 TJm
+(a)
+[4.423394
+0] Tj
+-259 TJm
+(couple)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+159.561 426.218 Td
+/F17_0 9.9626 Tf
+(__inline__)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+221.913 426.218 Td
+/F15_0 9.9626 Tf
+(directi)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-259 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-259 TJm
+(code.)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-671 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-259 TJm
+(C)
+[6.645054
+0] Tj
+-258 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+352.587 426.218 Td
+/F17_0 9.9626 Tf
+(gcc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+370.52 426.218 Td
+/F15_0 9.9626 Tf
+(\))
+[3.317546
+0] Tj
+-259 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-258 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-259 TJm
+(able)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-259 TJm
+(handle)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-258 TJm
+(them.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-672 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-259 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(re)
+[3.317546
+0
+4.423394
+0] Tj
+72 414.263 Td
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-279 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-279 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-279 TJm
+(C,)
+[6.645054
+0
+2.49065
+0] Tj
+-279 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(C)
+[6.645054
+0] Tj
+-279 TJm
+(compiler)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-279 TJm
+(shouldn')
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-279 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+-279 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-279 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-279 TJm
+(all.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-794 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-279 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(compiler)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-279 TJm
+(does,)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-286 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-279 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-279 TJm
+(reason,)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-287 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+-279 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-279 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 402.308 Td
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-283 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-283 TJm
+(them,)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+-291 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+164.167 402.308 Td
+/F17_0 9.9626 Tf
+(#define)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-283 TJm
+(__inline__)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+271.425 402.308 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+294.22 402.308 Td
+/F17_0 9.9626 Tf
+(/)
+[5.97756
+0] Tj
+300.197 400.565 Td
+(*)
+[5.97756
+0] Tj
+-600 TJm
+(*)
+[5.97756
+0] Tj
+318.13 402.308 Td
+(/)
+[5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.108 402.308 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-818 TJm
+(One)
+[7.192997
+0
+4.9813
+0
+4.423394
+0] Tj
+-283 TJm
+(easy)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+-283 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-283 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-283 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-283 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-283 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(compile)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-283 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-283 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-283 TJm
+(\003ag)
+[5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 390.353 Td
+/F17_0 9.9626 Tf
+(-D__inline__=)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+149.709 390.353 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(understood)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(Unix)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(compilers.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 368.435 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-321 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-321 TJm
+(still)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-322 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-321 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(\002culties,)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-339 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-321 TJm
+(compiling)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-321 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(he)
+[4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(macro)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+310.295 368.435 Td
+/F17_0 9.9626 Tf
+(BZ_STRICT_ANSI)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+397.181 368.435 Td
+/F15_0 9.9626 Tf
+(de\002ned.)
+[4.9813
+0
+4.423394
+0
+5.539206
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-524 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-321 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-321 TJm
+(enable)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-321 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 356.48 Td
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uild)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-321 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-321 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-322 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-321 TJm
+(a)
+[4.423394
+0] Tj
+-321 TJm
+(strictly)
+[3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-321 TJm
+(ANSI)
+[7.192997
+0
+7.192997
+0
+5.539206
+0
+3.317546
+0] Tj
+-321 TJm
+(compliant)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-322 TJm
+(en)
+[4.423394
+0
+4.9813
+0] Tj
+40 TJm
+(vironment.)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-1047 TJm
+(Building)
+[6.645054
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-321 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-321 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-322 TJm
+(itself)
+[2.769603
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0] Tj
+-321 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-321 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-321 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-321 TJm
+(dangerous)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-322 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+72 344.525 Td
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-260 TJm
+(supported,)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-263 TJm
+(since)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-260 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(remo)
+[3.317546
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+204.498 344.525 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+234.386 344.525 Td
+/F15_0 9.9626 Tf
+(')
+[3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-260 TJm
+(checks)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-260 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ainst)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-260 TJm
+(compressing)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-261 TJm
+(directories,)
+[4.9813
+0
+2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-262 TJm
+(symbolic)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-261 TJm
+(li)
+[2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(nks,)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-263 TJm
+(de)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(vices,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-263 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-260 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+72 332.57 Td
+(not-really-a-\002le)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(entities.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-620 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(could)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(cause)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(\002lesystem)
+[5.539206
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(corruption!)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 310.652 Td
+(One)
+[7.192997
+0
+4.9813
+0
+4.423394
+0] Tj
+-392 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-391 TJm
+(thing:)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-594 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-391 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-392 TJm
+(create)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-391 TJm
+(a)
+[4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+210.879 310.652 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.669 310.652 Td
+/F15_0 9.9626 Tf
+(binary)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-392 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-391 TJm
+(public)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-392 TJm
+(distrib)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+20 TJm
+(ution,)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-427 TJm
+(please)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-392 TJm
+(consider)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-391 TJm
+(linking)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-392 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-391 TJm
+(statically)
+[3.875451
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-392 TJm
+(\()
+[3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+522.067 310.652 Td
+/F17_0 9.9626 Tf
+(gcc)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+72 298.697 Td
+(-static)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+113.843 298.697 Td
+/F15_0 9.9626 Tf
+(\).)
+[3.317546
+0
+2.49065
+0] Tj
+-620 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(oids)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(sorts)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(library-v)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+15 TJm
+(ersion)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(issues)
+[2.769603
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(others)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(encounter)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(later)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(on.)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 276.779 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-296 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uild)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+122.708 276.779 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+155.545 276.779 Td
+/F15_0 9.9626 Tf
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(in32,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-307 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-296 TJm
+(must)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-296 TJm
+(set)
+[3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+254.965 276.779 Td
+/F17_0 9.9626 Tf
+(BZ_UNIX)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+299.756 276.779 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(0)
+[4.9813
+0] Tj
+-296 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+335.72 276.779 Td
+/F17_0 9.9626 Tf
+(BZ_LCCWIN32)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+404.422 276.779 Td
+/F15_0 9.9626 Tf
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(1,)
+[4.9813
+0
+2.49065
+0] Tj
+-307 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-296 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-296 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+467.159 276.779 Td
+/F17_0 9.9626 Tf
+(bzip2.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+509.002 276.779 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-307 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+72 264.824 Td
+(compiling.)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-310 TJm
+(Otherwise)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+7.192997
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(resulting)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(binary)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(on')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork)
+[4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 230.071 Td
+/F9_0 20.6585 Tf
+(4.3.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Repor)
+[14.915437
+0
+11.486126
+0
+12.622344
+0
+12.622344
+0
+8.036157
+0] Tj
+-20 TJm
+(ting)
+[6.879281
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+-278 TJm
+(b)
+[12.622344
+0] Tj
+20 TJm
+(ugs)
+[12.622344
+0
+12.622344
+0
+11.486126
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 208.153 Td
+/F15_0 9.9626 Tf
+(I)
+[3.317546
+0] Tj
+-228 TJm
+(tried)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(pretty)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(hard)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-228 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-228 TJm
+(sure)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+196.25 208.153 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+228.409 208.153 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-228 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(free,)
+[3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.49065
+0] Tj
+-232 TJm
+(both)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(design)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(by)
+[4.9813
+0
+4.9813
+0] Tj
+-228 TJm
+(testing.)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-605 TJm
+(Hopefully)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+10 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-228 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+-228 TJm
+(need)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-228 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-228 TJm
+(read)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 196.198 Td
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(section)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(real.)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 174.28 Td
+(Ne)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ertheless,)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-313 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+137.751 174.28 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+170.634 174.28 Td
+/F15_0 9.9626 Tf
+(dies)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-301 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-300 TJm
+(a)
+[4.423394
+0] Tj
+-301 TJm
+(se)
+[3.875451
+0
+4.423394
+0] Tj
+15 TJm
+(gmentation)
+[4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-300 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ault,)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-314 TJm
+(a)
+[4.423394
+0] Tj
+-300 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(us)
+[4.9813
+0
+3.875451
+0] Tj
+-301 TJm
+(error)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+-300 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-301 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-301 TJm
+(internal)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-300 TJm
+(assertion)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-301 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailure,)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+2.49065
+0] Tj
+-313 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-301 TJm
+(wil)
+[7.192997
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(l)
+[2.769603
+0] Tj
+-301 TJm
+(ask)
+[4.423394
+0
+3.875451
+0
+4.9813
+0] Tj
+-301 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-300 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+72 162.325 Td
+(email)
+[4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-242 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-243 TJm
+(a)
+[4.423394
+0] Tj
+-242 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(report.)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.49065
+0] Tj
+-615 TJm
+(Experience)
+[6.087149
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-242 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-243 TJm
+(years)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-242 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-242 TJm
+(feedback)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-243 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-242 TJm
+(bzip2)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(users)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-242 TJm
+(indicates)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-243 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-242 TJm
+(almost)
+[4.423394
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-242 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-243 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-242 TJm
+(problems)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0] Tj
+-243 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+72 150.37 Td
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(traced)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(either)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(compiler)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ugs)
+[4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(hardw)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+7.192997
+0] Tj
+10 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(problems.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(32)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 33 36
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F15_0 9.9626 Tf
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+74.491 710.037 Td
+/F15_0 9.9626 Tf
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(Recompile)
+[6.645054
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+-322 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-322 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-322 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-322 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(optimisat)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(ion,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-340 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-322 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+-322 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-322 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-322 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orks.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+2.49065
+0] Tj
+-1052 TJm
+(And/or)
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-322 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-322 TJm
+(a)
+[4.423394
+0] Tj
+-321 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(ferent)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-322 TJm
+(compiler)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-1052 TJm
+(I)
+[3.317546
+0] Tj
+-322 TJm
+(heard)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-322 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+81.963 698.082 Td
+(sorts)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+3.875451
+0] Tj
+-309 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-310 TJm
+(stories)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-310 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-309 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(arious)
+[4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-310 TJm
+(\003a)
+[5.539206
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+20 TJm
+(ours)
+[4.9813
+0
+4.9813
+0
+3.317546
+0
+3.875451
+0] Tj
+-309 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-310 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-309 TJm
+(C)
+[6.645054
+0] Tj
+-310 TJm
+(\(and)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-309 TJm
+(other)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-310 TJm
+(compilers\))
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0
+3.317546
+0] Tj
+-309 TJm
+(generating)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-310 TJm
+(bad)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-310 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-309 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+471.527 698.082 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+501.415 698.082 Td
+/F15_0 9.9626 Tf
+(,)
+[2.49065
+0] Tj
+-324 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-310 TJm
+(I')
+[3.317546
+0
+3.317546
+0] Tj
+50 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+81.963 686.127 Td
+(run)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(across)
+[4.423394
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0] Tj
+-250 TJm
+(tw)
+[2.769603
+0
+7.192997
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xamples)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(myself.)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 664.209 Td
+(2.7.X)
+[4.9813
+0
+2.49065
+0
+4.9813
+0
+2.49065
+0
+7.192997
+0] Tj
+-299 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ersions)
+[4.423394
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-300 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-299 TJm
+(GNU)
+[7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+-299 TJm
+(C)
+[6.645054
+0] Tj
+-300 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-299 TJm
+(kno)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-300 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(generate)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-299 TJm
+(bad)
+[4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-300 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-299 TJm
+(from)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0] Tj
+-299 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-300 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-299 TJm
+(time,)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.49065
+0] Tj
+-312 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-299 TJm
+(high)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-300 TJm
+(optimisation)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-299 TJm
+(le)
+[2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(els.)
+[4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-916 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-300 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+81.963 652.254 Td
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-328 TJm
+(problems,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-348 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-328 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-329 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-328 TJm
+(\003ags)
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+217.176 652.254 Td
+/F17_0 9.9626 Tf
+(-O2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-328 TJm
+(-fomit-frame-pointer)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-329 TJm
+(-fno-strength-reduce)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+480.753 652.254 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-1090 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-328 TJm
+(should)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+81.963 640.299 Td
+(speci\002cally)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+5.539206
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+129.832 640.299 Td
+/F496_0 9.9626 Tf
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+145.055 640.299 Td
+/F15_0 9.9626 Tf
+(use)
+[4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+160.826 640.299 Td
+/F17_0 9.9626 Tf
+(-funroll-loops)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+244.512 640.299 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 618.381 Td
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou)
+[4.9813
+0
+4.9813
+0] Tj
+-240 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-240 TJm
+(notice)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0] Tj
+-241 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-240 TJm
+(Mak)
+[8.856751
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e\002le)
+[4.423394
+0
+5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-240 TJm
+(runs)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-240 TJm
+(six)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+-241 TJm
+(tests)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-240 TJm
+(as)
+[4.423394
+0
+3.875451
+0] Tj
+-240 TJm
+(part)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0] Tj
+-240 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-241 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(uild)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-240 TJm
+(process.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.49065
+0] Tj
+-613 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-240 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-241 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-240 TJm
+(passes)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-240 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-240 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-240 TJm
+(these,)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-242 TJm
+(it')
+[2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-241 TJm
+(a)
+[4.423394
+0] Tj
+81.963 606.426 Td
+(pretty)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(good)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(\(b)
+[3.317546
+0
+4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(100%\))
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+8.298846
+0
+3.317546
+0] Tj
+-250 TJm
+(indication)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(compiler)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(done)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(its)
+[2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(job)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(correctly)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 584.508 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+91.723 584.508 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+124.239 584.508 Td
+/F15_0 9.9626 Tf
+(crashes)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(randomly)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-267 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-264 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-263 TJm
+(crashes)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-264 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-264 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-263 TJm
+(repeatable,)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-268 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-263 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-264 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-264 TJm
+(a)
+[4.423394
+0] Tj
+-264 TJm
+(\003ak)
+[5.539206
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-263 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-264 TJm
+(subsystem.)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+510.112 584.508 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 572.553 Td
+/F15_0 9.9626 Tf
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(hammers)
+[4.9813
+0
+4.423394
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-274 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-274 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-274 TJm
+(hierarch)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(y)
+[4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-280 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-274 TJm
+(it')
+[2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-274 TJm
+(a)
+[4.423394
+0] Tj
+-274 TJm
+(bit)
+[4.9813
+0
+2.769603
+0
+2.769603
+0] Tj
+-274 TJm
+(mar)
+[7.750903
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ginal,)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-280 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(may)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+-274 TJm
+(get)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-274 TJm
+(these)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-274 TJm
+(problems.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-764 TJm
+(Ditto)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-274 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-274 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-274 TJm
+(disk)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0] Tj
+81.963 560.598 Td
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(I/O)
+[3.317546
+0
+2.769603
+0
+7.192997
+0] Tj
+-250 TJm
+(subsystem)
+[3.875451
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(slo)
+[3.875451
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wly)
+[7.192997
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(ailing.)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-620 TJm
+(Y)
+[7.192997
+0] Tj
+111 TJm
+(up,)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(does)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(happen.)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+81.963 538.68 Td
+(T)
+[6.087149
+0] Tj
+35 TJm
+(ry)
+[3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(using)
+[4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(dif)
+[4.9813
+0
+2.769603
+0
+3.317546
+0] Tj
+25 TJm
+(ferent)
+[3.317546
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(machine)
+[7.750903
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(same)
+[3.875451
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(type,)
+[2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(see)
+[3.875451
+0
+4.423394
+0
+4.423394
+0] Tj
+-250 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(repeat)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(problem.)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+74.491 516.762 Td
+(\225)
+[3.48691
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-450 TJm
+(This)
+[6.087149
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-252 TJm
+(isn')
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-251 TJm
+(really)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-252 TJm
+(a)
+[4.423394
+0] Tj
+-252 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug,)
+[4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-252 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-251 TJm
+(...)
+[2.49065
+0
+2.49065
+0
+2.49065
+0] Tj
+-315 TJm
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+209.383 516.762 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+241.778 516.762 Td
+/F15_0 9.9626 Tf
+(tells)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-252 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-252 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-252 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-251 TJm
+(corrupted)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(decompression,)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-252 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(obtained)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-252 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-251 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+81.963 504.807 Td
+(via)
+[4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-281 TJm
+(FTP)
+[5.539206
+0
+6.087149
+0
+5.539206
+0] Tj
+111 TJm
+(,)
+[2.49065
+0] Tj
+-282 TJm
+(there)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-282 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-281 TJm
+(a)
+[4.423394
+0] Tj
+-282 TJm
+(possibility)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-281 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-282 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-281 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(got)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-282 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-281 TJm
+(tell)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-282 TJm
+(FTP)
+[5.539206
+0
+6.087149
+0
+5.539206
+0] Tj
+-281 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-282 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-281 TJm
+(a)
+[4.423394
+0] Tj
+-282 TJm
+(binary)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-281 TJm
+(mode)
+[7.750903
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-282 TJm
+(transfer)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+-809 TJm
+(That)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-282 TJm
+(absolutely)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-281 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-282 TJm
+(cause)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+81.963 492.852 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(non-decompressible.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-620 TJm
+(Y)
+[7.192997
+0] Tj
+110 TJm
+(ou')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+10 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(transfer)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ain.)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 470.934 Td
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-235 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+50 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-236 TJm
+(inc)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+1 TJm
+(o)
+[4.9813
+0] Tj
+-1 TJm
+(r)
+[3.317546
+0] Tj
+1 TJm
+(po)
+[4.9813
+0
+4.9813
+0] Tj
+-1 TJm
+(r)
+[3.317546
+0] Tj
+1 TJm
+(ated)
+[4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+163.036 470.934 Td
+/F17_0 9.9626 Tf
+(libbzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+213.2 470.934 Td
+/F15_0 9.9626 Tf
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-235 TJm
+(your)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-236 TJm
+(o)
+[4.9813
+0] Tj
+25 TJm
+(wn)
+[7.192997
+0
+4.9813
+0] Tj
+-235 TJm
+(program)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0] Tj
+-235 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-235 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-236 TJm
+(gett)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+1 TJm
+(ing)
+[2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-236 TJm
+(problems,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-238 TJm
+(please,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-238 TJm
+(please,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-238 TJm
+(please,)
+[4.9813
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-238 TJm
+(check)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-236 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+72 458.979 Td
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(parameters)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-243 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-242 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-242 TJm
+(passing)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-242 TJm
+(calls)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-242 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-243 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-244 TJm
+(are)
+[4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-242 TJm
+(correct,)
+[4.423394
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-244 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-242 TJm
+(accordance)
+[4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-242 TJm
+(with)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-243 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-242 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-242 TJm
+(documentation)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-243 TJm
+(says)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+72 447.024 Td
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(allo)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(able.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.49065
+0] Tj
+-310 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(tried)
+[2.769603
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(mak)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+10 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-250 TJm
+(rob)
+[3.317546
+0
+4.9813
+0
+4.9813
+0] Tj
+20 TJm
+(ust)
+[4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(ag)
+[4.423394
+0
+4.9813
+0] Tj
+5 TJm
+(ainst)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-250 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(problems,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+3.875451
+0
+2.49065
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(I'm)
+[3.317546
+0
+3.317546
+0
+7.750903
+0] Tj
+-250 TJm
+(sure)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(I)
+[3.317546
+0] Tj
+-250 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(en')
+[4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(succeeded.)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 425.106 Td
+(Finally)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-324 TJm
+(if)
+[2.769603
+0
+3.317546
+0] Tj
+-310 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-309 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-309 TJm
+(comments)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-310 TJm
+(don')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-309 TJm
+(help,)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0] Tj
+-324 TJm
+(you')
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+10 TJm
+(ll)
+[2.769603
+0
+2.769603
+0] Tj
+-310 TJm
+(ha)
+[4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-309 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-309 TJm
+(send)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-310 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-309 TJm
+(a)
+[4.423394
+0] Tj
+-309 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-310 TJm
+(report.)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.49065
+0] Tj
+-976 TJm
+(No)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-324 TJm
+(it')
+[2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-310 TJm
+(just)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-309 TJm
+(amazing)
+[4.423394
+0
+7.750903
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-309 TJm
+(ho)
+[4.9813
+0
+4.9813
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-310 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+72 413.151 Td
+(people)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(send)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ug)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-250 TJm
+(saying)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(something)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(lik)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(e:)
+[4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 386.087] cm
+0 0 468 23.91 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 401.629 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(crashed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(with)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(segmentation)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(fault)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(on)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(my)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(machine)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 364.169 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-241 TJm
+(absolutely)
+[4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-241 TJm
+(nothing)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-241 TJm
+(el)
+[4.423394
+0
+2.769603
+0] Tj
+1 TJm
+(se.)
+[3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-614 TJm
+(Needless)
+[7.192997
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-241 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-241 TJm
+(say)
+[3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-243 TJm
+(a)
+[4.423394
+0] Tj
+-241 TJm
+(such)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-240 TJm
+(a)
+[4.423394
+0] Tj
+-241 TJm
+(report)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0] Tj
+-241 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+324.681 364.169 Td
+/F496_0 9.9626 Tf
+(totally)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0] Tj
+55 TJm
+(,)
+[2.49065
+0] Tj
+-243 TJm
+(utterly)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0] Tj
+55 TJm
+(,)
+[2.49065
+0] Tj
+-242 TJm
+(completely)
+[4.423394
+0
+4.9813
+0
+7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-241 TJm
+(and)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-241 TJm
+(compr)
+[4.423394
+0
+4.9813
+0
+7.192997
+0
+4.9813
+0
+3.875451
+0] Tj
+37 TJm
+(ehensively)
+[4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-241 TJm
+(100%)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+8.298846
+0] Tj
+72 352.214 Td
+(useless;)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+3.317546
+0] Tj
+-257 TJm
+(a)
+[4.9813
+0] Tj
+-255 TJm
+(waste)
+[6.645054
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0] Tj
+-255 TJm
+(of)
+[4.9813
+0
+2.769603
+0] Tj
+-255 TJm
+(your)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-255 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0] Tj
+10 TJm
+(,)
+[2.49065
+0] Tj
+-256 TJm
+(my)
+[7.192997
+0
+4.423394
+0] Tj
+-255 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.192997
+0
+4.423394
+0] Tj
+10 TJm
+(,)
+[2.49065
+0] Tj
+-256 TJm
+(and)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(net)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-255 TJm
+(bandwidth)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+6.645054
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+302.574 352.214 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-650 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(ith)
+[2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-254 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(details)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-255 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-255 TJm
+(all,)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-256 TJm
+(there')
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-255 TJm
+(no)
+[4.9813
+0
+4.9813
+0] Tj
+-255 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ay)
+[4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(I)
+[3.317546
+0] Tj
+-255 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-255 TJm
+(possibly)
+[4.9813
+0
+4.9813
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-255 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(gin)
+[4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+72 340.259 Td
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(\002gure)
+[5.539206
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-250 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(problem)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(is.)
+[2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 318.341 Td
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-309 TJm
+(rules)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-309 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-309 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-310 TJm
+(g)
+[4.9813
+0] Tj
+5 TJm
+(ame)
+[4.423394
+0
+7.750903
+0
+4.423394
+0] Tj
+-309 TJm
+(are:)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0] Tj
+-428 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acts,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-324 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acts,)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-324 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(acts.)
+[4.423394
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+2.49065
+0] Tj
+-975 TJm
+(Don')
+[7.192997
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-309 TJm
+(omit)
+[4.9813
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0] Tj
+-309 TJm
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-309 TJm
+(because)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-309 TJm
+("oh,)
+[4.064741
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-324 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-309 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(on')
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-309 TJm
+(be)
+[4.9813
+0
+4.423394
+0] Tj
+-310 TJm
+(rele)
+[3.317546
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ant".)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+4.064741
+0
+2.49065
+0] Tj
+-974 TJm
+(At)
+[7.192997
+0
+2.769603
+0] Tj
+-310 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-309 TJm
+(bare)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+72 306.386 Td
+(minimum:)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.949 0.949 0.9765] sc
+/DeviceRGB {} CS
+[0.949 0.949 0.9765] SC
+q
+[1 0 0 1 72 245.514] cm
+0 0 468 59.776 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 296.922 Td
+/F17_0 9.9626 Tf
+(Machine)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(type.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(Operating)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(system)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(version.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 284.967 Td
+(Exact)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(version)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(\(do)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(-V\).)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 273.011 Td
+(Exact)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(version)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compiler)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(used.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 261.056 Td
+(Flags)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(passed)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compiler.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 223.597 Td
+/F15_0 9.9626 Tf
+(Ho)
+[7.192997
+0
+4.9813
+0] Tj
+25 TJm
+(we)
+[7.192997
+0
+4.423394
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(er)
+[4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-254 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-252 TJm
+(most)
+[7.750903
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0] Tj
+-253 TJm
+(important)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-253 TJm
+(single)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-253 TJm
+(thing)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-253 TJm
+(t)
+[2.769603
+0] Tj
+1 TJm
+(hat)
+[4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-253 TJm
+(will)
+[7.192997
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0] Tj
+-253 TJm
+(help)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+-253 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-252 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-253 TJm
+(\002le)
+[5.539206
+0
+2.769603
+0
+4.423394
+0] Tj
+-253 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-253 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-253 TJm
+(were)
+[7.192997
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0] Tj
+-253 TJm
+(trying)
+[2.769603
+0
+3.317546
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-252 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-253 TJm
+(compress)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-253 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-253 TJm
+(decompress)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+72 211.641 Td
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(time)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-304 TJm
+(problem)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0] Tj
+-305 TJm
+(happened.)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+-946 TJm
+(W)
+[9.404694
+0] Tj
+40 TJm
+(ithout)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(that,)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.49065
+0] Tj
+-318 TJm
+(my)
+[7.750903
+0
+4.9813
+0] Tj
+-305 TJm
+(ability)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-304 TJm
+(to)
+[2.769603
+0
+4.9813
+0] Tj
+-304 TJm
+(do)
+[4.9813
+0
+4.9813
+0] Tj
+-305 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(ything)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-304 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-304 TJm
+(than)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-305 TJm
+(speculate)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-304 TJm
+(about)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-305 TJm
+(cause,)
+[4.423394
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-318 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+72 199.686 Td
+(limited.)
+[2.769603
+0
+2.769603
+0
+7.750903
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 164.933 Td
+/F9_0 20.6585 Tf
+(4.4.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Did)
+[14.915437
+0
+5.743063
+0
+12.622344
+0] Tj
+-278 TJm
+(y)
+[11.486126
+0] Tj
+25 TJm
+(ou)
+[12.622344
+0
+12.622344
+0] Tj
+-278 TJm
+(g)
+[12.622344
+0] Tj
+-10 TJm
+(et)
+[11.486126
+0
+6.879281
+0] Tj
+-278 TJm
+(the)
+[6.879281
+0
+12.622344
+0
+11.486126
+0] Tj
+-278 TJm
+(right)
+[8.036157
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0
+6.879281
+0] Tj
+-278 TJm
+(pac)
+[12.622344
+0
+11.486126
+0
+11.486126
+0] Tj
+20 TJm
+(ka)
+[11.486126
+0
+11.486126
+0] Tj
+10 TJm
+(g)
+[12.622344
+0] Tj
+-10 TJm
+(e?)
+[11.486126
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 143.016 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.603 143.016 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-272 TJm
+(a)
+[4.423394
+0] Tj
+-273 TJm
+(resource)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+-272 TJm
+(hog.)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-378 TJm
+(It)
+[3.317546
+0
+2.769603
+0] Tj
+-272 TJm
+(soaks)
+[3.875451
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0] Tj
+-273 TJm
+(up)
+[4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-273 TJm
+(amounts)
+[4.423394
+0
+7.750903
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-272 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-273 TJm
+(CPU)
+[6.645054
+0
+5.539206
+0
+7.192997
+0] Tj
+-272 TJm
+(c)
+[4.423394
+0] Tj
+15 TJm
+(ycles)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-273 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-272 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+-755 TJm
+(Also,)
+[7.192997
+0
+2.769603
+0
+3.875451
+0
+4.9813
+0
+2.49065
+0] Tj
+-278 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-273 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-272 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ery)
+[4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-273 TJm
+(lar)
+[2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+18 TJm
+(ge)
+[4.9813
+0
+4.423394
+0] Tj
+-272 TJm
+(latencies.)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+72 131.06 Td
+(In)
+[3.317546
+0
+4.9813
+0] Tj
+-251 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-251 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(orst)
+[4.9813
+0
+3.317546
+0
+3.875451
+0
+2.769603
+0] Tj
+-251 TJm
+(case,)
+[4.423394
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+2.49065
+0] Tj
+-251 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(can)
+[4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-251 TJm
+(feed)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0] Tj
+-251 TJm
+(man)
+[7.750903
+0
+4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-251 TJm
+(me)
+[7.750903
+0
+4.423394
+0] Tj
+15 TJm
+(g)
+[4.9813
+0] Tj
+4 TJm
+(abyt)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+1 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-252 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-251 TJm
+(uncompressed)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-251 TJm
+(data)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0] Tj
+-251 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-251 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-251 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-251 TJm
+(before)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-251 TJm
+(getting)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-251 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-251 TJm
+(compressed)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+72 119.105 Td
+(output,)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+-250 TJm
+(so)
+[3.875451
+0
+4.9813
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(probably)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(rules)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(out)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-250 TJm
+(applications)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-250 TJm
+(requiring)
+[3.317546
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(interacti)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e)
+[4.423394
+0] Tj
+-250 TJm
+(beha)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+20 TJm
+(viour)
+[4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 97.187 Td
+(These)
+[6.087149
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0] Tj
+-304 TJm
+(aren')
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-304 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aults)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+3.875451
+0] Tj
+-304 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-304 TJm
+(my)
+[7.750903
+0
+4.9813
+0] Tj
+-304 TJm
+(implementation,)
+[2.769603
+0
+7.750903
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-317 TJm
+(I)
+[3.317546
+0] Tj
+-304 TJm
+(hope,)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.49065
+0] Tj
+-318 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(more)
+[7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0] Tj
+-304 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-304 TJm
+(intrinsic)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0] Tj
+-304 TJm
+(property)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0] Tj
+-304 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-304 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-304 TJm
+(Burro)
+[6.645054
+0
+4.9813
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0] Tj
+25 TJm
+(ws-Wheeler)
+[7.192997
+0
+3.875451
+0
+3.317546
+0
+9.404694
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-304 TJm
+(transform)
+[2.769603
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0] Tj
+72 85.232 Td
+(\(unfortunately\).)
+[3.317546
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+2.49065
+0] Tj
+-620 TJm
+(Maybe)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(this)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(isn')
+[2.769603
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-250 TJm
+(what)
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-250 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant.)
+[4.423394
+0
+4.9813
+0
+2.769603
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+(33)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 34 37
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F15_0 9.9626 Tf
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(If)
+[3.317546
+0
+3.317546
+0] Tj
+-275 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ant)
+[4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(a)
+[4.423394
+0] Tj
+-274 TJm
+(compressor)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+-275 TJm
+(and/or)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+-275 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-274 TJm
+(which)
+[7.192997
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0] Tj
+-275 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-274 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-281 TJm
+(uses)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+3.875451
+0] Tj
+-275 TJm
+(less)
+[2.769603
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0] Tj
+-274 TJm
+(memory)
+[7.750903
+0
+4.423394
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.9813
+0] Tj
+-275 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-275 TJm
+(gets)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0] Tj
+-274 TJm
+(pretty)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-275 TJm
+(good)
+[4.9813
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-274 TJm
+(compression,)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+-281 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-275 TJm
+(has)
+[4.9813
+0
+4.423394
+0
+3.875451
+0] Tj
+72 698.082 Td
+(minimal)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0] Tj
+-288 TJm
+(latenc)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-297 TJm
+(consider)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-288 TJm
+(Jean-loup)
+[3.875451
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(Gailly')
+[7.192997
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-288 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(Mark)
+[8.856751
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+-288 TJm
+(Adl)
+[7.192997
+0
+4.9813
+0
+2.769603
+0] Tj
+1 TJm
+(er')
+[4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-288 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+353.879 698.082 Td
+/F17_0 9.9626 Tf
+(zlib-1.2.1)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+416.523 698.082 Td
+/F15_0 9.9626 Tf
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+433.777 698.082 Td
+/F17_0 9.9626 Tf
+(gzip-1.2.4)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+493.553 698.082 Td
+/F15_0 9.9626 Tf
+(.)
+[2.49065
+0] Tj
+-847 TJm
+(Look)
+[6.087149
+0
+4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-288 TJm
+(for)
+[3.317546
+0
+4.9813
+0
+3.317546
+0] Tj
+72 686.127 Td
+(them)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+7.750903
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(http://www)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+65 TJm
+(.zlib)
+[2.49065
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(.or)
+[2.49065
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(g)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(http://www)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+65 TJm
+(.gzip.or)
+[2.49065
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.49065
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(g)
+[4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+-250 TJm
+(respecti)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(ely)
+[4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 664.209 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(or)
+[4.9813
+0
+3.317546
+0] Tj
+-582 TJm
+(something)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-583 TJm
+(f)
+[3.317546
+0] Tj
+10 TJm
+(aster)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-582 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-582 TJm
+(lighter)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0
+3.317546
+0] Tj
+-583 TJm
+(still,)
+[3.875451
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+2.49065
+0] Tj
+-665 TJm
+(you)
+[4.9813
+0
+4.9813
+0
+4.9813
+0] Tj
+-582 TJm
+(might)
+[7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-583 TJm
+(try)
+[2.769603
+0
+3.317546
+0
+4.9813
+0] Tj
+-582 TJm
+(Markus)
+[8.856751
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-582 TJm
+(F)
+[5.539206
+0] Tj
+-582 TJm
+(X)
+[7.192997
+0] Tj
+-582 TJm
+(J)
+[3.875451
+0] Tj
+-582 TJm
+(Oberhumer')
+[7.192997
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+437.433 664.209 Td
+/F17_0 9.9626 Tf
+(LZO)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+461.164 664.209 Td
+/F15_0 9.9626 Tf
+(real-time)
+[3.317546
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+7.750903
+0
+4.423394
+0] Tj
+-582 TJm
+(compres-)
+[4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.317546
+0] Tj
+72 652.254 Td
+(sion/decompression)
+[3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(library)
+[2.769603
+0
+2.769603
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-250 TJm
+(at)
+[4.423394
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 1] sc
+/DeviceRGB {} CS
+[0 0 1] SC
+-250 TJm
+(http://www)
+[4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+7.192997
+0
+7.192997
+0
+7.192997
+0] Tj
+65 TJm
+(.oberhumer)
+[2.49065
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+4.9813
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(.com/opensource)
+[2.49065
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+(.)
+[2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 617.501 Td
+/F9_0 20.6585 Tf
+(4.5.)
+[11.486126
+0
+5.743063
+0
+11.486126
+0
+5.743063
+0] Tj
+-278 TJm
+(Fur)
+[12.622344
+0
+12.622344
+0
+8.036157
+0] Tj
+-20 TJm
+(ther)
+[6.879281
+0
+12.622344
+0
+11.486126
+0
+8.036157
+0] Tj
+-278 TJm
+(Reading)
+[14.915437
+0
+11.486126
+0
+11.486126
+0
+12.622344
+0
+5.743063
+0
+12.622344
+0
+12.622344
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 595.583 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+104.923 595.583 Td
+/F15_0 9.9626 Tf
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-305 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-304 TJm
+(research)
+[3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-305 TJm
+(w)
+[7.192997
+0] Tj
+10 TJm
+(ork,)
+[4.9813
+0
+3.317546
+0
+4.9813
+0
+2.49065
+0] Tj
+-318 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-305 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-304 TJm
+(sense)
+[3.875451
+0
+4.423394
+0
+4.9813
+0
+3.875451
+0
+4.423394
+0] Tj
+-305 TJm
+(that)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-304 TJm
+(it)
+[2.769603
+0
+2.769603
+0] Tj
+-305 TJm
+(doesn')
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+18 TJm
+(t)
+[2.769603
+0] Tj
+-304 TJm
+(present)
+[4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-305 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-305 TJm
+(ne)
+[4.9813
+0
+4.423394
+0] Tj
+25 TJm
+(w)
+[7.192997
+0] Tj
+-304 TJm
+(ideas.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+-474 TJm
+(Rather)
+[6.645054
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+40 TJm
+(,)
+[2.49065
+0] Tj
+-318 TJm
+(it')
+[2.769603
+0
+2.769603
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-305 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+-304 TJm
+(engineering)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-305 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(x)
+[4.9813
+0] Tj
+15 TJm
+(ercise)
+[4.423394
+0
+3.317546
+0
+4.423394
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0] Tj
+72 583.628 Td
+(based)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(on)
+[4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(e)
+[4.423394
+0] Tj
+15 TJm
+(xisting)
+[4.9813
+0
+2.769603
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(ideas.)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 561.71 Td
+(F)
+[5.539206
+0] Tj
+15 TJm
+(our)
+[4.9813
+0
+4.9813
+0
+3.317546
+0] Tj
+-250 TJm
+(documents)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(describe)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(essentially)
+[4.423394
+0
+3.875451
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(all)
+[4.423394
+0
+2.769603
+0
+2.769603
+0] Tj
+-250 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(ideas)
+[2.769603
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0
+3.875451
+0] Tj
+-250 TJm
+(behind)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+298.747 561.71 Td
+/F17_0 9.9626 Tf
+(bzip2)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+328.635 561.71 Td
+/F15_0 9.9626 Tf
+(:)
+[2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 259.678] cm
+0 0 468 298.879 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 550.189 Td
+/F17_0 9.9626 Tf
+(Michael)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Burrows)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(D.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(J.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Wheeler:)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 538.234 Td
+("A)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(block-sorting)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(lossless)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(compression)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(algorithm")
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 526.278 Td
+(10th)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(May)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1994.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 514.323 Td
+(Digital)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(SRC)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Research)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Report)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(124.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 502.368 Td
+(ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.g\
+z)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 490.413 Td
+(If)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(you)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(have)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(trouble)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(finding)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(it,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(try)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(searching)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(at)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 478.458 Td
+(New)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Zealand)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Digital)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Library,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(http://www.nzdl.org.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 454.547 Td
+(Daniel)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(S.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Hirschberg)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Debra)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(A.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(LeLewer)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 442.592 Td
+("Efficient)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Decoding)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Prefix)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Codes")
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 430.637 Td
+(Communications)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ACM,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(April)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1990,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Vol)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(33,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Number)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(4.)
+[5.97756
+0
+5.97756
+0] Tj
+102.732 418.682 Td
+(You)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(might)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(be)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(able)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(to)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(get)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(an)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(electronic)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(copy)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(this)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 406.727 Td
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(ACM)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Digital)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Library.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 382.816 Td
+(David)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(J.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Wheeler)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 370.861 Td
+(Program)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bred3.c)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(accompanying)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(document)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(bred3.ps.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 358.906 Td
+(This)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(contains)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(idea)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(behind)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(multi-table)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Huffman)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(coding)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(scheme.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 346.951 Td
+(ftp://ftp.cl.cam.ac.uk/users/djw3/)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 323.04 Td
+(Jon)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(L.)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Bentley)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Robert)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Sedgewick)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+98.488 311.085 Td
+("Fast)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Algorithms)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(for)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Sorting)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(and)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Searching)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Strings")
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 299.13 Td
+(Available)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(from)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Sedgewick's)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(web)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(page,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 287.175 Td
+(www.cs.princeton.edu/~rs)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 237.76 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-238 TJm
+(paper)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-239 TJm
+(gi)
+[4.9813
+0
+2.769603
+0] Tj
+25 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(es)
+[4.423394
+0
+3.875451
+0] Tj
+-239 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(aluable)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-238 TJm
+(additional)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0] Tj
+-239 TJm
+(insights)
+[2.769603
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.769603
+0
+3.875451
+0] Tj
+-238 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-239 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(algorithm,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-241 TJm
+(b)
+[4.9813
+0] Tj
+20 TJm
+(ut)
+[4.9813
+0
+2.769603
+0] Tj
+-238 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-239 TJm
+(not)
+[4.9813
+0
+4.9813
+0
+2.769603
+0] Tj
+-239 TJm
+(immedia)
+[2.769603
+0
+7.750903
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+1 TJm
+(tely)
+[2.769603
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0] Tj
+-239 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-239 TJm
+(basis)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+2.769603
+0
+3.875451
+0] Tj
+-238 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-239 TJm
+(an)
+[4.423394
+0
+4.9813
+0] Tj
+15 TJm
+(y)
+[4.9813
+0] Tj
+-239 TJm
+(code)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0] Tj
+72 225.805 Td
+(used)
+[4.9813
+0
+3.875451
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(bzip2.)
+[4.9813
+0
+4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+2.49065
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 150.921] cm
+0 0 468 71.731 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 214.283 Td
+/F17_0 9.9626 Tf
+(Peter)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Fenwick:)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 202.328 Td
+(Block)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Sorting)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Text)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Compression)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 190.373 Td
+(Proceedings)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(19th)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Australasian)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Computer)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Science)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Conference,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+111.22 178.418 Td
+(Melbourne,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Australia.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(Jan)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(31)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(-)
+[5.97756
+0] Tj
+-426 TJm
+(Feb)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(2,)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(1996.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 166.463 Td
+(ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 129.003 Td
+/F15_0 9.9626 Tf
+(K)
+[7.192997
+0] Tj
+15 TJm
+(unihik)
+[4.9813
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+10 TJm
+(o)
+[4.9813
+0] Tj
+-250 TJm
+(Sadakane')
+[5.539206
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+55 TJm
+(s)
+[3.875451
+0] Tj
+-250 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(algorithm,)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+2.49065
+0] Tj
+-250 TJm
+(mentioned)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(abo)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+15 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(e,)
+[4.423394
+0
+2.49065
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(from:)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 89.985] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 117.482 Td
+/F17_0 9.9626 Tf
+(http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F15_0 9.9626 Tf
+(34)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Page: 35 38
+%%PageMedia: Letter
+%%PageBoundingBox: 0 0 612 792
+%%PageOrientation: Portrait
+%%BeginPageSetup
+612 792 pdfSetupPaper
+pdfStartPage
+0 0 612 792 re W
+%%EndPageSetup
+[] 0 d
+1 i
+0 j
+0 J
+10 M
+1 w
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+false op
+false OP
+{} settransfer
+q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+498.728 749.245 Td
+/F15_0 9.9626 Tf
+(Miscellanea)
+[8.856751
+0
+2.769603
+0
+3.875451
+0
+4.423394
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+q
+[1 0 0 1 73.893 741.803] cm
+[] 0 d
+0 J
+0.498 w
+0 0 m
+475.465 0 l
+S
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+72 710.037 Td
+/F15_0 9.9626 Tf
+(The)
+[6.087149
+0
+4.9813
+0
+4.423394
+0] Tj
+-250 TJm
+(Manber)
+[8.856751
+0
+4.423394
+0
+4.9813
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+20 TJm
+(-Myers)
+[3.317546
+0
+8.856751
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-250 TJm
+(suf)
+[3.875451
+0
+4.9813
+0
+3.317546
+0] Tj
+25 TJm
+(\002x)
+[5.539206
+0
+4.9813
+0] Tj
+-250 TJm
+(array)
+[4.423394
+0
+3.317546
+0
+3.317546
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(construction)
+[4.423394
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0
+2.769603
+0
+3.317546
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-250 TJm
+(algorithm)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0] Tj
+-250 TJm
+(is)
+[2.769603
+0
+3.875451
+0] Tj
+-250 TJm
+(described)
+[4.9813
+0
+4.423394
+0
+3.875451
+0
+4.423394
+0
+3.317546
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0] Tj
+-250 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+-250 TJm
+(paper)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0] Tj
+-250 TJm
+(a)
+[4.423394
+0] Tj
+20 TJm
+(v)
+[4.9813
+0] Tj
+25 TJm
+(ailable)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0
+4.423394
+0] Tj
+-250 TJm
+(from:)
+[3.317546
+0
+3.317546
+0
+4.9813
+0
+7.750903
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 671.019] cm
+0 0 468 35.866 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 698.516 Td
+/F17_0 9.9626 Tf
+(http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+72 649.101 Td
+/F15_0 9.9626 Tf
+(Finally)
+[5.539206
+0
+2.769603
+0
+4.9813
+0
+4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+65 TJm
+(,)
+[2.49065
+0] Tj
+-227 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-221 TJm
+(follo)
+[3.317546
+0
+4.9813
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+25 TJm
+(wing)
+[7.192997
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(papers)
+[4.9813
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+3.317546
+0
+3.875451
+0] Tj
+-221 TJm
+(document)
+[4.9813
+0
+4.9813
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+2.769603
+0] Tj
+-221 TJm
+(some)
+[3.875451
+0
+4.9813
+0
+7.750903
+0
+4.423394
+0] Tj
+-222 TJm
+(in)
+[2.769603
+0
+4.9813
+0] Tj
+40 TJm
+(v)
+[4.9813
+0] Tj
+15 TJm
+(estig)
+[4.423394
+0
+3.875451
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0] Tj
+5 TJm
+(ations)
+[4.423394
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.875451
+0] Tj
+-221 TJm
+(I)
+[3.317546
+0] Tj
+-221 TJm
+(made)
+[7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0] Tj
+-222 TJm
+(into)
+[2.769603
+0
+4.9813
+0
+2.769603
+0
+4.9813
+0] Tj
+-221 TJm
+(the)
+[2.769603
+0
+4.9813
+0
+4.423394
+0] Tj
+-221 TJm
+(performance)
+[4.9813
+0
+4.423394
+0
+3.317546
+0
+3.317546
+0
+4.9813
+0
+3.317546
+0
+7.750903
+0
+4.423394
+0
+4.9813
+0
+4.423394
+0
+4.423394
+0] Tj
+-222 TJm
+(of)
+[4.9813
+0
+3.317546
+0] Tj
+-221 TJm
+(sorting)
+[3.875451
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+-221 TJm
+(and)
+[4.423394
+0
+4.9813
+0
+4.9813
+0] Tj
+-222 TJm
+(decompression)
+[4.9813
+0
+4.423394
+0
+4.423394
+0
+4.9813
+0
+7.750903
+0
+4.9813
+0
+3.317546
+0
+4.423394
+0
+3.875451
+0
+3.875451
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0] Tj
+72 637.146 Td
+(algorithms:)
+[4.423394
+0
+2.769603
+0
+4.9813
+0
+4.9813
+0
+3.317546
+0
+2.769603
+0
+2.769603
+0
+4.9813
+0
+7.750903
+0
+3.875451
+0
+2.769603
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0.9294 0.9686 0.9568] sc
+/DeviceRGB {} CS
+[0.9294 0.9686 0.9568] SC
+q
+[1 0 0 1 72 502.486] cm
+0 0 468 131.507 re
+f
+Q
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+[1 0 0 1 0 0] Tm
+0 0 Td
+90 625.624 Td
+/F17_0 9.9626 Tf
+(Julian)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Seward)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 613.669 Td
+(On)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Performance)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(BWT)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Sorting)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Algorithms)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 601.714 Td
+(Proceedings)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(IEEE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Compression)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Conference)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(2000)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+111.22 589.759 Td
+(Snowbird,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Utah.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(28-30)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(March)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(2000.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+90 565.848 Td
+(Julian)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Seward)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 553.893 Td
+(Space-time)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Tradeoffs)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(in)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Inverse)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(B-W)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Transform)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+102.732 541.938 Td
+(Proceedings)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(of)
+[5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(the)
+[5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(IEEE)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Data)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Compression)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Conference)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(2001)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+111.22 529.983 Td
+(Snowbird,)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(Utah.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-852 TJm
+(27-29)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(March)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+-426 TJm
+(2001.)
+[5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0
+5.97756
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+534.414 50.951 Td
+/F15_0 9.9626 Tf
+(35)
+[4.9813
+0
+4.9813
+0] Tj
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceRGB {} cs
+[0 0 0] sc
+/DeviceRGB {} CS
+[0 0 0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+/DeviceGray {} cs
+[0] sc
+/DeviceGray {} CS
+[0] SC
+Q
+showpage
+%%PageTrailer
+pdfEndPage
+%%Trailer
+end
+%%DocumentSuppliedResources:
+%%+ font PYRIYB+NimbusSanL-Bold
+%%+ font XDVKOU+NimbusRomNo9L-Regu
+%%+ font QYKIKI+NimbusMonL-Regu
+%%+ font BITXNG+CMMI10
+%%+ font ZWXELK+NimbusMonL-Bold
+%%+ font FRBTTO+CMSY10
+%%+ font AMYDOG+NimbusRomNo9L-ReguItal
+%%EOF
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.xml b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.xml
new file mode 100644
index 000000000..ea9fca2e8
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/manual.xml
@@ -0,0 +1,2964 @@
+<?xml version="1.0"?> <!-- -*- sgml -*- -->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"[
+
+<!-- various strings, dates etc. common to all docs -->
+<!ENTITY % common-ents SYSTEM "entities.xml"> %common-ents;
+]>
+
+<book lang="en" id="userman" xreflabel="bzip2 Manual">
+
+ <bookinfo>
+ <title>bzip2 and libbzip2, version &bz-version;</title>
+ <subtitle>A program and library for data compression</subtitle>
+ <copyright>
+ <year>&bz-lifespan;</year>
+ <holder>Julian Seward</holder>
+ </copyright>
+ <releaseinfo>Version &bz-version; of &bz-date;</releaseinfo>
+
+ <authorgroup>
+ <author>
+ <firstname>Julian</firstname>
+ <surname>Seward</surname>
+ <affiliation>
+ <orgname>&bz-url;</orgname>
+ </affiliation>
+ </author>
+ </authorgroup>
+
+ <legalnotice id="legal">
+
+ <para>This program, <computeroutput>bzip2</computeroutput>, the
+ associated library <computeroutput>libbzip2</computeroutput>, and
+ all documentation, are copyright &copy; &bz-lifespan; Julian Seward.
+ All rights reserved.</para>
+
+ <para>Redistribution and use in source and binary forms, with
+ or without modification, are permitted provided that the
+ following conditions are met:</para>
+
+ <itemizedlist mark='bullet'>
+
+ <listitem><para>Redistributions of source code must retain the
+ above copyright notice, this list of conditions and the
+ following disclaimer.</para></listitem>
+
+ <listitem><para>The origin of this software must not be
+ misrepresented; you must not claim that you wrote the original
+ software. If you use this software in a product, an
+ acknowledgment in the product documentation would be
+ appreciated but is not required.</para></listitem>
+
+ <listitem><para>Altered source versions must be plainly marked
+ as such, and must not be misrepresented as being the original
+ software.</para></listitem>
+
+ <listitem><para>The name of the author may not be used to
+ endorse or promote products derived from this software without
+ specific prior written permission.</para></listitem>
+
+ </itemizedlist>
+
+ <para>THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.</para>
+
+ <para>PATENTS: To the best of my knowledge,
+ <computeroutput>bzip2</computeroutput> and
+ <computeroutput>libbzip2</computeroutput> do not use any patented
+ algorithms. However, I do not have the resources to carry
+ out a patent search. Therefore I cannot give any guarantee of
+ the above statement.
+ </para>
+
+</legalnotice>
+
+</bookinfo>
+
+
+
+<chapter id="intro" xreflabel="Introduction">
+<title>Introduction</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files
+using the Burrows-Wheeler block-sorting text compression
+algorithm, and Huffman coding. Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</para>
+
+<para><computeroutput>bzip2</computeroutput> is built on top of
+<computeroutput>libbzip2</computeroutput>, a flexible library for
+handling compressed data in the
+<computeroutput>bzip2</computeroutput> format. This manual
+describes both how to use the program and how to work with the
+library interface. Most of the manual is devoted to this
+library, not the program, which is good news if your interest is
+only in the program.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><xref linkend="using"/> describes how to use
+ <computeroutput>bzip2</computeroutput>; this is the only part
+ you need to read if you just want to know how to operate the
+ program.</para></listitem>
+
+ <listitem><para><xref linkend="libprog"/> describes the
+ programming interfaces in detail, and</para></listitem>
+
+ <listitem><para><xref linkend="misc"/> records some
+ miscellaneous notes which I thought ought to be recorded
+ somewhere.</para></listitem>
+
+</itemizedlist>
+
+</chapter>
+
+
+<chapter id="using" xreflabel="How to use bzip2">
+<title>How to use bzip2</title>
+
+<para>This chapter contains a copy of the
+<computeroutput>bzip2</computeroutput> man page, and nothing
+else.</para>
+
+<sect1 id="name" xreflabel="NAME">
+<title>NAME</title>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>bzip2</computeroutput>,
+ <computeroutput>bunzip2</computeroutput> - a block-sorting file
+ compressor, v&bz-version;</para></listitem>
+
+ <listitem><para><computeroutput>bzcat</computeroutput> -
+ decompresses files to stdout</para></listitem>
+
+ <listitem><para><computeroutput>bzip2recover</computeroutput> -
+ recovers data from damaged bzip2 files</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
+
+<sect1 id="synopsis" xreflabel="SYNOPSIS">
+<title>SYNOPSIS</title>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>bzip2</computeroutput> [
+ -cdfkqstvzVL123456789 ] [ filenames ... ]</para></listitem>
+
+ <listitem><para><computeroutput>bunzip2</computeroutput> [
+ -fkvsVL ] [ filenames ... ]</para></listitem>
+
+ <listitem><para><computeroutput>bzcat</computeroutput> [ -s ] [
+ filenames ... ]</para></listitem>
+
+ <listitem><para><computeroutput>bzip2recover</computeroutput>
+ filename</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
+
+<sect1 id="description" xreflabel="DESCRIPTION">
+<title>DESCRIPTION</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files
+using the Burrows-Wheeler block sorting text compression
+algorithm, and Huffman coding. Compression is generally
+considerably better than that achieved by more conventional
+LZ77/LZ78-based compressors, and approaches the performance of
+the PPM family of statistical compressors.</para>
+
+<para>The command-line options are deliberately very similar to
+those of GNU <computeroutput>gzip</computeroutput>, but they are
+not identical.</para>
+
+<para><computeroutput>bzip2</computeroutput> expects a list of
+file names to accompany the command-line flags. Each file is
+replaced by a compressed version of itself, with the name
+<computeroutput>original_name.bz2</computeroutput>. Each
+compressed file has the same modification date, permissions, and,
+when possible, ownership as the corresponding original, so that
+these properties can be correctly restored at decompression time.
+File name handling is naive in the sense that there is no
+mechanism for preserving original file names, permissions,
+ownerships or dates in filesystems which lack these concepts, or
+have serious file name length restrictions, such as
+MS-DOS.</para>
+
+<para><computeroutput>bzip2</computeroutput> and
+<computeroutput>bunzip2</computeroutput> will by default not
+overwrite existing files. If you want this to happen, specify
+the <computeroutput>-f</computeroutput> flag.</para>
+
+<para>If no file names are specified,
+<computeroutput>bzip2</computeroutput> compresses from standard
+input to standard output. In this case,
+<computeroutput>bzip2</computeroutput> will decline to write
+compressed output to a terminal, as this would be entirely
+incomprehensible and therefore pointless.</para>
+
+<para><computeroutput>bunzip2</computeroutput> (or
+<computeroutput>bzip2 -d</computeroutput>) decompresses all
+specified files. Files which were not created by
+<computeroutput>bzip2</computeroutput> will be detected and
+ignored, and a warning issued.
+<computeroutput>bzip2</computeroutput> attempts to guess the
+filename for the decompressed file from that of the compressed
+file as follows:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para><computeroutput>filename.bz2 </computeroutput>
+ becomes
+ <computeroutput>filename</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.bz </computeroutput>
+ becomes
+ <computeroutput>filename</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.tbz2</computeroutput>
+ becomes
+ <computeroutput>filename.tar</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>filename.tbz </computeroutput>
+ becomes
+ <computeroutput>filename.tar</computeroutput></para></listitem>
+
+ <listitem><para><computeroutput>anyothername </computeroutput>
+ becomes
+ <computeroutput>anyothername.out</computeroutput></para></listitem>
+
+</itemizedlist>
+
+<para>If the file does not end in one of the recognised endings,
+<computeroutput>.bz2</computeroutput>,
+<computeroutput>.bz</computeroutput>,
+<computeroutput>.tbz2</computeroutput> or
+<computeroutput>.tbz</computeroutput>,
+<computeroutput>bzip2</computeroutput> complains that it cannot
+guess the name of the original file, and uses the original name
+with <computeroutput>.out</computeroutput> appended.</para>
+
+<para>As with compression, supplying no filenames causes
+decompression from standard input to standard output.</para>
+
+<para><computeroutput>bunzip2</computeroutput> will correctly
+decompress a file which is the concatenation of two or more
+compressed files. The result is the concatenation of the
+corresponding uncompressed files. Integrity testing
+(<computeroutput>-t</computeroutput>) of concatenated compressed
+files is also supported.</para>
+
+<para>You can also compress or decompress files to the standard
+output by giving the <computeroutput>-c</computeroutput> flag.
+Multiple files may be compressed and decompressed like this. The
+resulting outputs are fed sequentially to stdout. Compression of
+multiple files in this manner generates a stream containing
+multiple compressed file representations. Such a stream can be
+decompressed correctly only by
+<computeroutput>bzip2</computeroutput> version 0.9.0 or later.
+Earlier versions of <computeroutput>bzip2</computeroutput> will
+stop after decompressing the first file in the stream.</para>
+
+<para><computeroutput>bzcat</computeroutput> (or
+<computeroutput>bzip2 -dc</computeroutput>) decompresses all
+specified files to the standard output.</para>
+
+<para><computeroutput>bzip2</computeroutput> will read arguments
+from the environment variables
+<computeroutput>BZIP2</computeroutput> and
+<computeroutput>BZIP</computeroutput>, in that order, and will
+process them before any arguments read from the command line.
+This gives a convenient way to supply default arguments.</para>
+
+<para>Compression is always performed, even if the compressed
+file is slightly larger than the original. Files of less than
+about one hundred bytes tend to get larger, since the compression
+mechanism has a constant overhead in the region of 50 bytes.
+Random data (including the output of most file compressors) is
+coded at about 8.05 bits per byte, giving an expansion of around
+0.5%.</para>
+
+<para>As a self-check for your protection,
+<computeroutput>bzip2</computeroutput> uses 32-bit CRCs to make
+sure that the decompressed version of a file is identical to the
+original. This guards against corruption of the compressed data,
+and against undetected bugs in
+<computeroutput>bzip2</computeroutput> (hopefully very unlikely).
+The chances of data corruption going undetected is microscopic,
+about one chance in four billion for each file processed. Be
+aware, though, that the check occurs upon decompression, so it
+can only tell you that something is wrong. It can't help you
+recover the original uncompressed data. You can use
+<computeroutput>bzip2recover</computeroutput> to try to recover
+data from damaged files.</para>
+
+<para>Return values: 0 for a normal exit, 1 for environmental
+problems (file not found, invalid flags, I/O errors, etc.), 2
+to indicate a corrupt compressed file, 3 for an internal
+consistency error (eg, bug) which caused
+<computeroutput>bzip2</computeroutput> to panic.</para>
+
+</sect1>
+
+
+<sect1 id="options" xreflabel="OPTIONS">
+<title>OPTIONS</title>
+
+<variablelist>
+
+ <varlistentry>
+ <term><computeroutput>-c --stdout</computeroutput></term>
+ <listitem><para>Compress or decompress to standard
+ output.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-d --decompress</computeroutput></term>
+ <listitem><para>Force decompression.
+ <computeroutput>bzip2</computeroutput>,
+ <computeroutput>bunzip2</computeroutput> and
+ <computeroutput>bzcat</computeroutput> are really the same
+ program, and the decision about what actions to take is done on
+ the basis of which name is used. This flag overrides that
+ mechanism, and forces bzip2 to decompress.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-z --compress</computeroutput></term>
+ <listitem><para>The complement to
+ <computeroutput>-d</computeroutput>: forces compression,
+ regardless of the invokation name.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-t --test</computeroutput></term>
+ <listitem><para>Check integrity of the specified file(s), but
+ don't decompress them. This really performs a trial
+ decompression and throws away the result.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-f --force</computeroutput></term>
+ <listitem><para>Force overwrite of output files. Normally,
+ <computeroutput>bzip2</computeroutput> will not overwrite
+ existing output files. Also forces
+ <computeroutput>bzip2</computeroutput> to break hard links to
+ files, which it otherwise wouldn't do.</para>
+ <para><computeroutput>bzip2</computeroutput> normally declines
+ to decompress files which don't have the correct magic header
+ bytes. If forced (<computeroutput>-f</computeroutput>),
+ however, it will pass such files through unmodified. This is
+ how GNU <computeroutput>gzip</computeroutput> behaves.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-k --keep</computeroutput></term>
+ <listitem><para>Keep (don't delete) input files during
+ compression or decompression.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-s --small</computeroutput></term>
+ <listitem><para>Reduce memory usage, for compression,
+ decompression and testing. Files are decompressed and tested
+ using a modified algorithm which only requires 2.5 bytes per
+ block byte. This means any file can be decompressed in 2300k
+ of memory, albeit at about half the normal speed.</para>
+ <para>During compression, <computeroutput>-s</computeroutput>
+ selects a block size of 200k, which limits memory use to around
+ the same figure, at the expense of your compression ratio. In
+ short, if your machine is low on memory (8 megabytes or less),
+ use <computeroutput>-s</computeroutput> for everything. See
+ <xref linkend="memory-management"/> below.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-q --quiet</computeroutput></term>
+ <listitem><para>Suppress non-essential warning messages.
+ Messages pertaining to I/O errors and other critical events
+ will not be suppressed.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-v --verbose</computeroutput></term>
+ <listitem><para>Verbose mode -- show the compression ratio for
+ each file processed. Further
+ <computeroutput>-v</computeroutput>'s increase the verbosity
+ level, spewing out lots of information which is primarily of
+ interest for diagnostic purposes.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-L --license -V --version</computeroutput></term>
+ <listitem><para>Display the software version, license terms and
+ conditions.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>-1</computeroutput> (or
+ <computeroutput>--fast</computeroutput>) to
+ <computeroutput>-9</computeroutput> (or
+ <computeroutput>-best</computeroutput>)</term>
+ <listitem><para>Set the block size to 100 k, 200 k ... 900 k
+ when compressing. Has no effect when decompressing. See <xref
+ linkend="memory-management" /> below. The
+ <computeroutput>--fast</computeroutput> and
+ <computeroutput>--best</computeroutput> aliases are primarily
+ for GNU <computeroutput>gzip</computeroutput> compatibility.
+ In particular, <computeroutput>--fast</computeroutput> doesn't
+ make things significantly faster. And
+ <computeroutput>--best</computeroutput> merely selects the
+ default behaviour.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>--</computeroutput></term>
+ <listitem><para>Treats all subsequent arguments as file names,
+ even if they start with a dash. This is so you can handle
+ files with names beginning with a dash, for example:
+ <computeroutput>bzip2 --
+ -myfilename</computeroutput>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>--repetitive-fast</computeroutput></term>
+ <term><computeroutput>--repetitive-best</computeroutput></term>
+ <listitem><para>These flags are redundant in versions 0.9.5 and
+ above. They provided some coarse control over the behaviour of
+ the sorting algorithm in earlier versions, which was sometimes
+ useful. 0.9.5 and above have an improved algorithm which
+ renders these flags irrelevant.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+</sect1>
+
+
+<sect1 id="memory-management" xreflabel="MEMORY MANAGEMENT">
+<title>MEMORY MANAGEMENT</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses large
+files in blocks. The block size affects both the compression
+ratio achieved, and the amount of memory needed for compression
+and decompression. The flags <computeroutput>-1</computeroutput>
+through <computeroutput>-9</computeroutput> specify the block
+size to be 100,000 bytes through 900,000 bytes (the default)
+respectively. At decompression time, the block size used for
+compression is read from the header of the compressed file, and
+<computeroutput>bunzip2</computeroutput> then allocates itself
+just enough memory to decompress the file. Since block sizes are
+stored in compressed files, it follows that the flags
+<computeroutput>-1</computeroutput> to
+<computeroutput>-9</computeroutput> are irrelevant to and so
+ignored during decompression.</para>
+
+<para>Compression and decompression requirements, in bytes, can be
+estimated as:</para>
+<programlisting>
+Compression: 400k + ( 8 x block size )
+
+Decompression: 100k + ( 4 x block size ), or
+ 100k + ( 2.5 x block size )
+</programlisting>
+
+<para>Larger block sizes give rapidly diminishing marginal
+returns. Most of the compression comes from the first two or
+three hundred k of block size, a fact worth bearing in mind when
+using <computeroutput>bzip2</computeroutput> on small machines.
+It is also important to appreciate that the decompression memory
+requirement is set at compression time by the choice of block
+size.</para>
+
+<para>For files compressed with the default 900k block size,
+<computeroutput>bunzip2</computeroutput> will require about 3700
+kbytes to decompress. To support decompression of any file on a
+4 megabyte machine, <computeroutput>bunzip2</computeroutput> has
+an option to decompress using approximately half this amount of
+memory, about 2300 kbytes. Decompression speed is also halved,
+so you should use this option only where necessary. The relevant
+flag is <computeroutput>-s</computeroutput>.</para>
+
+<para>In general, try and use the largest block size memory
+constraints allow, since that maximises the compression achieved.
+Compression and decompression speed are virtually unaffected by
+block size.</para>
+
+<para>Another significant point applies to files which fit in a
+single block -- that means most files you'd encounter using a
+large block size. The amount of real memory touched is
+proportional to the size of the file, since the file is smaller
+than a block. For example, compressing a file 20,000 bytes long
+with the flag <computeroutput>-9</computeroutput> will cause the
+compressor to allocate around 7600k of memory, but only touch
+400k + 20000 * 8 = 560 kbytes of it. Similarly, the decompressor
+will allocate 3700k but only touch 100k + 20000 * 4 = 180
+kbytes.</para>
+
+<para>Here is a table which summarises the maximum memory usage
+for different block sizes. Also recorded is the total compressed
+size for 14 files of the Calgary Text Compression Corpus
+totalling 3,141,622 bytes. This column gives some feel for how
+compression varies with block size. These figures tend to
+understate the advantage of larger block sizes for larger files,
+since the Corpus is dominated by smaller files.</para>
+
+<programlisting>
+ Compress Decompress Decompress Corpus
+Flag usage usage -s usage Size
+
+ -1 1200k 500k 350k 914704
+ -2 2000k 900k 600k 877703
+ -3 2800k 1300k 850k 860338
+ -4 3600k 1700k 1100k 846899
+ -5 4400k 2100k 1350k 845160
+ -6 5200k 2500k 1600k 838626
+ -7 6100k 2900k 1850k 834096
+ -8 6800k 3300k 2100k 828642
+ -9 7600k 3700k 2350k 828642
+</programlisting>
+
+</sect1>
+
+
+<sect1 id="recovering" xreflabel="RECOVERING DATA FROM DAMAGED FILES">
+<title>RECOVERING DATA FROM DAMAGED FILES</title>
+
+<para><computeroutput>bzip2</computeroutput> compresses files in
+blocks, usually 900kbytes long. Each block is handled
+independently. If a media or transmission error causes a
+multi-block <computeroutput>.bz2</computeroutput> file to become
+damaged, it may be possible to recover data from the undamaged
+blocks in the file.</para>
+
+<para>The compressed representation of each block is delimited by
+a 48-bit pattern, which makes it possible to find the block
+boundaries with reasonable certainty. Each block also carries
+its own 32-bit CRC, so damaged blocks can be distinguished from
+undamaged ones.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> is a simple
+program whose purpose is to search for blocks in
+<computeroutput>.bz2</computeroutput> files, and write each block
+out into its own <computeroutput>.bz2</computeroutput> file. You
+can then use <computeroutput>bzip2 -t</computeroutput> to test
+the integrity of the resulting files, and decompress those which
+are undamaged.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> takes a
+single argument, the name of the damaged file, and writes a
+number of files <computeroutput>rec0001file.bz2</computeroutput>,
+<computeroutput>rec0002file.bz2</computeroutput>, etc, containing
+the extracted blocks. The output filenames are designed so that
+the use of wildcards in subsequent processing -- for example,
+<computeroutput>bzip2 -dc rec*file.bz2 &#62;
+recovered_data</computeroutput> -- lists the files in the correct
+order.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> should be of
+most use dealing with large <computeroutput>.bz2</computeroutput>
+files, as these will contain many blocks. It is clearly futile
+to use it on damaged single-block files, since a damaged block
+cannot be recovered. If you wish to minimise any potential data
+loss through media or transmission errors, you might consider
+compressing with a smaller block size.</para>
+
+</sect1>
+
+
+<sect1 id="performance" xreflabel="PERFORMANCE NOTES">
+<title>PERFORMANCE NOTES</title>
+
+<para>The sorting phase of compression gathers together similar
+strings in the file. Because of this, files containing very long
+runs of repeated symbols, like "aabaabaabaab ..." (repeated
+several hundred times) may compress more slowly than normal.
+Versions 0.9.5 and above fare much better than previous versions
+in this respect. The ratio between worst-case and average-case
+compression time is in the region of 10:1. For previous
+versions, this figure was more like 100:1. You can use the
+<computeroutput>-vvvv</computeroutput> option to monitor progress
+in great detail, if you want.</para>
+
+<para>Decompression speed is unaffected by these
+phenomena.</para>
+
+<para><computeroutput>bzip2</computeroutput> usually allocates
+several megabytes of memory to operate in, and then charges all
+over it in a fairly random fashion. This means that performance,
+both for compressing and decompressing, is largely determined by
+the speed at which your machine can service cache misses.
+Because of this, small changes to the code to reduce the miss
+rate have been observed to give disproportionately large
+performance improvements. I imagine
+<computeroutput>bzip2</computeroutput> will perform best on
+machines with very large caches.</para>
+
+</sect1>
+
+
+
+<sect1 id="caveats" xreflabel="CAVEATS">
+<title>CAVEATS</title>
+
+<para>I/O error messages are not as helpful as they could be.
+<computeroutput>bzip2</computeroutput> tries hard to detect I/O
+errors and exit cleanly, but the details of what the problem is
+sometimes seem rather misleading.</para>
+
+<para>This manual page pertains to version &bz-version; of
+<computeroutput>bzip2</computeroutput>. Compressed data created by
+this version is entirely forwards and backwards compatible with the
+previous public releases, versions 0.1pl2, 0.9.0 and 0.9.5, 1.0.0,
+1.0.1, 1.0.2 and 1.0.3, but with the following exception: 0.9.0 and
+above can correctly decompress multiple concatenated compressed files.
+0.1pl2 cannot do this; it will stop after decompressing just the first
+file in the stream.</para>
+
+<para><computeroutput>bzip2recover</computeroutput> versions
+prior to 1.0.2 used 32-bit integers to represent bit positions in
+compressed files, so it could not handle compressed files more
+than 512 megabytes long. Versions 1.0.2 and above use 64-bit ints
+on some platforms which support them (GNU supported targets, and
+Windows). To establish whether or not
+<computeroutput>bzip2recover</computeroutput> was built with such
+a limitation, run it without arguments. In any event you can
+build yourself an unlimited version if you can recompile it with
+<computeroutput>MaybeUInt64</computeroutput> set to be an
+unsigned 64-bit integer.</para>
+
+</sect1>
+
+
+
+<sect1 id="author" xreflabel="AUTHOR">
+<title>AUTHOR</title>
+
+<para>Julian Seward,
+<computeroutput>&bz-author;</computeroutput></para>
+
+<para>The ideas embodied in
+<computeroutput>bzip2</computeroutput> are due to (at least) the
+following people: Michael Burrows and David Wheeler (for the
+block sorting transformation), David Wheeler (again, for the
+Huffman coder), Peter Fenwick (for the structured coding model in
+the original <computeroutput>bzip</computeroutput>, and many
+refinements), and Alistair Moffat, Radford Neal and Ian Witten
+(for the arithmetic coder in the original
+<computeroutput>bzip</computeroutput>). I am much indebted for
+their help, support and advice. See the manual in the source
+distribution for pointers to sources of documentation. Christian
+von Roques encouraged me to look for faster sorting algorithms,
+so as to speed up compression. Bela Lubkin encouraged me to
+improve the worst-case compression performance.
+Donna Robinson XMLised the documentation.
+Many people sent
+patches, helped with portability problems, lent machines, gave
+advice and were generally helpful.</para>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="libprog" xreflabel="Programming with libbzip2">
+<title>
+Programming with <computeroutput>libbzip2</computeroutput>
+</title>
+
+<para>This chapter describes the programming interface to
+<computeroutput>libbzip2</computeroutput>.</para>
+
+<para>For general background information, particularly about
+memory use and performance aspects, you'd be well advised to read
+<xref linkend="using"/> as well.</para>
+
+
+<sect1 id="top-level" xreflabel="Top-level structure">
+<title>Top-level structure</title>
+
+<para><computeroutput>libbzip2</computeroutput> is a flexible
+library for compressing and decompressing data in the
+<computeroutput>bzip2</computeroutput> data format. Although
+packaged as a single entity, it helps to regard the library as
+three separate parts: the low level interface, and the high level
+interface, and some utility functions.</para>
+
+<para>The structure of
+<computeroutput>libbzip2</computeroutput>'s interfaces is similar
+to that of Jean-loup Gailly's and Mark Adler's excellent
+<computeroutput>zlib</computeroutput> library.</para>
+
+<para>All externally visible symbols have names beginning
+<computeroutput>BZ2_</computeroutput>. This is new in version
+1.0. The intention is to minimise pollution of the namespaces of
+library clients.</para>
+
+<para>To use any part of the library, you need to
+<computeroutput>#include &lt;bzlib.h&gt;</computeroutput>
+into your sources.</para>
+
+
+
+<sect2 id="ll-summary" xreflabel="Low-level summary">
+<title>Low-level summary</title>
+
+<para>This interface provides services for compressing and
+decompressing data in memory. There's no provision for dealing
+with files, streams or any other I/O mechanisms, just straight
+memory-to-memory work. In fact, this part of the library can be
+compiled without inclusion of
+<computeroutput>stdio.h</computeroutput>, which may be helpful
+for embedded applications.</para>
+
+<para>The low-level part of the library has no global variables
+and is therefore thread-safe.</para>
+
+<para>Six routines make up the low level interface:
+<computeroutput>BZ2_bzCompressInit</computeroutput>,
+<computeroutput>BZ2_bzCompress</computeroutput>, and
+<computeroutput>BZ2_bzCompressEnd</computeroutput> for
+compression, and a corresponding trio
+<computeroutput>BZ2_bzDecompressInit</computeroutput>,
+<computeroutput>BZ2_bzDecompress</computeroutput> and
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> for
+decompression. The <computeroutput>*Init</computeroutput>
+functions allocate memory for compression/decompression and do
+other initialisations, whilst the
+<computeroutput>*End</computeroutput> functions close down
+operations and release memory.</para>
+
+<para>The real work is done by
+<computeroutput>BZ2_bzCompress</computeroutput> and
+<computeroutput>BZ2_bzDecompress</computeroutput>. These
+compress and decompress data from a user-supplied input buffer to
+a user-supplied output buffer. These buffers can be any size;
+arbitrary quantities of data are handled by making repeated calls
+to these functions. This is a flexible mechanism allowing a
+consumer-pull style of activity, or producer-push, or a mixture
+of both.</para>
+
+</sect2>
+
+
+<sect2 id="hl-summary" xreflabel="High-level summary">
+<title>High-level summary</title>
+
+<para>This interface provides some handy wrappers around the
+low-level interface to facilitate reading and writing
+<computeroutput>bzip2</computeroutput> format files
+(<computeroutput>.bz2</computeroutput> files). The routines
+provide hooks to facilitate reading files in which the
+<computeroutput>bzip2</computeroutput> data stream is embedded
+within some larger-scale file structure, or where there are
+multiple <computeroutput>bzip2</computeroutput> data streams
+concatenated end-to-end.</para>
+
+<para>For reading files,
+<computeroutput>BZ2_bzReadOpen</computeroutput>,
+<computeroutput>BZ2_bzRead</computeroutput>,
+<computeroutput>BZ2_bzReadClose</computeroutput> and
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> are
+supplied. For writing files,
+<computeroutput>BZ2_bzWriteOpen</computeroutput>,
+<computeroutput>BZ2_bzWrite</computeroutput> and
+<computeroutput>BZ2_bzWriteFinish</computeroutput> are
+available.</para>
+
+<para>As with the low-level library, no global variables are used
+so the library is per se thread-safe. However, if I/O errors
+occur whilst reading or writing the underlying compressed files,
+you may have to consult <computeroutput>errno</computeroutput> to
+determine the cause of the error. In that case, you'd need a C
+library which correctly supports
+<computeroutput>errno</computeroutput> in a multithreaded
+environment.</para>
+
+<para>To make the library a little simpler and more portable,
+<computeroutput>BZ2_bzReadOpen</computeroutput> and
+<computeroutput>BZ2_bzWriteOpen</computeroutput> require you to
+pass them file handles (<computeroutput>FILE*</computeroutput>s)
+which have previously been opened for reading or writing
+respectively. That avoids portability problems associated with
+file operations and file attributes, whilst not being much of an
+imposition on the programmer.</para>
+
+</sect2>
+
+
+<sect2 id="util-fns-summary" xreflabel="Utility functions summary">
+<title>Utility functions summary</title>
+
+<para>For very simple needs,
+<computeroutput>BZ2_bzBuffToBuffCompress</computeroutput> and
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> are
+provided. These compress data in memory from one buffer to
+another buffer in a single function call. You should assess
+whether these functions fulfill your memory-to-memory
+compression/decompression requirements before investing effort in
+understanding the more general but more complex low-level
+interface.</para>
+
+<para>Yoshioka Tsuneo
+(<computeroutput>tsuneo@rr.iij4u.or.jp</computeroutput>) has
+contributed some functions to give better
+<computeroutput>zlib</computeroutput> compatibility. These
+functions are <computeroutput>BZ2_bzopen</computeroutput>,
+<computeroutput>BZ2_bzread</computeroutput>,
+<computeroutput>BZ2_bzwrite</computeroutput>,
+<computeroutput>BZ2_bzflush</computeroutput>,
+<computeroutput>BZ2_bzclose</computeroutput>,
+<computeroutput>BZ2_bzerror</computeroutput> and
+<computeroutput>BZ2_bzlibVersion</computeroutput>. You may find
+these functions more convenient for simple file reading and
+writing, than those in the high-level interface. These functions
+are not (yet) officially part of the library, and are minimally
+documented here. If they break, you get to keep all the pieces.
+I hope to document them properly when time permits.</para>
+
+<para>Yoshioka also contributed modifications to allow the
+library to be built as a Windows DLL.</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="err-handling" xreflabel="Error handling">
+<title>Error handling</title>
+
+<para>The library is designed to recover cleanly in all
+situations, including the worst-case situation of decompressing
+random data. I'm not 100% sure that it can always do this, so
+you might want to add a signal handler to catch segmentation
+violations during decompression if you are feeling especially
+paranoid. I would be interested in hearing more about the
+robustness of the library to corrupted compressed data.</para>
+
+<para>Version 1.0.3 more robust in this respect than any
+previous version. Investigations with Valgrind (a tool for detecting
+problems with memory management) indicate
+that, at least for the few files I tested, all single-bit errors
+in the decompressed data are caught properly, with no
+segmentation faults, no uses of uninitialised data, no out of
+range reads or writes, and no infinite looping in the decompressor.
+So it's certainly pretty robust, although
+I wouldn't claim it to be totally bombproof.</para>
+
+<para>The file <computeroutput>bzlib.h</computeroutput> contains
+all definitions needed to use the library. In particular, you
+should definitely not include
+<computeroutput>bzlib_private.h</computeroutput>.</para>
+
+<para>In <computeroutput>bzlib.h</computeroutput>, the various
+return values are defined. The following list is not intended as
+an exhaustive description of the circumstances in which a given
+value may be returned -- those descriptions are given later.
+Rather, it is intended to convey the rough meaning of each return
+value. The first five actions are normal and not intended to
+denote an error situation.</para>
+
+<variablelist>
+
+ <varlistentry>
+ <term><computeroutput>BZ_OK</computeroutput></term>
+ <listitem><para>The requested action was completed
+ successfully.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_RUN_OK, BZ_FLUSH_OK,
+ BZ_FINISH_OK</computeroutput></term>
+ <listitem><para>In
+ <computeroutput>BZ2_bzCompress</computeroutput>, the requested
+ flush/finish/nothing-special action was completed
+ successfully.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_STREAM_END</computeroutput></term>
+ <listitem><para>Compression of data was completed, or the
+ logical stream end was detected during
+ decompression.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+<para>The following return values indicate an error of some
+kind.</para>
+
+<variablelist>
+
+ <varlistentry>
+ <term><computeroutput>BZ_CONFIG_ERROR</computeroutput></term>
+ <listitem><para>Indicates that the library has been improperly
+ compiled on your platform -- a major configuration error.
+ Specifically, it means that
+ <computeroutput>sizeof(char)</computeroutput>,
+ <computeroutput>sizeof(short)</computeroutput> and
+ <computeroutput>sizeof(int)</computeroutput> are not 1, 2 and
+ 4 respectively, as they should be. Note that the library
+ should still work properly on 64-bit platforms which follow
+ the LP64 programming model -- that is, where
+ <computeroutput>sizeof(long)</computeroutput> and
+ <computeroutput>sizeof(void*)</computeroutput> are 8. Under
+ LP64, <computeroutput>sizeof(int)</computeroutput> is still 4,
+ so <computeroutput>libbzip2</computeroutput>, which doesn't
+ use the <computeroutput>long</computeroutput> type, is
+ OK.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_SEQUENCE_ERROR</computeroutput></term>
+ <listitem><para>When using the library, it is important to call
+ the functions in the correct sequence and with data structures
+ (buffers etc) in the correct states.
+ <computeroutput>libbzip2</computeroutput> checks as much as it
+ can to ensure this is happening, and returns
+ <computeroutput>BZ_SEQUENCE_ERROR</computeroutput> if not.
+ Code which complies precisely with the function semantics, as
+ detailed below, should never receive this value; such an event
+ denotes buggy code which you should
+ investigate.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_PARAM_ERROR</computeroutput></term>
+ <listitem><para>Returned when a parameter to a function call is
+ out of range or otherwise manifestly incorrect. As with
+ <computeroutput>BZ_SEQUENCE_ERROR</computeroutput>, this
+ denotes a bug in the client code. The distinction between
+ <computeroutput>BZ_PARAM_ERROR</computeroutput> and
+ <computeroutput>BZ_SEQUENCE_ERROR</computeroutput> is a bit
+ hazy, but still worth making.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_MEM_ERROR</computeroutput></term>
+ <listitem><para>Returned when a request to allocate memory
+ failed. Note that the quantity of memory needed to decompress
+ a stream cannot be determined until the stream's header has
+ been read. So
+ <computeroutput>BZ2_bzDecompress</computeroutput> and
+ <computeroutput>BZ2_bzRead</computeroutput> may return
+ <computeroutput>BZ_MEM_ERROR</computeroutput> even though some
+ of the compressed data has been read. The same is not true
+ for compression; once
+ <computeroutput>BZ2_bzCompressInit</computeroutput> or
+ <computeroutput>BZ2_bzWriteOpen</computeroutput> have
+ successfully completed,
+ <computeroutput>BZ_MEM_ERROR</computeroutput> cannot
+ occur.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_DATA_ERROR</computeroutput></term>
+ <listitem><para>Returned when a data integrity error is
+ detected during decompression. Most importantly, this means
+ when stored and computed CRCs for the data do not match. This
+ value is also returned upon detection of any other anomaly in
+ the compressed data.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_DATA_ERROR_MAGIC</computeroutput></term>
+ <listitem><para>As a special case of
+ <computeroutput>BZ_DATA_ERROR</computeroutput>, it is
+ sometimes useful to know when the compressed stream does not
+ start with the correct magic bytes (<computeroutput>'B' 'Z'
+ 'h'</computeroutput>).</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_IO_ERROR</computeroutput></term>
+ <listitem><para>Returned by
+ <computeroutput>BZ2_bzRead</computeroutput> and
+ <computeroutput>BZ2_bzWrite</computeroutput> when there is an
+ error reading or writing in the compressed file, and by
+ <computeroutput>BZ2_bzReadOpen</computeroutput> and
+ <computeroutput>BZ2_bzWriteOpen</computeroutput> for attempts
+ to use a file for which the error indicator (viz,
+ <computeroutput>ferror(f)</computeroutput>) is set. On
+ receipt of <computeroutput>BZ_IO_ERROR</computeroutput>, the
+ caller should consult <computeroutput>errno</computeroutput>
+ and/or <computeroutput>perror</computeroutput> to acquire
+ operating-system specific information about the
+ problem.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_UNEXPECTED_EOF</computeroutput></term>
+ <listitem><para>Returned by
+ <computeroutput>BZ2_bzRead</computeroutput> when the
+ compressed file finishes before the logical end of stream is
+ detected.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>BZ_OUTBUFF_FULL</computeroutput></term>
+ <listitem><para>Returned by
+ <computeroutput>BZ2_bzBuffToBuffCompress</computeroutput> and
+ <computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> to
+ indicate that the output data will not fit into the output
+ buffer provided.</para></listitem>
+ </varlistentry>
+
+</variablelist>
+
+</sect1>
+
+
+
+<sect1 id="low-level" xreflabel=">Low-level interface">
+<title>Low-level interface</title>
+
+
+<sect2 id="bzcompress-init" xreflabel="BZ2_bzCompressInit">
+<title>BZ2_bzCompressInit</title>
+
+<programlisting>
+typedef struct {
+ char *next_in;
+ unsigned int avail_in;
+ unsigned int total_in_lo32;
+ unsigned int total_in_hi32;
+
+ char *next_out;
+ unsigned int avail_out;
+ unsigned int total_out_lo32;
+ unsigned int total_out_hi32;
+
+ void *state;
+
+ void *(*bzalloc)(void *,int,int);
+ void (*bzfree)(void *,void *);
+ void *opaque;
+} bz_stream;
+
+int BZ2_bzCompressInit ( bz_stream *strm,
+ int blockSize100k,
+ int verbosity,
+ int workFactor );
+</programlisting>
+
+<para>Prepares for compression. The
+<computeroutput>bz_stream</computeroutput> structure holds all
+data pertaining to the compression activity. A
+<computeroutput>bz_stream</computeroutput> structure should be
+allocated and initialised prior to the call. The fields of
+<computeroutput>bz_stream</computeroutput> comprise the entirety
+of the user-visible data. <computeroutput>state</computeroutput>
+is a pointer to the private data structures required for
+compression.</para>
+
+<para>Custom memory allocators are supported, via fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput>, and
+<computeroutput>opaque</computeroutput>. The value
+<computeroutput>opaque</computeroutput> is passed to as the first
+argument to all calls to <computeroutput>bzalloc</computeroutput>
+and <computeroutput>bzfree</computeroutput>, but is otherwise
+ignored by the library. The call <computeroutput>bzalloc (
+opaque, n, m )</computeroutput> is expected to return a pointer
+<computeroutput>p</computeroutput> to <computeroutput>n *
+m</computeroutput> bytes of memory, and <computeroutput>bzfree (
+opaque, p )</computeroutput> should free that memory.</para>
+
+<para>If you don't want to use a custom memory allocator, set
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> to
+<computeroutput>NULL</computeroutput>, and the library will then
+use the standard <computeroutput>malloc</computeroutput> /
+<computeroutput>free</computeroutput> routines.</para>
+
+<para>Before calling
+<computeroutput>BZ2_bzCompressInit</computeroutput>, fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> should be filled
+appropriately, as just described. Upon return, the internal
+state will have been allocated and initialised, and
+<computeroutput>total_in_lo32</computeroutput>,
+<computeroutput>total_in_hi32</computeroutput>,
+<computeroutput>total_out_lo32</computeroutput> and
+<computeroutput>total_out_hi32</computeroutput> will have been
+set to zero. These four fields are used by the library to inform
+the caller of the total amount of data passed into and out of the
+library, respectively. You should not try to change them. As of
+version 1.0, 64-bit counts are maintained, even on 32-bit
+platforms, using the <computeroutput>_hi32</computeroutput>
+fields to store the upper 32 bits of the count. So, for example,
+the total amount of data in is <computeroutput>(total_in_hi32
+&#60;&#60; 32) + total_in_lo32</computeroutput>.</para>
+
+<para>Parameter <computeroutput>blockSize100k</computeroutput>
+specifies the block size to be used for compression. It should
+be a value between 1 and 9 inclusive, and the actual block size
+used is 100000 x this figure. 9 gives the best compression but
+takes most memory.</para>
+
+<para>Parameter <computeroutput>verbosity</computeroutput> should
+be set to a number between 0 and 4 inclusive. 0 is silent, and
+greater numbers give increasingly verbose monitoring/debugging
+output. If the library has been compiled with
+<computeroutput>-DBZ_NO_STDIO</computeroutput>, no such output
+will appear for any verbosity setting.</para>
+
+<para>Parameter <computeroutput>workFactor</computeroutput>
+controls how the compression phase behaves when presented with
+worst case, highly repetitive, input data. If compression runs
+into difficulties caused by repetitive data, the library switches
+from the standard sorting algorithm to a fallback algorithm. The
+fallback is slower than the standard algorithm by perhaps a
+factor of three, but always behaves reasonably, no matter how bad
+the input.</para>
+
+<para>Lower values of <computeroutput>workFactor</computeroutput>
+reduce the amount of effort the standard algorithm will expend
+before resorting to the fallback. You should set this parameter
+carefully; too low, and many inputs will be handled by the
+fallback algorithm and so compress rather slowly, too high, and
+your average-to-worst case compression times can become very
+large. The default value of 30 gives reasonable behaviour over a
+wide range of circumstances.</para>
+
+<para>Allowable values range from 0 to 250 inclusive. 0 is a
+special case, equivalent to using the default value of 30.</para>
+
+<para>Note that the compressed output generated is the same
+regardless of whether or not the fallback algorithm is
+used.</para>
+
+<para>Be aware also that this parameter may disappear entirely in
+future versions of the library. In principle it should be
+possible to devise a good way to automatically choose which
+algorithm to use. Such a mechanism would render the parameter
+obsolete.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if strm is NULL
+ or blockSize < 1 or blockSize > 9
+ or verbosity < 0 or verbosity > 4
+ or workFactor < 0 or workFactor > 250
+BZ_MEM_ERROR
+ if not enough memory is available
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzCompress
+ if BZ_OK is returned
+ no specific action needed in case of error
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzCompress" xreflabel="BZ2_bzCompress">
+<title>BZ2_bzCompress</title>
+
+<programlisting>
+int BZ2_bzCompress ( bz_stream *strm, int action );
+</programlisting>
+
+<para>Provides more input and/or output buffer space for the
+library. The caller maintains input and output buffers, and
+calls <computeroutput>BZ2_bzCompress</computeroutput> to transfer
+data between them.</para>
+
+<para>Before each call to
+<computeroutput>BZ2_bzCompress</computeroutput>,
+<computeroutput>next_in</computeroutput> should point at the data
+to be compressed, and <computeroutput>avail_in</computeroutput>
+should indicate how many bytes the library may read.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_in</computeroutput>,
+<computeroutput>avail_in</computeroutput> and
+<computeroutput>total_in</computeroutput> to reflect the number
+of bytes it has read.</para>
+
+<para>Similarly, <computeroutput>next_out</computeroutput> should
+point to a buffer in which the compressed data is to be placed,
+with <computeroutput>avail_out</computeroutput> indicating how
+much output space is available.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_out</computeroutput>,
+<computeroutput>avail_out</computeroutput> and
+<computeroutput>total_out</computeroutput> to reflect the number
+of bytes output.</para>
+
+<para>You may provide and remove as little or as much data as you
+like on each call of
+<computeroutput>BZ2_bzCompress</computeroutput>. In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient. You should always
+ensure that at least one byte of output space is available at
+each call.</para>
+
+<para>A second purpose of
+<computeroutput>BZ2_bzCompress</computeroutput> is to request a
+change of mode of the compressed stream.</para>
+
+<para>Conceptually, a compressed stream can be in one of four
+states: IDLE, RUNNING, FLUSHING and FINISHING. Before
+initialisation
+(<computeroutput>BZ2_bzCompressInit</computeroutput>) and after
+termination (<computeroutput>BZ2_bzCompressEnd</computeroutput>),
+a stream is regarded as IDLE.</para>
+
+<para>Upon initialisation
+(<computeroutput>BZ2_bzCompressInit</computeroutput>), the stream
+is placed in the RUNNING state. Subsequent calls to
+<computeroutput>BZ2_bzCompress</computeroutput> should pass
+<computeroutput>BZ_RUN</computeroutput> as the requested action;
+other actions are illegal and will result in
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>.</para>
+
+<para>At some point, the calling program will have provided all
+the input data it wants to. It will then want to finish up -- in
+effect, asking the library to process any data it might have
+buffered internally. In this state,
+<computeroutput>BZ2_bzCompress</computeroutput> will no longer
+attempt to read data from
+<computeroutput>next_in</computeroutput>, but it will want to
+write data to <computeroutput>next_out</computeroutput>. Because
+the output buffer supplied by the user can be arbitrarily small,
+the finishing-up operation cannot necessarily be done with a
+single call of
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<para>Instead, the calling program passes
+<computeroutput>BZ_FINISH</computeroutput> as an action to
+<computeroutput>BZ2_bzCompress</computeroutput>. This changes
+the stream's state to FINISHING. Any remaining input (ie,
+<computeroutput>next_in[0 .. avail_in-1]</computeroutput>) is
+compressed and transferred to the output buffer. To do this,
+<computeroutput>BZ2_bzCompress</computeroutput> must be called
+repeatedly until all the output has been consumed. At that
+point, <computeroutput>BZ2_bzCompress</computeroutput> returns
+<computeroutput>BZ_STREAM_END</computeroutput>, and the stream's
+state is set back to IDLE.
+<computeroutput>BZ2_bzCompressEnd</computeroutput> should then be
+called.</para>
+
+<para>Just to make sure the calling program does not cheat, the
+library makes a note of <computeroutput>avail_in</computeroutput>
+at the time of the first call to
+<computeroutput>BZ2_bzCompress</computeroutput> which has
+<computeroutput>BZ_FINISH</computeroutput> as an action (ie, at
+the time the program has announced its intention to not supply
+any more input). By comparing this value with that of
+<computeroutput>avail_in</computeroutput> over subsequent calls
+to <computeroutput>BZ2_bzCompress</computeroutput>, the library
+can detect any attempts to slip in more data to compress. Any
+calls for which this is detected will return
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>. This
+indicates a programming mistake which should be corrected.</para>
+
+<para>Instead of asking to finish, the calling program may ask
+<computeroutput>BZ2_bzCompress</computeroutput> to take all the
+remaining input, compress it and terminate the current
+(Burrows-Wheeler) compression block. This could be useful for
+error control purposes. The mechanism is analogous to that for
+finishing: call <computeroutput>BZ2_bzCompress</computeroutput>
+with an action of <computeroutput>BZ_FLUSH</computeroutput>,
+remove output data, and persist with the
+<computeroutput>BZ_FLUSH</computeroutput> action until the value
+<computeroutput>BZ_RUN</computeroutput> is returned. As with
+finishing, <computeroutput>BZ2_bzCompress</computeroutput>
+detects any attempt to provide more input data once the flush has
+begun.</para>
+
+<para>Once the flush is complete, the stream returns to the
+normal RUNNING state.</para>
+
+<para>This all sounds pretty complex, but isn't really. Here's a
+table which shows which actions are allowable in each state, what
+action will be taken, what the next state is, and what the
+non-error return values are. Note that you can't explicitly ask
+what state the stream is in, but nor do you need to -- it can be
+inferred from the values returned by
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<programlisting>
+IDLE/any
+ Illegal. IDLE state only exists after BZ2_bzCompressEnd or
+ before BZ2_bzCompressInit.
+ Return value = BZ_SEQUENCE_ERROR
+
+RUNNING/BZ_RUN
+ Compress from next_in to next_out as much as possible.
+ Next state = RUNNING
+ Return value = BZ_RUN_OK
+
+RUNNING/BZ_FLUSH
+ Remember current value of next_in. Compress from next_in
+ to next_out as much as possible, but do not accept any more input.
+ Next state = FLUSHING
+ Return value = BZ_FLUSH_OK
+
+RUNNING/BZ_FINISH
+ Remember current value of next_in. Compress from next_in
+ to next_out as much as possible, but do not accept any more input.
+ Next state = FINISHING
+ Return value = BZ_FINISH_OK
+
+FLUSHING/BZ_FLUSH
+ Compress from next_in to next_out as much as possible,
+ but do not accept any more input.
+ If all the existing input has been used up and all compressed
+ output has been removed
+ Next state = RUNNING; Return value = BZ_RUN_OK
+ else
+ Next state = FLUSHING; Return value = BZ_FLUSH_OK
+
+FLUSHING/other
+ Illegal.
+ Return value = BZ_SEQUENCE_ERROR
+
+FINISHING/BZ_FINISH
+ Compress from next_in to next_out as much as possible,
+ but to not accept any more input.
+ If all the existing input has been used up and all compressed
+ output has been removed
+ Next state = IDLE; Return value = BZ_STREAM_END
+ else
+ Next state = FINISHING; Return value = BZ_FINISH_OK
+
+FINISHING/other
+ Illegal.
+ Return value = BZ_SEQUENCE_ERROR
+</programlisting>
+
+
+<para>That still looks complicated? Well, fair enough. The
+usual sequence of calls for compressing a load of data is:</para>
+
+<orderedlist>
+
+ <listitem><para>Get started with
+ <computeroutput>BZ2_bzCompressInit</computeroutput>.</para></listitem>
+
+ <listitem><para>Shovel data in and shlurp out its compressed form
+ using zero or more calls of
+ <computeroutput>BZ2_bzCompress</computeroutput> with action =
+ <computeroutput>BZ_RUN</computeroutput>.</para></listitem>
+
+ <listitem><para>Finish up. Repeatedly call
+ <computeroutput>BZ2_bzCompress</computeroutput> with action =
+ <computeroutput>BZ_FINISH</computeroutput>, copying out the
+ compressed output, until
+ <computeroutput>BZ_STREAM_END</computeroutput> is
+ returned.</para></listitem> <listitem><para>Close up and go home. Call
+ <computeroutput>BZ2_bzCompressEnd</computeroutput>.</para></listitem>
+
+</orderedlist>
+
+<para>If the data you want to compress fits into your input
+buffer all at once, you can skip the calls of
+<computeroutput>BZ2_bzCompress ( ..., BZ_RUN )</computeroutput>
+and just do the <computeroutput>BZ2_bzCompress ( ..., BZ_FINISH
+)</computeroutput> calls.</para>
+
+<para>All required memory is allocated by
+<computeroutput>BZ2_bzCompressInit</computeroutput>. The
+compression library can accept any data at all (obviously). So
+you shouldn't get any error return values from the
+<computeroutput>BZ2_bzCompress</computeroutput> calls. If you
+do, they will be
+<computeroutput>BZ_SEQUENCE_ERROR</computeroutput>, and indicate
+a bug in your programming.</para>
+
+<para>Trivial other possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if strm is NULL, or strm->s is NULL
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzCompress-end" xreflabel="BZ2_bzCompressEnd">
+<title>BZ2_bzCompressEnd</title>
+
+<programlisting>
+int BZ2_bzCompressEnd ( bz_stream *strm );
+</programlisting>
+
+<para>Releases all memory associated with a compression
+stream.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR if strm is NULL or strm->s is NULL
+BZ_OK otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress-init" xreflabel="BZ2_bzDecompressInit">
+<title>BZ2_bzDecompressInit</title>
+
+<programlisting>
+int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );
+</programlisting>
+
+<para>Prepares for decompression. As with
+<computeroutput>BZ2_bzCompressInit</computeroutput>, a
+<computeroutput>bz_stream</computeroutput> record should be
+allocated and initialised before the call. Fields
+<computeroutput>bzalloc</computeroutput>,
+<computeroutput>bzfree</computeroutput> and
+<computeroutput>opaque</computeroutput> should be set if a custom
+memory allocator is required, or made
+<computeroutput>NULL</computeroutput> for the normal
+<computeroutput>malloc</computeroutput> /
+<computeroutput>free</computeroutput> routines. Upon return, the
+internal state will have been initialised, and
+<computeroutput>total_in</computeroutput> and
+<computeroutput>total_out</computeroutput> will be zero.</para>
+
+<para>For the meaning of parameter
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>If <computeroutput>small</computeroutput> is nonzero, the
+library will use an alternative decompression algorithm which
+uses less memory but at the cost of decompressing more slowly
+(roughly speaking, half the speed, but the maximum memory
+requirement drops to around 2300k). See <xref linkend="using"/>
+for more information on memory management.</para>
+
+<para>Note that the amount of memory needed to decompress a
+stream cannot be determined until the stream's header has been
+read, so even if
+<computeroutput>BZ2_bzDecompressInit</computeroutput> succeeds, a
+subsequent <computeroutput>BZ2_bzDecompress</computeroutput>
+could fail with
+<computeroutput>BZ_MEM_ERROR</computeroutput>.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if ( small != 0 && small != 1 )
+ or (verbosity <; 0 || verbosity > 4)
+BZ_MEM_ERROR
+ if insufficient memory is available
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzDecompress
+ if BZ_OK was returned
+ no specific action required in case of error
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress" xreflabel="BZ2_bzDecompress">
+<title>BZ2_bzDecompress</title>
+
+<programlisting>
+int BZ2_bzDecompress ( bz_stream *strm );
+</programlisting>
+
+<para>Provides more input and/out output buffer space for the
+library. The caller maintains input and output buffers, and uses
+<computeroutput>BZ2_bzDecompress</computeroutput> to transfer
+data between them.</para>
+
+<para>Before each call to
+<computeroutput>BZ2_bzDecompress</computeroutput>,
+<computeroutput>next_in</computeroutput> should point at the
+compressed data, and <computeroutput>avail_in</computeroutput>
+should indicate how many bytes the library may read.
+<computeroutput>BZ2_bzDecompress</computeroutput> updates
+<computeroutput>next_in</computeroutput>,
+<computeroutput>avail_in</computeroutput> and
+<computeroutput>total_in</computeroutput> to reflect the number
+of bytes it has read.</para>
+
+<para>Similarly, <computeroutput>next_out</computeroutput> should
+point to a buffer in which the uncompressed output is to be
+placed, with <computeroutput>avail_out</computeroutput>
+indicating how much output space is available.
+<computeroutput>BZ2_bzCompress</computeroutput> updates
+<computeroutput>next_out</computeroutput>,
+<computeroutput>avail_out</computeroutput> and
+<computeroutput>total_out</computeroutput> to reflect the number
+of bytes output.</para>
+
+<para>You may provide and remove as little or as much data as you
+like on each call of
+<computeroutput>BZ2_bzDecompress</computeroutput>. In the limit,
+it is acceptable to supply and remove data one byte at a time,
+although this would be terribly inefficient. You should always
+ensure that at least one byte of output space is available at
+each call.</para>
+
+<para>Use of <computeroutput>BZ2_bzDecompress</computeroutput> is
+simpler than
+<computeroutput>BZ2_bzCompress</computeroutput>.</para>
+
+<para>You should provide input and remove output as described
+above, and repeatedly call
+<computeroutput>BZ2_bzDecompress</computeroutput> until
+<computeroutput>BZ_STREAM_END</computeroutput> is returned.
+Appearance of <computeroutput>BZ_STREAM_END</computeroutput>
+denotes that <computeroutput>BZ2_bzDecompress</computeroutput>
+has detected the logical end of the compressed stream.
+<computeroutput>BZ2_bzDecompress</computeroutput> will not
+produce <computeroutput>BZ_STREAM_END</computeroutput> until all
+output data has been placed into the output buffer, so once
+<computeroutput>BZ_STREAM_END</computeroutput> appears, you are
+guaranteed to have available all the decompressed output, and
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> can safely
+be called.</para>
+
+<para>If case of an error return value, you should call
+<computeroutput>BZ2_bzDecompressEnd</computeroutput> to clean up
+and release memory.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if strm is NULL or strm->s is NULL
+ or strm->avail_out < 1
+BZ_DATA_ERROR
+ if a data integrity error is detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+ if the compressed stream doesn't begin with the right magic bytes
+BZ_MEM_ERROR
+ if there wasn't enough memory available
+BZ_STREAM_END
+ if the logical end of the data stream was detected and all
+ output in has been consumed, eg s-->avail_out > 0
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzDecompress
+ if BZ_OK was returned
+BZ2_bzDecompressEnd
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzDecompress-end" xreflabel="BZ2_bzDecompressEnd">
+<title>BZ2_bzDecompressEnd</title>
+
+<programlisting>
+int BZ2_bzDecompressEnd ( bz_stream *strm );
+</programlisting>
+
+<para>Releases all memory associated with a decompression
+stream.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if strm is NULL or strm->s is NULL
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+ None.
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="hl-interface" xreflabel="High-level interface">
+<title>High-level interface</title>
+
+<para>This interface provides functions for reading and writing
+<computeroutput>bzip2</computeroutput> format files. First, some
+general points.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>All of the functions take an
+ <computeroutput>int*</computeroutput> first argument,
+ <computeroutput>bzerror</computeroutput>. After each call,
+ <computeroutput>bzerror</computeroutput> should be consulted
+ first to determine the outcome of the call. If
+ <computeroutput>bzerror</computeroutput> is
+ <computeroutput>BZ_OK</computeroutput>, the call completed
+ successfully, and only then should the return value of the
+ function (if any) be consulted. If
+ <computeroutput>bzerror</computeroutput> is
+ <computeroutput>BZ_IO_ERROR</computeroutput>, there was an
+ error reading/writing the underlying compressed file, and you
+ should then consult <computeroutput>errno</computeroutput> /
+ <computeroutput>perror</computeroutput> to determine the cause
+ of the difficulty. <computeroutput>bzerror</computeroutput>
+ may also be set to various other values; precise details are
+ given on a per-function basis below.</para></listitem>
+
+ <listitem><para>If <computeroutput>bzerror</computeroutput> indicates
+ an error (ie, anything except
+ <computeroutput>BZ_OK</computeroutput> and
+ <computeroutput>BZ_STREAM_END</computeroutput>), you should
+ immediately call
+ <computeroutput>BZ2_bzReadClose</computeroutput> (or
+ <computeroutput>BZ2_bzWriteClose</computeroutput>, depending on
+ whether you are attempting to read or to write) to free up all
+ resources associated with the stream. Once an error has been
+ indicated, behaviour of all calls except
+ <computeroutput>BZ2_bzReadClose</computeroutput>
+ (<computeroutput>BZ2_bzWriteClose</computeroutput>) is
+ undefined. The implication is that (1)
+ <computeroutput>bzerror</computeroutput> should be checked
+ after each call, and (2) if
+ <computeroutput>bzerror</computeroutput> indicates an error,
+ <computeroutput>BZ2_bzReadClose</computeroutput>
+ (<computeroutput>BZ2_bzWriteClose</computeroutput>) should then
+ be called to clean up.</para></listitem>
+
+ <listitem><para>The <computeroutput>FILE*</computeroutput> arguments
+ passed to <computeroutput>BZ2_bzReadOpen</computeroutput> /
+ <computeroutput>BZ2_bzWriteOpen</computeroutput> should be set
+ to binary mode. Most Unix systems will do this by default, but
+ other platforms, including Windows and Mac, will not. If you
+ omit this, you may encounter problems when moving code to new
+ platforms.</para></listitem>
+
+ <listitem><para>Memory allocation requests are handled by
+ <computeroutput>malloc</computeroutput> /
+ <computeroutput>free</computeroutput>. At present there is no
+ facility for user-defined memory allocators in the file I/O
+ functions (could easily be added, though).</para></listitem>
+
+</itemizedlist>
+
+
+
+<sect2 id="bzreadopen" xreflabel="BZ2_bzReadOpen">
+<title>BZ2_bzReadOpen</title>
+
+<programlisting>
+typedef void BZFILE;
+
+BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f,
+ int verbosity, int small,
+ void *unused, int nUnused );
+</programlisting>
+
+<para>Prepare to read compressed data from file handle
+<computeroutput>f</computeroutput>.
+<computeroutput>f</computeroutput> should refer to a file which
+has been opened for reading, and for which the error indicator
+(<computeroutput>ferror(f)</computeroutput>)is not set. If
+<computeroutput>small</computeroutput> is 1, the library will try
+to decompress using less memory, at the expense of speed.</para>
+
+<para>For reasons explained below,
+<computeroutput>BZ2_bzRead</computeroutput> will decompress the
+<computeroutput>nUnused</computeroutput> bytes starting at
+<computeroutput>unused</computeroutput>, before starting to read
+from the file <computeroutput>f</computeroutput>. At most
+<computeroutput>BZ_MAX_UNUSED</computeroutput> bytes may be
+supplied like this. If this facility is not required, you should
+pass <computeroutput>NULL</computeroutput> and
+<computeroutput>0</computeroutput> for
+<computeroutput>unused</computeroutput> and
+n<computeroutput>Unused</computeroutput> respectively.</para>
+
+<para>For the meaning of parameters
+<computeroutput>small</computeroutput> and
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzDecompressInit</computeroutput>.</para>
+
+<para>The amount of memory needed to decompress a file cannot be
+determined until the file's header has been read. So it is
+possible that <computeroutput>BZ2_bzReadOpen</computeroutput>
+returns <computeroutput>BZ_OK</computeroutput> but a subsequent
+call of <computeroutput>BZ2_bzRead</computeroutput> will return
+<computeroutput>BZ_MEM_ERROR</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if f is NULL
+ or small is neither 0 nor 1
+ or ( unused == NULL && nUnused != 0 )
+ or ( unused != NULL && !(0 <= nUnused <= BZ_MAX_UNUSED) )
+BZ_IO_ERROR
+ if ferror(f) is nonzero
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OK
+ otherwise.
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+Pointer to an abstract BZFILE
+ if bzerror is BZ_OK
+NULL
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzRead
+ if bzerror is BZ_OK
+BZ2_bzClose
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzread" xreflabel="BZ2_bzRead">
+<title>BZ2_bzRead</title>
+
+<programlisting>
+int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );
+</programlisting>
+
+<para>Reads up to <computeroutput>len</computeroutput>
+(uncompressed) bytes from the compressed file
+<computeroutput>b</computeroutput> into the buffer
+<computeroutput>buf</computeroutput>. If the read was
+successful, <computeroutput>bzerror</computeroutput> is set to
+<computeroutput>BZ_OK</computeroutput> and the number of bytes
+read is returned. If the logical end-of-stream was detected,
+<computeroutput>bzerror</computeroutput> will be set to
+<computeroutput>BZ_STREAM_END</computeroutput>, and the number of
+bytes read is returned. All other
+<computeroutput>bzerror</computeroutput> values denote an
+error.</para>
+
+<para><computeroutput>BZ2_bzRead</computeroutput> will supply
+<computeroutput>len</computeroutput> bytes, unless the logical
+stream end is detected or an error occurs. Because of this, it
+is possible to detect the stream end by observing when the number
+of bytes returned is less than the number requested.
+Nevertheless, this is regarded as inadvisable; you should instead
+check <computeroutput>bzerror</computeroutput> after every call
+and watch out for
+<computeroutput>BZ_STREAM_END</computeroutput>.</para>
+
+<para>Internally, <computeroutput>BZ2_bzRead</computeroutput>
+copies data from the compressed file in chunks of size
+<computeroutput>BZ_MAX_UNUSED</computeroutput> bytes before
+decompressing it. If the file contains more bytes than strictly
+needed to reach the logical end-of-stream,
+<computeroutput>BZ2_bzRead</computeroutput> will almost certainly
+read some of the trailing data before signalling
+<computeroutput>BZ_SEQUENCE_END</computeroutput>. To collect the
+read but unused data once
+<computeroutput>BZ_SEQUENCE_END</computeroutput> has appeared,
+call <computeroutput>BZ2_bzReadGetUnused</computeroutput>
+immediately before
+<computeroutput>BZ2_bzReadClose</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if b is NULL or buf is NULL or len < 0
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzWriteOpen
+BZ_IO_ERROR
+ if there is an error reading from the compressed file
+BZ_UNEXPECTED_EOF
+ if the compressed file ended before
+ the logical end-of-stream was detected
+BZ_DATA_ERROR
+ if a data integrity error was detected in the compressed stream
+BZ_DATA_ERROR_MAGIC
+ if the stream does not begin with the requisite header bytes
+ (ie, is not a bzip2 data file). This is really
+ a special case of BZ_DATA_ERROR.
+BZ_MEM_ERROR
+ if insufficient memory was available
+BZ_STREAM_END
+ if the logical end of stream was detected.
+BZ_OK
+ otherwise.
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+number of bytes read
+ if bzerror is BZ_OK or BZ_STREAM_END
+undefined
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+collect data from buf, then BZ2_bzRead or BZ2_bzReadClose
+ if bzerror is BZ_OK
+collect data from buf, then BZ2_bzReadClose or BZ2_bzReadGetUnused
+ if bzerror is BZ_SEQUENCE_END
+BZ2_bzReadClose
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzreadgetunused" xreflabel="BZ2_bzReadGetUnused">
+<title>BZ2_bzReadGetUnused</title>
+
+<programlisting>
+void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b,
+ void** unused, int* nUnused );
+</programlisting>
+
+<para>Returns data which was read from the compressed file but
+was not needed to get to the logical end-of-stream.
+<computeroutput>*unused</computeroutput> is set to the address of
+the data, and <computeroutput>*nUnused</computeroutput> to the
+number of bytes. <computeroutput>*nUnused</computeroutput> will
+be set to a value between <computeroutput>0</computeroutput> and
+<computeroutput>BZ_MAX_UNUSED</computeroutput> inclusive.</para>
+
+<para>This function may only be called once
+<computeroutput>BZ2_bzRead</computeroutput> has signalled
+<computeroutput>BZ_STREAM_END</computeroutput> but before
+<computeroutput>BZ2_bzReadClose</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if b is NULL
+ or unused is NULL or nUnused is NULL
+BZ_SEQUENCE_ERROR
+ if BZ_STREAM_END has not been signalled
+ or if b was opened with BZ2_bzWriteOpen
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzReadClose
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzreadclose" xreflabel="BZ2_bzReadClose">
+<title>BZ2_bzReadClose</title>
+
+<programlisting>
+void BZ2_bzReadClose ( int *bzerror, BZFILE *b );
+</programlisting>
+
+<para>Releases all memory pertaining to the compressed file
+<computeroutput>b</computeroutput>.
+<computeroutput>BZ2_bzReadClose</computeroutput> does not call
+<computeroutput>fclose</computeroutput> on the underlying file
+handle, so you should do that yourself if appropriate.
+<computeroutput>BZ2_bzReadClose</computeroutput> should be called
+to clean up after all error situations.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzOpenWrite
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+none
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwriteopen" xreflabel="BZ2_bzWriteOpen">
+<title>BZ2_bzWriteOpen</title>
+
+<programlisting>
+BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f,
+ int blockSize100k, int verbosity,
+ int workFactor );
+</programlisting>
+
+<para>Prepare to write compressed data to file handle
+<computeroutput>f</computeroutput>.
+<computeroutput>f</computeroutput> should refer to a file which
+has been opened for writing, and for which the error indicator
+(<computeroutput>ferror(f)</computeroutput>)is not set.</para>
+
+<para>For the meaning of parameters
+<computeroutput>blockSize100k</computeroutput>,
+<computeroutput>verbosity</computeroutput> and
+<computeroutput>workFactor</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>All required memory is allocated at this stage, so if the
+call completes successfully,
+<computeroutput>BZ_MEM_ERROR</computeroutput> cannot be signalled
+by a subsequent call to
+<computeroutput>BZ2_bzWrite</computeroutput>.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if f is NULL
+ or blockSize100k < 1 or blockSize100k > 9
+BZ_IO_ERROR
+ if ferror(f) is nonzero
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OK
+ otherwise
+</programlisting>
+
+<para>Possible return values:</para>
+
+<programlisting>
+Pointer to an abstract BZFILE
+ if bzerror is BZ_OK
+NULL
+ otherwise
+</programlisting>
+
+<para>Allowable next actions:</para>
+
+<programlisting>
+BZ2_bzWrite
+ if bzerror is BZ_OK
+ (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
+BZ2_bzWriteClose
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwrite" xreflabel="BZ2_bzWrite">
+<title>BZ2_bzWrite</title>
+
+<programlisting>
+void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );
+</programlisting>
+
+<para>Absorbs <computeroutput>len</computeroutput> bytes from the
+buffer <computeroutput>buf</computeroutput>, eventually to be
+compressed and written to the file.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_PARAM_ERROR
+ if b is NULL or buf is NULL or len < 0
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+ if there is an error writing the compressed file.
+BZ_OK
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzwriteclose" xreflabel="BZ2_bzWriteClose">
+<title>BZ2_bzWriteClose</title>
+
+<programlisting>
+void BZ2_bzWriteClose( int *bzerror, BZFILE* f,
+ int abandon,
+ unsigned int* nbytes_in,
+ unsigned int* nbytes_out );
+
+void BZ2_bzWriteClose64( int *bzerror, BZFILE* f,
+ int abandon,
+ unsigned int* nbytes_in_lo32,
+ unsigned int* nbytes_in_hi32,
+ unsigned int* nbytes_out_lo32,
+ unsigned int* nbytes_out_hi32 );
+</programlisting>
+
+<para>Compresses and flushes to the compressed file all data so
+far supplied by <computeroutput>BZ2_bzWrite</computeroutput>.
+The logical end-of-stream markers are also written, so subsequent
+calls to <computeroutput>BZ2_bzWrite</computeroutput> are
+illegal. All memory associated with the compressed file
+<computeroutput>b</computeroutput> is released.
+<computeroutput>fflush</computeroutput> is called on the
+compressed file, but it is not
+<computeroutput>fclose</computeroutput>'d.</para>
+
+<para>If <computeroutput>BZ2_bzWriteClose</computeroutput> is
+called to clean up after an error, the only action is to release
+the memory. The library records the error codes issued by
+previous calls, so this situation will be detected automatically.
+There is no attempt to complete the compression operation, nor to
+<computeroutput>fflush</computeroutput> the compressed file. You
+can force this behaviour to happen even in the case of no error,
+by passing a nonzero value to
+<computeroutput>abandon</computeroutput>.</para>
+
+<para>If <computeroutput>nbytes_in</computeroutput> is non-null,
+<computeroutput>*nbytes_in</computeroutput> will be set to be the
+total volume of uncompressed data handled. Similarly,
+<computeroutput>nbytes_out</computeroutput> will be set to the
+total volume of compressed data written. For compatibility with
+older versions of the library,
+<computeroutput>BZ2_bzWriteClose</computeroutput> only yields the
+lower 32 bits of these counts. Use
+<computeroutput>BZ2_bzWriteClose64</computeroutput> if you want
+the full 64 bit counts. These two functions are otherwise
+absolutely identical.</para>
+
+<para>Possible assignments to
+<computeroutput>bzerror</computeroutput>:</para>
+
+<programlisting>
+BZ_SEQUENCE_ERROR
+ if b was opened with BZ2_bzReadOpen
+BZ_IO_ERROR
+ if there is an error writing the compressed file
+BZ_OK
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="embed" xreflabel="Handling embedded compressed data streams">
+<title>Handling embedded compressed data streams</title>
+
+<para>The high-level library facilitates use of
+<computeroutput>bzip2</computeroutput> data streams which form
+some part of a surrounding, larger data stream.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>For writing, the library takes an open file handle,
+ writes compressed data to it,
+ <computeroutput>fflush</computeroutput>es it but does not
+ <computeroutput>fclose</computeroutput> it. The calling
+ application can write its own data before and after the
+ compressed data stream, using that same file handle.</para></listitem>
+
+ <listitem><para>Reading is more complex, and the facilities are not as
+ general as they could be since generality is hard to reconcile
+ with efficiency. <computeroutput>BZ2_bzRead</computeroutput>
+ reads from the compressed file in blocks of size
+ <computeroutput>BZ_MAX_UNUSED</computeroutput> bytes, and in
+ doing so probably will overshoot the logical end of compressed
+ stream. To recover this data once decompression has ended,
+ call <computeroutput>BZ2_bzReadGetUnused</computeroutput> after
+ the last call of <computeroutput>BZ2_bzRead</computeroutput>
+ (the one returning
+ <computeroutput>BZ_STREAM_END</computeroutput>) but before
+ calling
+ <computeroutput>BZ2_bzReadClose</computeroutput>.</para></listitem>
+
+</itemizedlist>
+
+<para>This mechanism makes it easy to decompress multiple
+<computeroutput>bzip2</computeroutput> streams placed end-to-end.
+As the end of one stream, when
+<computeroutput>BZ2_bzRead</computeroutput> returns
+<computeroutput>BZ_STREAM_END</computeroutput>, call
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> to collect
+the unused data (copy it into your own buffer somewhere). That
+data forms the start of the next compressed stream. To start
+uncompressing that next stream, call
+<computeroutput>BZ2_bzReadOpen</computeroutput> again, feeding in
+the unused data via the <computeroutput>unused</computeroutput> /
+<computeroutput>nUnused</computeroutput> parameters. Keep doing
+this until <computeroutput>BZ_STREAM_END</computeroutput> return
+coincides with the physical end of file
+(<computeroutput>feof(f)</computeroutput>). In this situation
+<computeroutput>BZ2_bzReadGetUnused</computeroutput> will of
+course return no data.</para>
+
+<para>This should give some feel for how the high-level interface
+can be used. If you require extra flexibility, you'll have to
+bite the bullet and get to grips with the low-level
+interface.</para>
+
+</sect2>
+
+
+<sect2 id="std-rdwr" xreflabel="Standard file-reading/writing code">
+<title>Standard file-reading/writing code</title>
+
+<para>Here's how you'd write data to a compressed file:</para>
+
+<programlisting>
+FILE* f;
+BZFILE* b;
+int nBuf;
+char buf[ /* whatever size you like */ ];
+int bzerror;
+int nWritten;
+
+f = fopen ( "myfile.bz2", "w" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzWriteOpen( &bzerror, f, 9 );
+if (bzerror != BZ_OK) {
+ BZ2_bzWriteClose ( b );
+ /* handle error */
+}
+
+while ( /* condition */ ) {
+ /* get data to write into buf, and set nBuf appropriately */
+ nWritten = BZ2_bzWrite ( &bzerror, b, buf, nBuf );
+ if (bzerror == BZ_IO_ERROR) {
+ BZ2_bzWriteClose ( &bzerror, b );
+ /* handle error */
+ }
+}
+
+BZ2_bzWriteClose( &bzerror, b );
+if (bzerror == BZ_IO_ERROR) {
+ /* handle error */
+}
+</programlisting>
+
+<para>And to read from a compressed file:</para>
+
+<programlisting>
+FILE* f;
+BZFILE* b;
+int nBuf;
+char buf[ /* whatever size you like */ ];
+int bzerror;
+int nWritten;
+
+f = fopen ( "myfile.bz2", "r" );
+if ( !f ) {
+ /* handle error */
+}
+b = BZ2_bzReadOpen ( &bzerror, f, 0, NULL, 0 );
+if ( bzerror != BZ_OK ) {
+ BZ2_bzReadClose ( &bzerror, b );
+ /* handle error */
+}
+
+bzerror = BZ_OK;
+while ( bzerror == BZ_OK && /* arbitrary other conditions */) {
+ nBuf = BZ2_bzRead ( &bzerror, b, buf, /* size of buf */ );
+ if ( bzerror == BZ_OK ) {
+ /* do something with buf[0 .. nBuf-1] */
+ }
+}
+if ( bzerror != BZ_STREAM_END ) {
+ BZ2_bzReadClose ( &bzerror, b );
+ /* handle error */
+} else {
+ BZ2_bzReadClose ( &bzerror, b );
+}
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="util-fns" xreflabel="Utility functions">
+<title>Utility functions</title>
+
+
+<sect2 id="bzbufftobuffcompress" xreflabel="BZ2_bzBuffToBuffCompress">
+<title>BZ2_bzBuffToBuffCompress</title>
+
+<programlisting>
+int BZ2_bzBuffToBuffCompress( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int blockSize100k,
+ int verbosity,
+ int workFactor );
+</programlisting>
+
+<para>Attempts to compress the data in <computeroutput>source[0
+.. sourceLen-1]</computeroutput> into the destination buffer,
+<computeroutput>dest[0 .. *destLen-1]</computeroutput>. If the
+destination buffer is big enough,
+<computeroutput>*destLen</computeroutput> is set to the size of
+the compressed data, and <computeroutput>BZ_OK</computeroutput>
+is returned. If the compressed data won't fit,
+<computeroutput>*destLen</computeroutput> is unchanged, and
+<computeroutput>BZ_OUTBUFF_FULL</computeroutput> is
+returned.</para>
+
+<para>Compression in this manner is a one-shot event, done with a
+single call to this function. The resulting compressed data is a
+complete <computeroutput>bzip2</computeroutput> format data
+stream. There is no mechanism for making additional calls to
+provide extra input data. If you want that kind of mechanism,
+use the low-level interface.</para>
+
+<para>For the meaning of parameters
+<computeroutput>blockSize100k</computeroutput>,
+<computeroutput>verbosity</computeroutput> and
+<computeroutput>workFactor</computeroutput>, see
+<computeroutput>BZ2_bzCompressInit</computeroutput>.</para>
+
+<para>To guarantee that the compressed data will fit in its
+buffer, allocate an output buffer of size 1% larger than the
+uncompressed data, plus six hundred extra bytes.</para>
+
+<para><computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput>
+will not write data at or beyond
+<computeroutput>dest[*destLen]</computeroutput>, even in case of
+buffer overflow.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if dest is NULL or destLen is NULL
+ or blockSize100k < 1 or blockSize100k > 9
+ or verbosity < 0 or verbosity > 4
+ or workFactor < 0 or workFactor > 250
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OUTBUFF_FULL
+ if the size of the compressed data exceeds *destLen
+BZ_OK
+ otherwise
+</programlisting>
+
+</sect2>
+
+
+<sect2 id="bzbufftobuffdecompress" xreflabel="BZ2_bzBuffToBuffDecompress">
+<title>BZ2_bzBuffToBuffDecompress</title>
+
+<programlisting>
+int BZ2_bzBuffToBuffDecompress( char* dest,
+ unsigned int* destLen,
+ char* source,
+ unsigned int sourceLen,
+ int small,
+ int verbosity );
+</programlisting>
+
+<para>Attempts to decompress the data in <computeroutput>source[0
+.. sourceLen-1]</computeroutput> into the destination buffer,
+<computeroutput>dest[0 .. *destLen-1]</computeroutput>. If the
+destination buffer is big enough,
+<computeroutput>*destLen</computeroutput> is set to the size of
+the uncompressed data, and <computeroutput>BZ_OK</computeroutput>
+is returned. If the compressed data won't fit,
+<computeroutput>*destLen</computeroutput> is unchanged, and
+<computeroutput>BZ_OUTBUFF_FULL</computeroutput> is
+returned.</para>
+
+<para><computeroutput>source</computeroutput> is assumed to hold
+a complete <computeroutput>bzip2</computeroutput> format data
+stream.
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput> tries
+to decompress the entirety of the stream into the output
+buffer.</para>
+
+<para>For the meaning of parameters
+<computeroutput>small</computeroutput> and
+<computeroutput>verbosity</computeroutput>, see
+<computeroutput>BZ2_bzDecompressInit</computeroutput>.</para>
+
+<para>Because the compression ratio of the compressed data cannot
+be known in advance, there is no easy way to guarantee that the
+output buffer will be big enough. You may of course make
+arrangements in your code to record the size of the uncompressed
+data, but such a mechanism is beyond the scope of this
+library.</para>
+
+<para><computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput>
+will not write data at or beyond
+<computeroutput>dest[*destLen]</computeroutput>, even in case of
+buffer overflow.</para>
+
+<para>Possible return values:</para>
+
+<programlisting>
+BZ_CONFIG_ERROR
+ if the library has been mis-compiled
+BZ_PARAM_ERROR
+ if dest is NULL or destLen is NULL
+ or small != 0 && small != 1
+ or verbosity < 0 or verbosity > 4
+BZ_MEM_ERROR
+ if insufficient memory is available
+BZ_OUTBUFF_FULL
+ if the size of the compressed data exceeds *destLen
+BZ_DATA_ERROR
+ if a data integrity error was detected in the compressed data
+BZ_DATA_ERROR_MAGIC
+ if the compressed data doesn't begin with the right magic bytes
+BZ_UNEXPECTED_EOF
+ if the compressed data ends unexpectedly
+BZ_OK
+ otherwise
+</programlisting>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="zlib-compat" xreflabel="zlib compatibility functions">
+<title>zlib compatibility functions</title>
+
+<para>Yoshioka Tsuneo has contributed some functions to give
+better <computeroutput>zlib</computeroutput> compatibility.
+These functions are <computeroutput>BZ2_bzopen</computeroutput>,
+<computeroutput>BZ2_bzread</computeroutput>,
+<computeroutput>BZ2_bzwrite</computeroutput>,
+<computeroutput>BZ2_bzflush</computeroutput>,
+<computeroutput>BZ2_bzclose</computeroutput>,
+<computeroutput>BZ2_bzerror</computeroutput> and
+<computeroutput>BZ2_bzlibVersion</computeroutput>. These
+functions are not (yet) officially part of the library. If they
+break, you get to keep all the pieces. Nevertheless, I think
+they work ok.</para>
+
+<programlisting>
+typedef void BZFILE;
+
+const char * BZ2_bzlibVersion ( void );
+</programlisting>
+
+<para>Returns a string indicating the library version.</para>
+
+<programlisting>
+BZFILE * BZ2_bzopen ( const char *path, const char *mode );
+BZFILE * BZ2_bzdopen ( int fd, const char *mode );
+</programlisting>
+
+<para>Opens a <computeroutput>.bz2</computeroutput> file for
+reading or writing, using either its name or a pre-existing file
+descriptor. Analogous to <computeroutput>fopen</computeroutput>
+and <computeroutput>fdopen</computeroutput>.</para>
+
+<programlisting>
+int BZ2_bzread ( BZFILE* b, void* buf, int len );
+int BZ2_bzwrite ( BZFILE* b, void* buf, int len );
+</programlisting>
+
+<para>Reads/writes data from/to a previously opened
+<computeroutput>BZFILE</computeroutput>. Analogous to
+<computeroutput>fread</computeroutput> and
+<computeroutput>fwrite</computeroutput>.</para>
+
+<programlisting>
+int BZ2_bzflush ( BZFILE* b );
+void BZ2_bzclose ( BZFILE* b );
+</programlisting>
+
+<para>Flushes/closes a <computeroutput>BZFILE</computeroutput>.
+<computeroutput>BZ2_bzflush</computeroutput> doesn't actually do
+anything. Analogous to <computeroutput>fflush</computeroutput>
+and <computeroutput>fclose</computeroutput>.</para>
+
+<programlisting>
+const char * BZ2_bzerror ( BZFILE *b, int *errnum )
+</programlisting>
+
+<para>Returns a string describing the more recent error status of
+<computeroutput>b</computeroutput>, and also sets
+<computeroutput>*errnum</computeroutput> to its numerical
+value.</para>
+
+</sect1>
+
+
+<sect1 id="stdio-free"
+ xreflabel="Using the library in a stdio-free environment">
+<title>Using the library in a stdio-free environment</title>
+
+
+<sect2 id="stdio-bye" xreflabel="Getting rid of stdio">
+<title>Getting rid of stdio</title>
+
+<para>In a deeply embedded application, you might want to use
+just the memory-to-memory functions. You can do this
+conveniently by compiling the library with preprocessor symbol
+<computeroutput>BZ_NO_STDIO</computeroutput> defined. Doing this
+gives you a library containing only the following eight
+functions:</para>
+
+<para><computeroutput>BZ2_bzCompressInit</computeroutput>,
+<computeroutput>BZ2_bzCompress</computeroutput>,
+<computeroutput>BZ2_bzCompressEnd</computeroutput>
+<computeroutput>BZ2_bzDecompressInit</computeroutput>,
+<computeroutput>BZ2_bzDecompress</computeroutput>,
+<computeroutput>BZ2_bzDecompressEnd</computeroutput>
+<computeroutput>BZ2_bzBuffToBuffCompress</computeroutput>,
+<computeroutput>BZ2_bzBuffToBuffDecompress</computeroutput></para>
+
+<para>When compiled like this, all functions will ignore
+<computeroutput>verbosity</computeroutput> settings.</para>
+
+</sect2>
+
+
+<sect2 id="critical-error" xreflabel="Critical error handling">
+<title>Critical error handling</title>
+
+<para><computeroutput>libbzip2</computeroutput> contains a number
+of internal assertion checks which should, needless to say, never
+be activated. Nevertheless, if an assertion should fail,
+behaviour depends on whether or not the library was compiled with
+<computeroutput>BZ_NO_STDIO</computeroutput> set.</para>
+
+<para>For a normal compile, an assertion failure yields the
+message:</para>
+
+<blockquote>
+<para>bzip2/libbzip2: internal error number N.</para>
+<para>This is a bug in bzip2/libbzip2, &bz-version; of &bz-date;.
+Please report it to: &bz-email;. If this happened
+when you were using some program which uses libbzip2 as a
+component, you should also report this bug to the author(s)
+of that program. Please make an effort to report this bug;
+timely and accurate bug reports eventually lead to higher
+quality software. Thanks.
+</para></blockquote>
+
+<para>where <computeroutput>N</computeroutput> is some error code
+number. If <computeroutput>N == 1007</computeroutput>, it also
+prints some extra text advising the reader that unreliable memory
+is often associated with internal error 1007. (This is a
+frequently-observed-phenomenon with versions 1.0.0/1.0.1).</para>
+
+<para><computeroutput>exit(3)</computeroutput> is then
+called.</para>
+
+<para>For a <computeroutput>stdio</computeroutput>-free library,
+assertion failures result in a call to a function declared
+as:</para>
+
+<programlisting>
+extern void bz_internal_error ( int errcode );
+</programlisting>
+
+<para>The relevant code is passed as a parameter. You should
+supply such a function.</para>
+
+<para>In either case, once an assertion failure has occurred, any
+<computeroutput>bz_stream</computeroutput> records involved can
+be regarded as invalid. You should not attempt to resume normal
+operation with them.</para>
+
+<para>You may, of course, change critical error handling to suit
+your needs. As I said above, critical errors indicate bugs in
+the library and should not occur. All "normal" error situations
+are indicated via error return codes from functions, and can be
+recovered from.</para>
+
+</sect2>
+
+</sect1>
+
+
+<sect1 id="win-dll" xreflabel="Making a Windows DLL">
+<title>Making a Windows DLL</title>
+
+<para>Everything related to Windows has been contributed by
+Yoshioka Tsuneo
+(<computeroutput>tsuneo@rr.iij4u.or.jp</computeroutput>), so
+you should send your queries to him (but please Cc:
+<computeroutput>&bz-email;</computeroutput>).</para>
+
+<para>My vague understanding of what to do is: using Visual C++
+5.0, open the project file
+<computeroutput>libbz2.dsp</computeroutput>, and build. That's
+all.</para>
+
+<para>If you can't open the project file for some reason, make a
+new one, naming these files:
+<computeroutput>blocksort.c</computeroutput>,
+<computeroutput>bzlib.c</computeroutput>,
+<computeroutput>compress.c</computeroutput>,
+<computeroutput>crctable.c</computeroutput>,
+<computeroutput>decompress.c</computeroutput>,
+<computeroutput>huffman.c</computeroutput>,
+<computeroutput>randtable.c</computeroutput> and
+<computeroutput>libbz2.def</computeroutput>. You will also need
+to name the header files <computeroutput>bzlib.h</computeroutput>
+and <computeroutput>bzlib_private.h</computeroutput>.</para>
+
+<para>If you don't use VC++, you may need to define the
+proprocessor symbol
+<computeroutput>_WIN32</computeroutput>.</para>
+
+<para>Finally, <computeroutput>dlltest.c</computeroutput> is a
+sample program using the DLL. It has a project file,
+<computeroutput>dlltest.dsp</computeroutput>.</para>
+
+<para>If you just want a makefile for Visual C, have a look at
+<computeroutput>makefile.msc</computeroutput>.</para>
+
+<para>Be aware that if you compile
+<computeroutput>bzip2</computeroutput> itself on Win32, you must
+set <computeroutput>BZ_UNIX</computeroutput> to 0 and
+<computeroutput>BZ_LCCWIN32</computeroutput> to 1, in the file
+<computeroutput>bzip2.c</computeroutput>, before compiling.
+Otherwise the resulting binary won't work correctly.</para>
+
+<para>I haven't tried any of this stuff myself, but it all looks
+plausible.</para>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="misc" xreflabel="Miscellanea">
+<title>Miscellanea</title>
+
+<para>These are just some random thoughts of mine. Your mileage
+may vary.</para>
+
+
+<sect1 id="limits" xreflabel="Limitations of the compressed file format">
+<title>Limitations of the compressed file format</title>
+
+<para><computeroutput>bzip2-1.0.X</computeroutput>,
+<computeroutput>0.9.5</computeroutput> and
+<computeroutput>0.9.0</computeroutput> use exactly the same file
+format as the original version,
+<computeroutput>bzip2-0.1</computeroutput>. This decision was
+made in the interests of stability. Creating yet another
+incompatible compressed file format would create further
+confusion and disruption for users.</para>
+
+<para>Nevertheless, this is not a painless decision. Development
+work since the release of
+<computeroutput>bzip2-0.1</computeroutput> in August 1997 has
+shown complexities in the file format which slow down
+decompression and, in retrospect, are unnecessary. These
+are:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>The run-length encoder, which is the first of the
+ compression transformations, is entirely irrelevant. The
+ original purpose was to protect the sorting algorithm from the
+ very worst case input: a string of repeated symbols. But
+ algorithm steps Q6a and Q6b in the original Burrows-Wheeler
+ technical report (SRC-124) show how repeats can be handled
+ without difficulty in block sorting.</para></listitem>
+
+ <listitem><para>The randomisation mechanism doesn't really need to be
+ there. Udi Manber and Gene Myers published a suffix array
+ construction algorithm a few years back, which can be employed
+ to sort any block, no matter how repetitive, in O(N log N)
+ time. Subsequent work by Kunihiko Sadakane has produced a
+ derivative O(N (log N)^2) algorithm which usually outperforms
+ the Manber-Myers algorithm.</para>
+
+ <para>I could have changed to Sadakane's algorithm, but I find
+ it to be slower than <computeroutput>bzip2</computeroutput>'s
+ existing algorithm for most inputs, and the randomisation
+ mechanism protects adequately against bad cases. I didn't
+ think it was a good tradeoff to make. Partly this is due to
+ the fact that I was not flooded with email complaints about
+ <computeroutput>bzip2-0.1</computeroutput>'s performance on
+ repetitive data, so perhaps it isn't a problem for real
+ inputs.</para>
+
+ <para>Probably the best long-term solution, and the one I have
+ incorporated into 0.9.5 and above, is to use the existing
+ sorting algorithm initially, and fall back to a O(N (log N)^2)
+ algorithm if the standard algorithm gets into
+ difficulties.</para></listitem>
+
+ <listitem><para>The compressed file format was never designed to be
+ handled by a library, and I have had to jump though some hoops
+ to produce an efficient implementation of decompression. It's
+ a bit hairy. Try passing
+ <computeroutput>decompress.c</computeroutput> through the C
+ preprocessor and you'll see what I mean. Much of this
+ complexity could have been avoided if the compressed size of
+ each block of data was recorded in the data stream.</para></listitem>
+
+ <listitem><para>An Adler-32 checksum, rather than a CRC32 checksum,
+ would be faster to compute.</para></listitem>
+
+</itemizedlist>
+
+<para>It would be fair to say that the
+<computeroutput>bzip2</computeroutput> format was frozen before I
+properly and fully understood the performance consequences of
+doing so.</para>
+
+<para>Improvements which I was able to incorporate into 0.9.0,
+despite using the same file format, are:</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>Single array implementation of the inverse BWT. This
+ significantly speeds up decompression, presumably because it
+ reduces the number of cache misses.</para></listitem>
+
+ <listitem><para>Faster inverse MTF transform for large MTF values.
+ The new implementation is based on the notion of sliding blocks
+ of values.</para></listitem>
+
+ <listitem><para><computeroutput>bzip2-0.9.0</computeroutput> now reads
+ and writes files with <computeroutput>fread</computeroutput>
+ and <computeroutput>fwrite</computeroutput>; version 0.1 used
+ <computeroutput>putc</computeroutput> and
+ <computeroutput>getc</computeroutput>. Duh! Well, you live
+ and learn.</para></listitem>
+
+</itemizedlist>
+
+<para>Further ahead, it would be nice to be able to do random
+access into files. This will require some careful design of
+compressed file formats.</para>
+
+</sect1>
+
+
+<sect1 id="port-issues" xreflabel="Portability issues">
+<title>Portability issues</title>
+
+<para>After some consideration, I have decided not to use GNU
+<computeroutput>autoconf</computeroutput> to configure 0.9.5 or
+1.0.</para>
+
+<para><computeroutput>autoconf</computeroutput>, admirable and
+wonderful though it is, mainly assists with portability problems
+between Unix-like platforms. But
+<computeroutput>bzip2</computeroutput> doesn't have much in the
+way of portability problems on Unix; most of the difficulties
+appear when porting to the Mac, or to Microsoft's operating
+systems. <computeroutput>autoconf</computeroutput> doesn't help
+in those cases, and brings in a whole load of new
+complexity.</para>
+
+<para>Most people should be able to compile the library and
+program under Unix straight out-of-the-box, so to speak,
+especially if you have a version of GNU C available.</para>
+
+<para>There are a couple of
+<computeroutput>__inline__</computeroutput> directives in the
+code. GNU C (<computeroutput>gcc</computeroutput>) should be
+able to handle them. If you're not using GNU C, your C compiler
+shouldn't see them at all. If your compiler does, for some
+reason, see them and doesn't like them, just
+<computeroutput>#define</computeroutput>
+<computeroutput>__inline__</computeroutput> to be
+<computeroutput>/* */</computeroutput>. One easy way to do this
+is to compile with the flag
+<computeroutput>-D__inline__=</computeroutput>, which should be
+understood by most Unix compilers.</para>
+
+<para>If you still have difficulties, try compiling with the
+macro <computeroutput>BZ_STRICT_ANSI</computeroutput> defined.
+This should enable you to build the library in a strictly ANSI
+compliant environment. Building the program itself like this is
+dangerous and not supported, since you remove
+<computeroutput>bzip2</computeroutput>'s checks against
+compressing directories, symbolic links, devices, and other
+not-really-a-file entities. This could cause filesystem
+corruption!</para>
+
+<para>One other thing: if you create a
+<computeroutput>bzip2</computeroutput> binary for public distribution,
+please consider linking it statically (<computeroutput>gcc
+-static</computeroutput>). This avoids all sorts of library-version
+issues that others may encounter later on.</para>
+
+<para>If you build <computeroutput>bzip2</computeroutput> on
+Win32, you must set <computeroutput>BZ_UNIX</computeroutput> to 0
+and <computeroutput>BZ_LCCWIN32</computeroutput> to 1, in the
+file <computeroutput>bzip2.c</computeroutput>, before compiling.
+Otherwise the resulting binary won't work correctly.</para>
+
+</sect1>
+
+
+<sect1 id="bugs" xreflabel="Reporting bugs">
+<title>Reporting bugs</title>
+
+<para>I tried pretty hard to make sure
+<computeroutput>bzip2</computeroutput> is bug free, both by
+design and by testing. Hopefully you'll never need to read this
+section for real.</para>
+
+<para>Nevertheless, if <computeroutput>bzip2</computeroutput> dies
+with a segmentation fault, a bus error or an internal assertion
+failure, it will ask you to email me a bug report. Experience from
+years of feedback of bzip2 users indicates that almost all these
+problems can be traced to either compiler bugs or hardware
+problems.</para>
+
+<itemizedlist mark='bullet'>
+
+ <listitem><para>Recompile the program with no optimisation, and
+ see if it works. And/or try a different compiler. I heard all
+ sorts of stories about various flavours of GNU C (and other
+ compilers) generating bad code for
+ <computeroutput>bzip2</computeroutput>, and I've run across two
+ such examples myself.</para>
+
+ <para>2.7.X versions of GNU C are known to generate bad code
+ from time to time, at high optimisation levels. If you get
+ problems, try using the flags
+ <computeroutput>-O2</computeroutput>
+ <computeroutput>-fomit-frame-pointer</computeroutput>
+ <computeroutput>-fno-strength-reduce</computeroutput>. You
+ should specifically <emphasis>not</emphasis> use
+ <computeroutput>-funroll-loops</computeroutput>.</para>
+
+ <para>You may notice that the Makefile runs six tests as part
+ of the build process. If the program passes all of these, it's
+ a pretty good (but not 100%) indication that the compiler has
+ done its job correctly.</para></listitem>
+
+ <listitem><para>If <computeroutput>bzip2</computeroutput>
+ crashes randomly, and the crashes are not repeatable, you may
+ have a flaky memory subsystem.
+ <computeroutput>bzip2</computeroutput> really hammers your
+ memory hierarchy, and if it's a bit marginal, you may get these
+ problems. Ditto if your disk or I/O subsystem is slowly
+ failing. Yup, this really does happen.</para>
+
+ <para>Try using a different machine of the same type, and see
+ if you can repeat the problem.</para></listitem>
+
+ <listitem><para>This isn't really a bug, but ... If
+ <computeroutput>bzip2</computeroutput> tells you your file is
+ corrupted on decompression, and you obtained the file via FTP,
+ there is a possibility that you forgot to tell FTP to do a
+ binary mode transfer. That absolutely will cause the file to
+ be non-decompressible. You'll have to transfer it
+ again.</para></listitem>
+
+</itemizedlist>
+
+<para>If you've incorporated
+<computeroutput>libbzip2</computeroutput> into your own program
+and are getting problems, please, please, please, check that the
+parameters you are passing in calls to the library, are correct,
+and in accordance with what the documentation says is allowable.
+I have tried to make the library robust against such problems,
+but I'm sure I haven't succeeded.</para>
+
+<para>Finally, if the above comments don't help, you'll have to
+send me a bug report. Now, it's just amazing how many people
+will send me a bug report saying something like:</para>
+
+<programlisting>
+bzip2 crashed with segmentation fault on my machine
+</programlisting>
+
+<para>and absolutely nothing else. Needless to say, a such a
+report is <emphasis>totally, utterly, completely and
+comprehensively 100% useless; a waste of your time, my time, and
+net bandwidth</emphasis>. With no details at all, there's no way
+I can possibly begin to figure out what the problem is.</para>
+
+<para>The rules of the game are: facts, facts, facts. Don't omit
+them because "oh, they won't be relevant". At the bare
+minimum:</para>
+
+<programlisting>
+Machine type. Operating system version.
+Exact version of bzip2 (do bzip2 -V).
+Exact version of the compiler used.
+Flags passed to the compiler.
+</programlisting>
+
+<para>However, the most important single thing that will help me
+is the file that you were trying to compress or decompress at the
+time the problem happened. Without that, my ability to do
+anything more than speculate about the cause, is limited.</para>
+
+</sect1>
+
+
+<sect1 id="package" xreflabel="Did you get the right package?">
+<title>Did you get the right package?</title>
+
+<para><computeroutput>bzip2</computeroutput> is a resource hog.
+It soaks up large amounts of CPU cycles and memory. Also, it
+gives very large latencies. In the worst case, you can feed many
+megabytes of uncompressed data into the library before getting
+any compressed output, so this probably rules out applications
+requiring interactive behaviour.</para>
+
+<para>These aren't faults of my implementation, I hope, but more
+an intrinsic property of the Burrows-Wheeler transform
+(unfortunately). Maybe this isn't what you want.</para>
+
+<para>If you want a compressor and/or library which is faster,
+uses less memory but gets pretty good compression, and has
+minimal latency, consider Jean-loup Gailly's and Mark Adler's
+work, <computeroutput>zlib-1.2.1</computeroutput> and
+<computeroutput>gzip-1.2.4</computeroutput>. Look for them at
+<ulink url="http://www.zlib.org">http://www.zlib.org</ulink> and
+<ulink url="http://www.gzip.org">http://www.gzip.org</ulink>
+respectively.</para>
+
+<para>For something faster and lighter still, you might try Markus F
+X J Oberhumer's <computeroutput>LZO</computeroutput> real-time
+compression/decompression library, at
+<ulink url="http://www.oberhumer.com/opensource">http://www.oberhumer.com/opensource</ulink>.</para>
+
+</sect1>
+
+
+
+<sect1 id="reading" xreflabel="Further Reading">
+<title>Further Reading</title>
+
+<para><computeroutput>bzip2</computeroutput> is not research
+work, in the sense that it doesn't present any new ideas.
+Rather, it's an engineering exercise based on existing
+ideas.</para>
+
+<para>Four documents describe essentially all the ideas behind
+<computeroutput>bzip2</computeroutput>:</para>
+
+<literallayout>Michael Burrows and D. J. Wheeler:
+ "A block-sorting lossless data compression algorithm"
+ 10th May 1994.
+ Digital SRC Research Report 124.
+ ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz
+ If you have trouble finding it, try searching at the
+ New Zealand Digital Library, http://www.nzdl.org.
+
+Daniel S. Hirschberg and Debra A. LeLewer
+ "Efficient Decoding of Prefix Codes"
+ Communications of the ACM, April 1990, Vol 33, Number 4.
+ You might be able to get an electronic copy of this
+ from the ACM Digital Library.
+
+David J. Wheeler
+ Program bred3.c and accompanying document bred3.ps.
+ This contains the idea behind the multi-table Huffman coding scheme.
+ ftp://ftp.cl.cam.ac.uk/users/djw3/
+
+Jon L. Bentley and Robert Sedgewick
+ "Fast Algorithms for Sorting and Searching Strings"
+ Available from Sedgewick's web page,
+ www.cs.princeton.edu/~rs
+</literallayout>
+
+<para>The following paper gives valuable additional insights into
+the algorithm, but is not immediately the basis of any code used
+in bzip2.</para>
+
+<literallayout>Peter Fenwick:
+ Block Sorting Text Compression
+ Proceedings of the 19th Australasian Computer Science Conference,
+ Melbourne, Australia. Jan 31 - Feb 2, 1996.
+ ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps</literallayout>
+
+<para>Kunihiko Sadakane's sorting algorithm, mentioned above, is
+available from:</para>
+
+<literallayout>http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz
+</literallayout>
+
+<para>The Manber-Myers suffix array construction algorithm is
+described in a paper available from:</para>
+
+<literallayout>http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps
+</literallayout>
+
+<para>Finally, the following papers document some
+investigations I made into the performance of sorting
+and decompression algorithms:</para>
+
+<literallayout>Julian Seward
+ On the Performance of BWT Sorting Algorithms
+ Proceedings of the IEEE Data Compression Conference 2000
+ Snowbird, Utah. 28-30 March 2000.
+
+Julian Seward
+ Space-time Tradeoffs in the Inverse B-W Transform
+ Proceedings of the IEEE Data Compression Conference 2001
+ Snowbird, Utah. 27-29 March 2001.
+</literallayout>
+
+</sect1>
+
+</chapter>
+
+</book>
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/mk251.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/mk251.c
new file mode 100644
index 000000000..6c5bbf935
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/mk251.c
@@ -0,0 +1,31 @@
+
+/* Spew out a long sequence of the byte 251. When fed to bzip2
+ versions 1.0.0 or 1.0.1, causes it to die with internal error
+ 1007 in blocksort.c. This assertion misses an extremely rare
+ case, which is fixed in this version (1.0.2) and above.
+*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include <stdio.h>
+
+int main ()
+{
+ int i;
+ for (i = 0; i < 48500000 ; i++)
+ putchar(251);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/randtable.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/randtable.c
new file mode 100644
index 000000000..bdc6d4a4c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/randtable.c
@@ -0,0 +1,84 @@
+
+/*-------------------------------------------------------------*/
+/*--- Table for randomising repetitive blocks ---*/
+/*--- randtable.c ---*/
+/*-------------------------------------------------------------*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include "bzlib_private.h"
+
+
+/*---------------------------------------------*/
+Int32 BZ2_rNums[512] = {
+ 619, 720, 127, 481, 931, 816, 813, 233, 566, 247,
+ 985, 724, 205, 454, 863, 491, 741, 242, 949, 214,
+ 733, 859, 335, 708, 621, 574, 73, 654, 730, 472,
+ 419, 436, 278, 496, 867, 210, 399, 680, 480, 51,
+ 878, 465, 811, 169, 869, 675, 611, 697, 867, 561,
+ 862, 687, 507, 283, 482, 129, 807, 591, 733, 623,
+ 150, 238, 59, 379, 684, 877, 625, 169, 643, 105,
+ 170, 607, 520, 932, 727, 476, 693, 425, 174, 647,
+ 73, 122, 335, 530, 442, 853, 695, 249, 445, 515,
+ 909, 545, 703, 919, 874, 474, 882, 500, 594, 612,
+ 641, 801, 220, 162, 819, 984, 589, 513, 495, 799,
+ 161, 604, 958, 533, 221, 400, 386, 867, 600, 782,
+ 382, 596, 414, 171, 516, 375, 682, 485, 911, 276,
+ 98, 553, 163, 354, 666, 933, 424, 341, 533, 870,
+ 227, 730, 475, 186, 263, 647, 537, 686, 600, 224,
+ 469, 68, 770, 919, 190, 373, 294, 822, 808, 206,
+ 184, 943, 795, 384, 383, 461, 404, 758, 839, 887,
+ 715, 67, 618, 276, 204, 918, 873, 777, 604, 560,
+ 951, 160, 578, 722, 79, 804, 96, 409, 713, 940,
+ 652, 934, 970, 447, 318, 353, 859, 672, 112, 785,
+ 645, 863, 803, 350, 139, 93, 354, 99, 820, 908,
+ 609, 772, 154, 274, 580, 184, 79, 626, 630, 742,
+ 653, 282, 762, 623, 680, 81, 927, 626, 789, 125,
+ 411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
+ 170, 774, 972, 275, 999, 639, 495, 78, 352, 126,
+ 857, 956, 358, 619, 580, 124, 737, 594, 701, 612,
+ 669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
+ 944, 375, 748, 52, 600, 747, 642, 182, 862, 81,
+ 344, 805, 988, 739, 511, 655, 814, 334, 249, 515,
+ 897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
+ 433, 837, 553, 268, 926, 240, 102, 654, 459, 51,
+ 686, 754, 806, 760, 493, 403, 415, 394, 687, 700,
+ 946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
+ 978, 321, 576, 617, 626, 502, 894, 679, 243, 440,
+ 680, 879, 194, 572, 640, 724, 926, 56, 204, 700,
+ 707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
+ 297, 59, 87, 824, 713, 663, 412, 693, 342, 606,
+ 134, 108, 571, 364, 631, 212, 174, 643, 304, 329,
+ 343, 97, 430, 751, 497, 314, 983, 374, 822, 928,
+ 140, 206, 73, 263, 980, 736, 876, 478, 430, 305,
+ 170, 514, 364, 692, 829, 82, 855, 953, 676, 246,
+ 369, 970, 294, 750, 807, 827, 150, 790, 288, 923,
+ 804, 378, 215, 828, 592, 281, 565, 555, 710, 82,
+ 896, 831, 547, 261, 524, 462, 293, 465, 502, 56,
+ 661, 821, 976, 991, 658, 869, 905, 758, 745, 193,
+ 768, 550, 608, 933, 378, 286, 215, 979, 792, 961,
+ 61, 688, 793, 644, 986, 403, 106, 366, 905, 644,
+ 372, 567, 466, 434, 645, 210, 389, 550, 919, 135,
+ 780, 773, 635, 389, 707, 100, 626, 958, 165, 504,
+ 920, 176, 193, 713, 857, 265, 203, 50, 668, 108,
+ 645, 990, 626, 197, 510, 357, 358, 850, 858, 364,
+ 936, 638
+};
+
+
+/*-------------------------------------------------------------*/
+/*--- end randtable.c ---*/
+/*-------------------------------------------------------------*/
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.bz2 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.bz2
new file mode 100644
index 000000000..18dea6004
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.bz2
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.ref b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.ref
new file mode 100644
index 000000000..a56e52b77
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample1.ref
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.bz2 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.bz2
new file mode 100644
index 000000000..d5a6160ba
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.bz2
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.ref b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.ref
new file mode 100644
index 000000000..34af95839
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample2.ref
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.bz2 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.bz2
new file mode 100644
index 000000000..d90cff920
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.bz2
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.ref b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.ref
new file mode 100644
index 000000000..775a2f68e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/sample3.ref
@@ -0,0 +1,30007 @@
+This file is exceedingly boring. If you find yourself
+reading it, please (1) take it from me that you can safely
+guess what the rest of the file says, and (2) seek professional
+help.
+
+ps. there are no further sarcastic remarks in this file.
+
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
+ugh
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/spewG.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/spewG.c
new file mode 100644
index 000000000..65d24c89c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/spewG.c
@@ -0,0 +1,54 @@
+
+/* spew out a thoroughly gigantic file designed so that bzip2
+ can compress it reasonably rapidly. This is to help test
+ support for large files (> 2GB) in a reasonable amount of time.
+ I suggest you use the undocumented --exponential option to
+ bzip2 when compressing the resulting file; this saves a bit of
+ time. Note: *don't* bother with --exponential when compressing
+ Real Files; it'll just waste a lot of CPU time :-)
+ (but is otherwise harmless).
+*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#define _FILE_OFFSET_BITS 64
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* The number of megabytes of junk to spew out (roughly) */
+#define MEGABYTES 5000
+
+#define N_BUF 1000000
+char buf[N_BUF];
+
+int main ( int argc, char** argv )
+{
+ int ii, kk, p;
+ srandom(1);
+ setbuffer ( stdout, buf, N_BUF );
+ for (kk = 0; kk < MEGABYTES * 515; kk+=3) {
+ p = 25+random()%50;
+ for (ii = 0; ii < p; ii++)
+ printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" );
+ for (ii = 0; ii < p-1; ii++)
+ printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" );
+ for (ii = 0; ii < p+1; ii++)
+ printf ( "ccccccccccccccccccccccccccccccccccccc" );
+ }
+ fflush(stdout);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/unzcrash.c b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/unzcrash.c
new file mode 100644
index 000000000..c68f93c56
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/unzcrash.c
@@ -0,0 +1,141 @@
+
+/* A test program written to test robustness to decompression of
+ corrupted data. Usage is
+ unzcrash filename
+ and the program will read the specified file, compress it (in memory),
+ and then repeatedly decompress it, each time with a different bit of
+ the compressed data inverted, so as to test all possible one-bit errors.
+ This should not cause any invalid memory accesses. If it does,
+ I want to know about it!
+
+ PS. As you can see from the above description, the process is
+ incredibly slow. A file of size eg 5KB will cause it to run for
+ many hours.
+*/
+
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.8 of 13 July 2019
+ Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
+
+
+#include <stdio.h>
+#include <assert.h>
+#include "bzlib.h"
+
+#define M_BLOCK 1000000
+
+typedef unsigned char uchar;
+
+#define M_BLOCK_OUT (M_BLOCK + 1000000)
+uchar inbuf[M_BLOCK];
+uchar outbuf[M_BLOCK_OUT];
+uchar zbuf[M_BLOCK + 600 + (M_BLOCK / 100)];
+
+int nIn, nOut, nZ;
+
+static char *bzerrorstrings[] = {
+ "OK"
+ ,"SEQUENCE_ERROR"
+ ,"PARAM_ERROR"
+ ,"MEM_ERROR"
+ ,"DATA_ERROR"
+ ,"DATA_ERROR_MAGIC"
+ ,"IO_ERROR"
+ ,"UNEXPECTED_EOF"
+ ,"OUTBUFF_FULL"
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+ ,"???" /* for future */
+};
+
+void flip_bit ( int bit )
+{
+ int byteno = bit / 8;
+ int bitno = bit % 8;
+ uchar mask = 1 << bitno;
+ //fprintf ( stderr, "(byte %d bit %d mask %d)",
+ // byteno, bitno, (int)mask );
+ zbuf[byteno] ^= mask;
+}
+
+int main ( int argc, char** argv )
+{
+ FILE* f;
+ int r;
+ int bit;
+ int i;
+
+ if (argc != 2) {
+ fprintf ( stderr, "usage: unzcrash filename\n" );
+ return 1;
+ }
+
+ f = fopen ( argv[1], "r" );
+ if (!f) {
+ fprintf ( stderr, "unzcrash: can't open %s\n", argv[1] );
+ return 1;
+ }
+
+ nIn = fread ( inbuf, 1, M_BLOCK, f );
+ fprintf ( stderr, "%d bytes read\n", nIn );
+
+ nZ = M_BLOCK;
+ r = BZ2_bzBuffToBuffCompress (
+ zbuf, &nZ, inbuf, nIn, 9, 0, 30 );
+
+ assert (r == BZ_OK);
+ fprintf ( stderr, "%d after compression\n", nZ );
+
+ for (bit = 0; bit < nZ*8; bit++) {
+ fprintf ( stderr, "bit %d ", bit );
+ flip_bit ( bit );
+ nOut = M_BLOCK_OUT;
+ r = BZ2_bzBuffToBuffDecompress (
+ outbuf, &nOut, zbuf, nZ, 0, 0 );
+ fprintf ( stderr, " %d %s ", r, bzerrorstrings[-r] );
+
+ if (r != BZ_OK) {
+ fprintf ( stderr, "\n" );
+ } else {
+ if (nOut != nIn) {
+ fprintf(stderr, "nIn/nOut mismatch %d %d\n", nIn, nOut );
+ return 1;
+ } else {
+ for (i = 0; i < nOut; i++)
+ if (inbuf[i] != outbuf[i]) {
+ fprintf(stderr, "mismatch at %d\n", i );
+ return 1;
+ }
+ if (i == nOut) fprintf(stderr, "really ok!\n" );
+ }
+ }
+
+ flip_bit ( bit );
+ }
+
+#if 0
+ assert (nOut == nIn);
+ for (i = 0; i < nOut; i++) {
+ if (inbuf[i] != outbuf[i]) {
+ fprintf ( stderr, "difference at %d !\n", i );
+ return 1;
+ }
+ }
+#endif
+
+ fprintf ( stderr, "all ok\n" );
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words0 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words0
new file mode 100644
index 000000000..fbf442ad6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words0
@@ -0,0 +1,9 @@
+
+If compilation produces errors, or a large number of warnings,
+please read README.COMPILATION.PROBLEMS -- you might be able to
+adjust the flags in this Makefile to improve matters.
+
+Also in README.COMPILATION.PROBLEMS are some hints that may help
+if your build produces an executable which is unable to correctly
+handle so-called 'large files' -- files of size 2GB or more.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words1 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words1
new file mode 100644
index 000000000..2e83de9f0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words1
@@ -0,0 +1,4 @@
+
+Doing 6 tests (3 compress, 3 uncompress) ...
+If there's a problem, things might stop at this point.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words2 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words2
new file mode 100644
index 000000000..203ee39c4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words2
@@ -0,0 +1,5 @@
+
+Checking test results. If any of the four "cmp"s which follow
+report any differences, something is wrong. If you can't easily
+figure out what, please let me know (jseward@acm.org).
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words3 b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words3
new file mode 100644
index 000000000..697266990
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/words3
@@ -0,0 +1,30 @@
+
+If you got this far and the 'cmp's didn't complain, it looks
+like you're in business.
+
+To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
+/usr/local/include, type
+
+ make install
+
+To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
+
+ make install PREFIX=/xxx/yyy
+
+If you are (justifiably) paranoid and want to see what 'make install'
+is going to do, you can first do
+
+ make -n install or
+ make -n install PREFIX=/xxx/yyy respectively.
+
+The -n instructs make to show the commands it would execute, but
+not actually execute them.
+
+Instructions for use are in the preformatted manual page, in the file
+bzip2.txt. For more detailed documentation, read the full manual.
+It is available in Postscript form (manual.ps), PDF form (manual.pdf),
+and HTML form (manual.html).
+
+You can also do "bzip2 --help" to see some helpful information.
+"bzip2 -L" displays the software license.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/xmlproc.sh b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/xmlproc.sh
new file mode 100644
index 000000000..16fe72b2d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/bzip2-1.0.8/xmlproc.sh
@@ -0,0 +1,114 @@
+#!/bin/bash
+# see the README file for usage etc.
+#
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.8 of 13 July 2019
+# Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ----------------------------------------------------------------
+
+
+usage() {
+ echo '';
+ echo 'Usage: xmlproc.sh -[option] <filename.xml>';
+ echo 'Specify a target from:';
+ echo '-v verify xml file conforms to dtd';
+ echo '-html output in html format (single file)';
+ echo '-ps output in postscript format';
+ echo '-pdf output in pdf format';
+ exit;
+}
+
+if test $# -ne 2; then
+ usage
+fi
+# assign the variable for the output type
+action=$1; shift
+# assign the output filename
+xmlfile=$1; shift
+# and check user input it correct
+if !(test -f $xmlfile); then
+ echo "No such file: $xmlfile";
+ exit;
+fi
+# some other stuff we will use
+OUT=output
+xsl_fo=bz-fo.xsl
+xsl_html=bz-html.xsl
+
+basename=$xmlfile
+basename=${basename//'.xml'/''}
+
+fofile="${basename}.fo"
+htmlfile="${basename}.html"
+pdffile="${basename}.pdf"
+psfile="${basename}.ps"
+xmlfmtfile="${basename}.fmt"
+
+# first process the xmlfile with CDATA tags
+./format.pl $xmlfile $xmlfmtfile
+# so the shell knows where the catalogs live
+export XML_CATALOG_FILES=/etc/xml/catalog
+
+# post-processing tidy up
+cleanup() {
+ echo "Cleaning up: $@"
+ while [ $# != 0 ]
+ do
+ arg=$1; shift;
+ echo " deleting $arg";
+ rm $arg
+ done
+}
+
+case $action in
+ -v)
+ flags='--noout --xinclude --noblanks --postvalid'
+ dtd='--dtdvalid http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd'
+ xmllint $flags $dtd $xmlfmtfile 2> $OUT
+ egrep 'error' $OUT
+ rm $OUT
+ ;;
+
+ -html)
+ echo "Creating $htmlfile ..."
+ xsltproc --nonet --xinclude -o $htmlfile $xsl_html $xmlfmtfile
+ cleanup $xmlfmtfile
+ ;;
+
+ -pdf)
+ echo "Creating $pdffile ..."
+ xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
+ pdfxmltex $fofile >$OUT </dev/null
+ pdfxmltex $fofile >$OUT </dev/null
+ pdfxmltex $fofile >$OUT </dev/null
+ cleanup $OUT $xmlfmtfile *.aux *.fo *.log *.out
+ ;;
+
+ -ps)
+ echo "Creating $psfile ..."
+ xsltproc --nonet --xinclude -o $fofile $xsl_fo $xmlfmtfile
+ pdfxmltex $fofile >$OUT </dev/null
+ pdfxmltex $fofile >$OUT </dev/null
+ pdfxmltex $fofile >$OUT </dev/null
+ pdftops $pdffile $psfile
+ cleanup $OUT $xmlfmtfile $pdffile *.aux *.fo *.log *.out
+# passivetex is broken, so we can't go this route yet.
+# xmltex $fofile >$OUT </dev/null
+# xmltex $fofile >$OUT </dev/null
+# xmltex $fofile >$OUT </dev/null
+# dvips -R -q -o bzip-manual.ps *.dvi
+ ;;
+
+ *)
+ usage
+ ;;
+esac
diff --git a/src/boost/tools/boost_install/test/iostreams/test.txt.bz2 b/src/boost/tools/boost_install/test/iostreams/test.txt.bz2
new file mode 100644
index 000000000..9e69cbf45
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/test.txt.bz2
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/test.txt.gz b/src/boost/tools/boost_install/test/iostreams/test.txt.gz
new file mode 100644
index 000000000..288a28236
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/test.txt.gz
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/test_bzip2.cpp b/src/boost/tools/boost_install/test/iostreams/test_bzip2.cpp
new file mode 100644
index 000000000..b4a2fa7f9
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/test_bzip2.cpp
@@ -0,0 +1,29 @@
+
+// Copyright 2019 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/iostreams/device/file.hpp>
+#include <boost/iostreams/filter/bzip2.hpp>
+#include <boost/iostreams/device/back_inserter.hpp>
+#include <boost/iostreams/copy.hpp>
+#include <boost/iostreams/compose.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+namespace io = boost::iostreams;
+
+int main()
+{
+ io::file_source fs( "test.txt.bz2", std::ios_base::binary );
+ io::bzip2_decompressor gz;
+
+ std::string s;
+ io::copy( io::compose( gz, fs ), io::back_inserter( s ) );
+
+ BOOST_TEST( s == "=== reference output ===" );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/test_gzip.cpp b/src/boost/tools/boost_install/test/iostreams/test_gzip.cpp
new file mode 100644
index 000000000..412f0a34f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/test_gzip.cpp
@@ -0,0 +1,29 @@
+
+// Copyright 2019 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/iostreams/device/file.hpp>
+#include <boost/iostreams/filter/gzip.hpp>
+#include <boost/iostreams/device/back_inserter.hpp>
+#include <boost/iostreams/copy.hpp>
+#include <boost/iostreams/compose.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+namespace io = boost::iostreams;
+
+int main()
+{
+ io::file_source fs( "test.txt.gz", std::ios_base::binary );
+ io::gzip_decompressor gz;
+
+ std::string s;
+ io::copy( io::compose( gz, fs ), io::back_inserter( s ) );
+
+ BOOST_TEST( s == "=== reference output ===" );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/CMakeLists.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/CMakeLists.txt
new file mode 100644
index 000000000..0fe939df6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/CMakeLists.txt
@@ -0,0 +1,249 @@
+cmake_minimum_required(VERSION 2.4.4)
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
+
+project(zlib C)
+
+set(VERSION "1.2.11")
+
+option(ASM686 "Enable building i686 assembly implementation")
+option(AMD64 "Enable building amd64 assembly implementation")
+
+set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
+set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
+set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
+set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
+set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
+
+include(CheckTypeSize)
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+include(CheckCSourceCompiles)
+enable_testing()
+
+check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(stdint.h HAVE_STDINT_H)
+check_include_file(stddef.h HAVE_STDDEF_H)
+
+#
+# Check to see if we have large file support
+#
+set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
+# We add these other definitions here because CheckTypeSize.cmake
+# in CMake 2.4.x does not automatically do so and we want
+# compatibility with CMake 2.4.x.
+if(HAVE_SYS_TYPES_H)
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
+endif()
+if(HAVE_STDINT_H)
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
+endif()
+if(HAVE_STDDEF_H)
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
+endif()
+check_type_size(off64_t OFF64_T)
+if(HAVE_OFF64_T)
+ add_definitions(-D_LARGEFILE64_SOURCE=1)
+endif()
+set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
+
+#
+# Check for fseeko
+#
+check_function_exists(fseeko HAVE_FSEEKO)
+if(NOT HAVE_FSEEKO)
+ add_definitions(-DNO_FSEEKO)
+endif()
+
+#
+# Check for unistd.h
+#
+check_include_file(unistd.h Z_HAVE_UNISTD_H)
+
+if(MSVC)
+ set(CMAKE_DEBUG_POSTFIX "d")
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+endif()
+
+if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
+ # If we're doing an out of source build and the user has a zconf.h
+ # in their source tree...
+ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
+ message(STATUS "Renaming")
+ message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
+ message(STATUS "to 'zconf.h.included' because this file is included with zlib")
+ message(STATUS "but CMake generates it automatically in the build directory.")
+ file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
+ endif()
+endif()
+
+set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
+configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
+ ${ZLIB_PC} @ONLY)
+configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
+ ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
+include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
+
+
+#============================================================================
+# zlib
+#============================================================================
+
+set(ZLIB_PUBLIC_HDRS
+ ${CMAKE_CURRENT_BINARY_DIR}/zconf.h
+ zlib.h
+)
+set(ZLIB_PRIVATE_HDRS
+ crc32.h
+ deflate.h
+ gzguts.h
+ inffast.h
+ inffixed.h
+ inflate.h
+ inftrees.h
+ trees.h
+ zutil.h
+)
+set(ZLIB_SRCS
+ adler32.c
+ compress.c
+ crc32.c
+ deflate.c
+ gzclose.c
+ gzlib.c
+ gzread.c
+ gzwrite.c
+ inflate.c
+ infback.c
+ inftrees.c
+ inffast.c
+ trees.c
+ uncompr.c
+ zutil.c
+)
+
+if(NOT MINGW)
+ set(ZLIB_DLL_SRCS
+ win32/zlib1.rc # If present will override custom build rule below.
+ )
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCC)
+ if(ASM686)
+ set(ZLIB_ASMS contrib/asm686/match.S)
+ elseif (AMD64)
+ set(ZLIB_ASMS contrib/amd64/amd64-match.S)
+ endif ()
+
+ if(ZLIB_ASMS)
+ add_definitions(-DASMV)
+ set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE)
+ endif()
+endif()
+
+if(MSVC)
+ if(ASM686)
+ ENABLE_LANGUAGE(ASM_MASM)
+ set(ZLIB_ASMS
+ contrib/masmx86/inffas32.asm
+ contrib/masmx86/match686.asm
+ )
+ elseif (AMD64)
+ ENABLE_LANGUAGE(ASM_MASM)
+ set(ZLIB_ASMS
+ contrib/masmx64/gvmat64.asm
+ contrib/masmx64/inffasx64.asm
+ )
+ endif()
+
+ if(ZLIB_ASMS)
+ add_definitions(-DASMV -DASMINF)
+ endif()
+endif()
+
+# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
+file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
+string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
+ "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
+
+if(MINGW)
+ # This gets us DLL resource information when compiling on MinGW.
+ if(NOT CMAKE_RC_COMPILER)
+ set(CMAKE_RC_COMPILER windres.exe)
+ endif()
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
+ COMMAND ${CMAKE_RC_COMPILER}
+ -D GCC_WINDRES
+ -I ${CMAKE_CURRENT_SOURCE_DIR}
+ -I ${CMAKE_CURRENT_BINARY_DIR}
+ -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
+ -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
+ set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
+endif(MINGW)
+
+add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
+add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
+set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
+set_target_properties(zlib PROPERTIES SOVERSION 1)
+
+if(NOT CYGWIN)
+ # This property causes shared libraries on Linux to have the full version
+ # encoded into their final filename. We disable this on Cygwin because
+ # it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll
+ # seems to be the default.
+ #
+ # This has no effect with MSVC, on that platform the version info for
+ # the DLL comes from the resource file win32/zlib1.rc
+ set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
+endif()
+
+if(UNIX)
+ # On unix-like platforms the library is almost always called libz
+ set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
+ if(NOT APPLE)
+ set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
+ endif()
+elseif(BUILD_SHARED_LIBS AND WIN32)
+ # Creates zlib1.dll when building shared library version
+ set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
+endif()
+
+if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
+ install(TARGETS zlib zlibstatic
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
+endif()
+if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
+ install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
+endif()
+if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
+ install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
+endif()
+if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
+ install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
+endif()
+
+#============================================================================
+# Example binaries
+#============================================================================
+
+add_executable(example test/example.c)
+target_link_libraries(example zlib)
+add_test(example example)
+
+add_executable(minigzip test/minigzip.c)
+target_link_libraries(minigzip zlib)
+
+if(HAVE_OFF64_T)
+ add_executable(example64 test/example.c)
+ target_link_libraries(example64 zlib)
+ set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
+ add_test(example64 example64)
+
+ add_executable(minigzip64 test/minigzip.c)
+ target_link_libraries(minigzip64 zlib)
+ set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
+endif()
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/ChangeLog b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/ChangeLog
new file mode 100644
index 000000000..30199a65a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/ChangeLog
@@ -0,0 +1,1515 @@
+
+ ChangeLog file for zlib
+
+Changes in 1.2.11 (15 Jan 2017)
+- Fix deflate stored bug when pulling last block from window
+- Permit immediate deflateParams changes before any deflate input
+
+Changes in 1.2.10 (2 Jan 2017)
+- Avoid warnings on snprintf() return value
+- Fix bug in deflate_stored() for zero-length input
+- Fix bug in gzwrite.c that produced corrupt gzip files
+- Remove files to be installed before copying them in Makefile.in
+- Add warnings when compiling with assembler code
+
+Changes in 1.2.9 (31 Dec 2016)
+- Fix contrib/minizip to permit unzipping with desktop API [Zouzou]
+- Improve contrib/blast to return unused bytes
+- Assure that gzoffset() is correct when appending
+- Improve compress() and uncompress() to support large lengths
+- Fix bug in test/example.c where error code not saved
+- Remedy Coverity warning [Randers-Pehrson]
+- Improve speed of gzprintf() in transparent mode
+- Fix inflateInit2() bug when windowBits is 16 or 32
+- Change DEBUG macro to ZLIB_DEBUG
+- Avoid uninitialized access by gzclose_w()
+- Allow building zlib outside of the source directory
+- Fix bug that accepted invalid zlib header when windowBits is zero
+- Fix gzseek() problem on MinGW due to buggy _lseeki64 there
+- Loop on write() calls in gzwrite.c in case of non-blocking I/O
+- Add --warn (-w) option to ./configure for more compiler warnings
+- Reject a window size of 256 bytes if not using the zlib wrapper
+- Fix bug when level 0 used with Z_HUFFMAN or Z_RLE
+- Add --debug (-d) option to ./configure to define ZLIB_DEBUG
+- Fix bugs in creating a very large gzip header
+- Add uncompress2() function, which returns the input size used
+- Assure that deflateParams() will not switch functions mid-block
+- Dramatically speed up deflation for level 0 (storing)
+- Add gzfread(), duplicating the interface of fread()
+- Add gzfwrite(), duplicating the interface of fwrite()
+- Add deflateGetDictionary() function
+- Use snprintf() for later versions of Microsoft C
+- Fix *Init macros to use z_ prefix when requested
+- Replace as400 with os400 for OS/400 support [Monnerat]
+- Add crc32_z() and adler32_z() functions with size_t lengths
+- Update Visual Studio project files [AraHaan]
+
+Changes in 1.2.8 (28 Apr 2013)
+- Update contrib/minizip/iowin32.c for Windows RT [Vollant]
+- Do not force Z_CONST for C++
+- Clean up contrib/vstudio [Roß]
+- Correct spelling error in zlib.h
+- Fix mixed line endings in contrib/vstudio
+
+Changes in 1.2.7.3 (13 Apr 2013)
+- Fix version numbers and DLL names in contrib/vstudio/*/zlib.rc
+
+Changes in 1.2.7.2 (13 Apr 2013)
+- Change check for a four-byte type back to hexadecimal
+- Fix typo in win32/Makefile.msc
+- Add casts in gzwrite.c for pointer differences
+
+Changes in 1.2.7.1 (24 Mar 2013)
+- Replace use of unsafe string functions with snprintf if available
+- Avoid including stddef.h on Windows for Z_SOLO compile [Niessink]
+- Fix gzgetc undefine when Z_PREFIX set [Turk]
+- Eliminate use of mktemp in Makefile (not always available)
+- Fix bug in 'F' mode for gzopen()
+- Add inflateGetDictionary() function
+- Correct comment in deflate.h
+- Use _snprintf for snprintf in Microsoft C
+- On Darwin, only use /usr/bin/libtool if libtool is not Apple
+- Delete "--version" file if created by "ar --version" [Richard G.]
+- Fix configure check for veracity of compiler error return codes
+- Fix CMake compilation of static lib for MSVC2010 x64
+- Remove unused variable in infback9.c
+- Fix argument checks in gzlog_compress() and gzlog_write()
+- Clean up the usage of z_const and respect const usage within zlib
+- Clean up examples/gzlog.[ch] comparisons of different types
+- Avoid shift equal to bits in type (caused endless loop)
+- Fix uninitialized value bug in gzputc() introduced by const patches
+- Fix memory allocation error in examples/zran.c [Nor]
+- Fix bug where gzopen(), gzclose() would write an empty file
+- Fix bug in gzclose() when gzwrite() runs out of memory
+- Check for input buffer malloc failure in examples/gzappend.c
+- Add note to contrib/blast to use binary mode in stdio
+- Fix comparisons of differently signed integers in contrib/blast
+- Check for invalid code length codes in contrib/puff
+- Fix serious but very rare decompression bug in inftrees.c
+- Update inflateBack() comments, since inflate() can be faster
+- Use underscored I/O function names for WINAPI_FAMILY
+- Add _tr_flush_bits to the external symbols prefixed by --zprefix
+- Add contrib/vstudio/vc10 pre-build step for static only
+- Quote --version-script argument in CMakeLists.txt
+- Don't specify --version-script on Apple platforms in CMakeLists.txt
+- Fix casting error in contrib/testzlib/testzlib.c
+- Fix types in contrib/minizip to match result of get_crc_table()
+- Simplify contrib/vstudio/vc10 with 'd' suffix
+- Add TOP support to win32/Makefile.msc
+- Suport i686 and amd64 assembler builds in CMakeLists.txt
+- Fix typos in the use of _LARGEFILE64_SOURCE in zconf.h
+- Add vc11 and vc12 build files to contrib/vstudio
+- Add gzvprintf() as an undocumented function in zlib
+- Fix configure for Sun shell
+- Remove runtime check in configure for four-byte integer type
+- Add casts and consts to ease user conversion to C++
+- Add man pages for minizip and miniunzip
+- In Makefile uninstall, don't rm if preceding cd fails
+- Do not return Z_BUF_ERROR if deflateParam() has nothing to write
+
+Changes in 1.2.7 (2 May 2012)
+- Replace use of memmove() with a simple copy for portability
+- Test for existence of strerror
+- Restore gzgetc_ for backward compatibility with 1.2.6
+- Fix build with non-GNU make on Solaris
+- Require gcc 4.0 or later on Mac OS X to use the hidden attribute
+- Include unistd.h for Watcom C
+- Use __WATCOMC__ instead of __WATCOM__
+- Do not use the visibility attribute if NO_VIZ defined
+- Improve the detection of no hidden visibility attribute
+- Avoid using __int64 for gcc or solo compilation
+- Cast to char * in gzprintf to avoid warnings [Zinser]
+- Fix make_vms.com for VAX [Zinser]
+- Don't use library or built-in byte swaps
+- Simplify test and use of gcc hidden attribute
+- Fix bug in gzclose_w() when gzwrite() fails to allocate memory
+- Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen()
+- Fix bug in test/minigzip.c for configure --solo
+- Fix contrib/vstudio project link errors [Mohanathas]
+- Add ability to choose the builder in make_vms.com [Schweda]
+- Add DESTDIR support to mingw32 win32/Makefile.gcc
+- Fix comments in win32/Makefile.gcc for proper usage
+- Allow overriding the default install locations for cmake
+- Generate and install the pkg-config file with cmake
+- Build both a static and a shared version of zlib with cmake
+- Include version symbols for cmake builds
+- If using cmake with MSVC, add the source directory to the includes
+- Remove unneeded EXTRA_CFLAGS from win32/Makefile.gcc [Truta]
+- Move obsolete emx makefile to old [Truta]
+- Allow the use of -Wundef when compiling or using zlib
+- Avoid the use of the -u option with mktemp
+- Improve inflate() documentation on the use of Z_FINISH
+- Recognize clang as gcc
+- Add gzopen_w() in Windows for wide character path names
+- Rename zconf.h in CMakeLists.txt to move it out of the way
+- Add source directory in CMakeLists.txt for building examples
+- Look in build directory for zlib.pc in CMakeLists.txt
+- Remove gzflags from zlibvc.def in vc9 and vc10
+- Fix contrib/minizip compilation in the MinGW environment
+- Update ./configure for Solaris, support --64 [Mooney]
+- Remove -R. from Solaris shared build (possible security issue)
+- Avoid race condition for parallel make (-j) running example
+- Fix type mismatch between get_crc_table() and crc_table
+- Fix parsing of version with "-" in CMakeLists.txt [Snider, Ziegler]
+- Fix the path to zlib.map in CMakeLists.txt
+- Force the native libtool in Mac OS X to avoid GNU libtool [Beebe]
+- Add instructions to win32/Makefile.gcc for shared install [Torri]
+
+Changes in 1.2.6.1 (12 Feb 2012)
+- Avoid the use of the Objective-C reserved name "id"
+- Include io.h in gzguts.h for Microsoft compilers
+- Fix problem with ./configure --prefix and gzgetc macro
+- Include gz_header definition when compiling zlib solo
+- Put gzflags() functionality back in zutil.c
+- Avoid library header include in crc32.c for Z_SOLO
+- Use name in GCC_CLASSIC as C compiler for coverage testing, if set
+- Minor cleanup in contrib/minizip/zip.c [Vollant]
+- Update make_vms.com [Zinser]
+- Remove unnecessary gzgetc_ function
+- Use optimized byte swap operations for Microsoft and GNU [Snyder]
+- Fix minor typo in zlib.h comments [Rzesniowiecki]
+
+Changes in 1.2.6 (29 Jan 2012)
+- Update the Pascal interface in contrib/pascal
+- Fix function numbers for gzgetc_ in zlibvc.def files
+- Fix configure.ac for contrib/minizip [Schiffer]
+- Fix large-entry detection in minizip on 64-bit systems [Schiffer]
+- Have ./configure use the compiler return code for error indication
+- Fix CMakeLists.txt for cross compilation [McClure]
+- Fix contrib/minizip/zip.c for 64-bit architectures [Dalsnes]
+- Fix compilation of contrib/minizip on FreeBSD [Marquez]
+- Correct suggested usages in win32/Makefile.msc [Shachar, Horvath]
+- Include io.h for Turbo C / Borland C on all platforms [Truta]
+- Make version explicit in contrib/minizip/configure.ac [Bosmans]
+- Avoid warning for no encryption in contrib/minizip/zip.c [Vollant]
+- Minor cleanup up contrib/minizip/unzip.c [Vollant]
+- Fix bug when compiling minizip with C++ [Vollant]
+- Protect for long name and extra fields in contrib/minizip [Vollant]
+- Avoid some warnings in contrib/minizip [Vollant]
+- Add -I../.. -L../.. to CFLAGS for minizip and miniunzip
+- Add missing libs to minizip linker command
+- Add support for VPATH builds in contrib/minizip
+- Add an --enable-demos option to contrib/minizip/configure
+- Add the generation of configure.log by ./configure
+- Exit when required parameters not provided to win32/Makefile.gcc
+- Have gzputc return the character written instead of the argument
+- Use the -m option on ldconfig for BSD systems [Tobias]
+- Correct in zlib.map when deflateResetKeep was added
+
+Changes in 1.2.5.3 (15 Jan 2012)
+- Restore gzgetc function for binary compatibility
+- Do not use _lseeki64 under Borland C++ [Truta]
+- Update win32/Makefile.msc to build test/*.c [Truta]
+- Remove old/visualc6 given CMakefile and other alternatives
+- Update AS400 build files and documentation [Monnerat]
+- Update win32/Makefile.gcc to build test/*.c [Truta]
+- Permit stronger flushes after Z_BLOCK flushes
+- Avoid extraneous empty blocks when doing empty flushes
+- Permit Z_NULL arguments to deflatePending
+- Allow deflatePrime() to insert bits in the middle of a stream
+- Remove second empty static block for Z_PARTIAL_FLUSH
+- Write out all of the available bits when using Z_BLOCK
+- Insert the first two strings in the hash table after a flush
+
+Changes in 1.2.5.2 (17 Dec 2011)
+- fix ld error: unable to find version dependency 'ZLIB_1.2.5'
+- use relative symlinks for shared libs
+- Avoid searching past window for Z_RLE strategy
+- Assure that high-water mark initialization is always applied in deflate
+- Add assertions to fill_window() in deflate.c to match comments
+- Update python link in README
+- Correct spelling error in gzread.c
+- Fix bug in gzgets() for a concatenated empty gzip stream
+- Correct error in comment for gz_make()
+- Change gzread() and related to ignore junk after gzip streams
+- Allow gzread() and related to continue after gzclearerr()
+- Allow gzrewind() and gzseek() after a premature end-of-file
+- Simplify gzseek() now that raw after gzip is ignored
+- Change gzgetc() to a macro for speed (~40% speedup in testing)
+- Fix gzclose() to return the actual error last encountered
+- Always add large file support for windows
+- Include zconf.h for windows large file support
+- Include zconf.h.cmakein for windows large file support
+- Update zconf.h.cmakein on make distclean
+- Merge vestigial vsnprintf determination from zutil.h to gzguts.h
+- Clarify how gzopen() appends in zlib.h comments
+- Correct documentation of gzdirect() since junk at end now ignored
+- Add a transparent write mode to gzopen() when 'T' is in the mode
+- Update python link in zlib man page
+- Get inffixed.h and MAKEFIXED result to match
+- Add a ./config --solo option to make zlib subset with no library use
+- Add undocumented inflateResetKeep() function for CAB file decoding
+- Add --cover option to ./configure for gcc coverage testing
+- Add #define ZLIB_CONST option to use const in the z_stream interface
+- Add comment to gzdopen() in zlib.h to use dup() when using fileno()
+- Note behavior of uncompress() to provide as much data as it can
+- Add files in contrib/minizip to aid in building libminizip
+- Split off AR options in Makefile.in and configure
+- Change ON macro to Z_ARG to avoid application conflicts
+- Facilitate compilation with Borland C++ for pragmas and vsnprintf
+- Include io.h for Turbo C / Borland C++
+- Move example.c and minigzip.c to test/
+- Simplify incomplete code table filling in inflate_table()
+- Remove code from inflate.c and infback.c that is impossible to execute
+- Test the inflate code with full coverage
+- Allow deflateSetDictionary, inflateSetDictionary at any time (in raw)
+- Add deflateResetKeep and fix inflateResetKeep to retain dictionary
+- Fix gzwrite.c to accommodate reduced memory zlib compilation
+- Have inflate() with Z_FINISH avoid the allocation of a window
+- Do not set strm->adler when doing raw inflate
+- Fix gzeof() to behave just like feof() when read is not past end of file
+- Fix bug in gzread.c when end-of-file is reached
+- Avoid use of Z_BUF_ERROR in gz* functions except for premature EOF
+- Document gzread() capability to read concurrently written files
+- Remove hard-coding of resource compiler in CMakeLists.txt [Blammo]
+
+Changes in 1.2.5.1 (10 Sep 2011)
+- Update FAQ entry on shared builds (#13)
+- Avoid symbolic argument to chmod in Makefile.in
+- Fix bug and add consts in contrib/puff [Oberhumer]
+- Update contrib/puff/zeros.raw test file to have all block types
+- Add full coverage test for puff in contrib/puff/Makefile
+- Fix static-only-build install in Makefile.in
+- Fix bug in unzGetCurrentFileInfo() in contrib/minizip [Kuno]
+- Add libz.a dependency to shared in Makefile.in for parallel builds
+- Spell out "number" (instead of "nb") in zlib.h for total_in, total_out
+- Replace $(...) with `...` in configure for non-bash sh [Bowler]
+- Add darwin* to Darwin* and solaris* to SunOS\ 5* in configure [Groffen]
+- Add solaris* to Linux* in configure to allow gcc use [Groffen]
+- Add *bsd* to Linux* case in configure [Bar-Lev]
+- Add inffast.obj to dependencies in win32/Makefile.msc
+- Correct spelling error in deflate.h [Kohler]
+- Change libzdll.a again to libz.dll.a (!) in win32/Makefile.gcc
+- Add test to configure for GNU C looking for gcc in output of $cc -v
+- Add zlib.pc generation to win32/Makefile.gcc [Weigelt]
+- Fix bug in zlib.h for _FILE_OFFSET_BITS set and _LARGEFILE64_SOURCE not
+- Add comment in zlib.h that adler32_combine with len2 < 0 makes no sense
+- Make NO_DIVIDE option in adler32.c much faster (thanks to John Reiser)
+- Make stronger test in zconf.h to include unistd.h for LFS
+- Apply Darwin patches for 64-bit file offsets to contrib/minizip [Slack]
+- Fix zlib.h LFS support when Z_PREFIX used
+- Add updated as400 support (removed from old) [Monnerat]
+- Avoid deflate sensitivity to volatile input data
+- Avoid division in adler32_combine for NO_DIVIDE
+- Clarify the use of Z_FINISH with deflateBound() amount of space
+- Set binary for output file in puff.c
+- Use u4 type for crc_table to avoid conversion warnings
+- Apply casts in zlib.h to avoid conversion warnings
+- Add OF to prototypes for adler32_combine_ and crc32_combine_ [Miller]
+- Improve inflateSync() documentation to note indeterminancy
+- Add deflatePending() function to return the amount of pending output
+- Correct the spelling of "specification" in FAQ [Randers-Pehrson]
+- Add a check in configure for stdarg.h, use for gzprintf()
+- Check that pointers fit in ints when gzprint() compiled old style
+- Add dummy name before $(SHAREDLIBV) in Makefile [Bar-Lev, Bowler]
+- Delete line in configure that adds -L. libz.a to LDFLAGS [Weigelt]
+- Add debug records in assmebler code [Londer]
+- Update RFC references to use http://tools.ietf.org/html/... [Li]
+- Add --archs option, use of libtool to configure for Mac OS X [Borstel]
+
+Changes in 1.2.5 (19 Apr 2010)
+- Disable visibility attribute in win32/Makefile.gcc [Bar-Lev]
+- Default to libdir as sharedlibdir in configure [Nieder]
+- Update copyright dates on modified source files
+- Update trees.c to be able to generate modified trees.h
+- Exit configure for MinGW, suggesting win32/Makefile.gcc
+- Check for NULL path in gz_open [Homurlu]
+
+Changes in 1.2.4.5 (18 Apr 2010)
+- Set sharedlibdir in configure [Torok]
+- Set LDFLAGS in Makefile.in [Bar-Lev]
+- Avoid mkdir objs race condition in Makefile.in [Bowler]
+- Add ZLIB_INTERNAL in front of internal inter-module functions and arrays
+- Define ZLIB_INTERNAL to hide internal functions and arrays for GNU C
+- Don't use hidden attribute when it is a warning generator (e.g. Solaris)
+
+Changes in 1.2.4.4 (18 Apr 2010)
+- Fix CROSS_PREFIX executable testing, CHOST extract, mingw* [Torok]
+- Undefine _LARGEFILE64_SOURCE in zconf.h if it is zero, but not if empty
+- Try to use bash or ksh regardless of functionality of /bin/sh
+- Fix configure incompatibility with NetBSD sh
+- Remove attempt to run under bash or ksh since have better NetBSD fix
+- Fix win32/Makefile.gcc for MinGW [Bar-Lev]
+- Add diagnostic messages when using CROSS_PREFIX in configure
+- Added --sharedlibdir option to configure [Weigelt]
+- Use hidden visibility attribute when available [Frysinger]
+
+Changes in 1.2.4.3 (10 Apr 2010)
+- Only use CROSS_PREFIX in configure for ar and ranlib if they exist
+- Use CROSS_PREFIX for nm [Bar-Lev]
+- Assume _LARGEFILE64_SOURCE defined is equivalent to true
+- Avoid use of undefined symbols in #if with && and ||
+- Make *64 prototypes in gzguts.h consistent with functions
+- Add -shared load option for MinGW in configure [Bowler]
+- Move z_off64_t to public interface, use instead of off64_t
+- Remove ! from shell test in configure (not portable to Solaris)
+- Change +0 macro tests to -0 for possibly increased portability
+
+Changes in 1.2.4.2 (9 Apr 2010)
+- Add consistent carriage returns to readme.txt's in masmx86 and masmx64
+- Really provide prototypes for *64 functions when building without LFS
+- Only define unlink() in minigzip.c if unistd.h not included
+- Update README to point to contrib/vstudio project files
+- Move projects/vc6 to old/ and remove projects/
+- Include stdlib.h in minigzip.c for setmode() definition under WinCE
+- Clean up assembler builds in win32/Makefile.msc [Rowe]
+- Include sys/types.h for Microsoft for off_t definition
+- Fix memory leak on error in gz_open()
+- Symbolize nm as $NM in configure [Weigelt]
+- Use TEST_LDSHARED instead of LDSHARED to link test programs [Weigelt]
+- Add +0 to _FILE_OFFSET_BITS and _LFS64_LARGEFILE in case not defined
+- Fix bug in gzeof() to take into account unused input data
+- Avoid initialization of structures with variables in puff.c
+- Updated win32/README-WIN32.txt [Rowe]
+
+Changes in 1.2.4.1 (28 Mar 2010)
+- Remove the use of [a-z] constructs for sed in configure [gentoo 310225]
+- Remove $(SHAREDLIB) from LIBS in Makefile.in [Creech]
+- Restore "for debugging" comment on sprintf() in gzlib.c
+- Remove fdopen for MVS from gzguts.h
+- Put new README-WIN32.txt in win32 [Rowe]
+- Add check for shell to configure and invoke another shell if needed
+- Fix big fat stinking bug in gzseek() on uncompressed files
+- Remove vestigial F_OPEN64 define in zutil.h
+- Set and check the value of _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE
+- Avoid errors on non-LFS systems when applications define LFS macros
+- Set EXE to ".exe" in configure for MINGW [Kahle]
+- Match crc32() in crc32.c exactly to the prototype in zlib.h [Sherrill]
+- Add prefix for cross-compilation in win32/makefile.gcc [Bar-Lev]
+- Add DLL install in win32/makefile.gcc [Bar-Lev]
+- Allow Linux* or linux* from uname in configure [Bar-Lev]
+- Allow ldconfig to be redefined in configure and Makefile.in [Bar-Lev]
+- Add cross-compilation prefixes to configure [Bar-Lev]
+- Match type exactly in gz_load() invocation in gzread.c
+- Match type exactly of zcalloc() in zutil.c to zlib.h alloc_func
+- Provide prototypes for *64 functions when building zlib without LFS
+- Don't use -lc when linking shared library on MinGW
+- Remove errno.h check in configure and vestigial errno code in zutil.h
+
+Changes in 1.2.4 (14 Mar 2010)
+- Fix VER3 extraction in configure for no fourth subversion
+- Update zlib.3, add docs to Makefile.in to make .pdf out of it
+- Add zlib.3.pdf to distribution
+- Don't set error code in gzerror() if passed pointer is NULL
+- Apply destination directory fixes to CMakeLists.txt [Lowman]
+- Move #cmakedefine's to a new zconf.in.cmakein
+- Restore zconf.h for builds that don't use configure or cmake
+- Add distclean to dummy Makefile for convenience
+- Update and improve INDEX, README, and FAQ
+- Update CMakeLists.txt for the return of zconf.h [Lowman]
+- Update contrib/vstudio/vc9 and vc10 [Vollant]
+- Change libz.dll.a back to libzdll.a in win32/Makefile.gcc
+- Apply license and readme changes to contrib/asm686 [Raiter]
+- Check file name lengths and add -c option in minigzip.c [Li]
+- Update contrib/amd64 and contrib/masmx86/ [Vollant]
+- Avoid use of "eof" parameter in trees.c to not shadow library variable
+- Update make_vms.com for removal of zlibdefs.h [Zinser]
+- Update assembler code and vstudio projects in contrib [Vollant]
+- Remove outdated assembler code contrib/masm686 and contrib/asm586
+- Remove old vc7 and vc8 from contrib/vstudio
+- Update win32/Makefile.msc, add ZLIB_VER_SUBREVISION [Rowe]
+- Fix memory leaks in gzclose_r() and gzclose_w(), file leak in gz_open()
+- Add contrib/gcc_gvmat64 for longest_match and inflate_fast [Vollant]
+- Remove *64 functions from win32/zlib.def (they're not 64-bit yet)
+- Fix bug in void-returning vsprintf() case in gzwrite.c
+- Fix name change from inflate.h in contrib/inflate86/inffas86.c
+- Check if temporary file exists before removing in make_vms.com [Zinser]
+- Fix make install and uninstall for --static option
+- Fix usage of _MSC_VER in gzguts.h and zutil.h [Truta]
+- Update readme.txt in contrib/masmx64 and masmx86 to assemble
+
+Changes in 1.2.3.9 (21 Feb 2010)
+- Expunge gzio.c
+- Move as400 build information to old
+- Fix updates in contrib/minizip and contrib/vstudio
+- Add const to vsnprintf test in configure to avoid warnings [Weigelt]
+- Delete zconf.h (made by configure) [Weigelt]
+- Change zconf.in.h to zconf.h.in per convention [Weigelt]
+- Check for NULL buf in gzgets()
+- Return empty string for gzgets() with len == 1 (like fgets())
+- Fix description of gzgets() in zlib.h for end-of-file, NULL return
+- Update minizip to 1.1 [Vollant]
+- Avoid MSVC loss of data warnings in gzread.c, gzwrite.c
+- Note in zlib.h that gzerror() should be used to distinguish from EOF
+- Remove use of snprintf() from gzlib.c
+- Fix bug in gzseek()
+- Update contrib/vstudio, adding vc9 and vc10 [Kuno, Vollant]
+- Fix zconf.h generation in CMakeLists.txt [Lowman]
+- Improve comments in zconf.h where modified by configure
+
+Changes in 1.2.3.8 (13 Feb 2010)
+- Clean up text files (tabs, trailing whitespace, etc.) [Oberhumer]
+- Use z_off64_t in gz_zero() and gz_skip() to match state->skip
+- Avoid comparison problem when sizeof(int) == sizeof(z_off64_t)
+- Revert to Makefile.in from 1.2.3.6 (live with the clutter)
+- Fix missing error return in gzflush(), add zlib.h note
+- Add *64 functions to zlib.map [Levin]
+- Fix signed/unsigned comparison in gz_comp()
+- Use SFLAGS when testing shared linking in configure
+- Add --64 option to ./configure to use -m64 with gcc
+- Fix ./configure --help to correctly name options
+- Have make fail if a test fails [Levin]
+- Avoid buffer overrun in contrib/masmx64/gvmat64.asm [Simpson]
+- Remove assembler object files from contrib
+
+Changes in 1.2.3.7 (24 Jan 2010)
+- Always gzopen() with O_LARGEFILE if available
+- Fix gzdirect() to work immediately after gzopen() or gzdopen()
+- Make gzdirect() more precise when the state changes while reading
+- Improve zlib.h documentation in many places
+- Catch memory allocation failure in gz_open()
+- Complete close operation if seek forward in gzclose_w() fails
+- Return Z_ERRNO from gzclose_r() if close() fails
+- Return Z_STREAM_ERROR instead of EOF for gzclose() being passed NULL
+- Return zero for gzwrite() errors to match zlib.h description
+- Return -1 on gzputs() error to match zlib.h description
+- Add zconf.in.h to allow recovery from configure modification [Weigelt]
+- Fix static library permissions in Makefile.in [Weigelt]
+- Avoid warnings in configure tests that hide functionality [Weigelt]
+- Add *BSD and DragonFly to Linux case in configure [gentoo 123571]
+- Change libzdll.a to libz.dll.a in win32/Makefile.gcc [gentoo 288212]
+- Avoid access of uninitialized data for first inflateReset2 call [Gomes]
+- Keep object files in subdirectories to reduce the clutter somewhat
+- Remove default Makefile and zlibdefs.h, add dummy Makefile
+- Add new external functions to Z_PREFIX, remove duplicates, z_z_ -> z_
+- Remove zlibdefs.h completely -- modify zconf.h instead
+
+Changes in 1.2.3.6 (17 Jan 2010)
+- Avoid void * arithmetic in gzread.c and gzwrite.c
+- Make compilers happier with const char * for gz_error message
+- Avoid unused parameter warning in inflate.c
+- Avoid signed-unsigned comparison warning in inflate.c
+- Indent #pragma's for traditional C
+- Fix usage of strwinerror() in glib.c, change to gz_strwinerror()
+- Correct email address in configure for system options
+- Update make_vms.com and add make_vms.com to contrib/minizip [Zinser]
+- Update zlib.map [Brown]
+- Fix Makefile.in for Solaris 10 make of example64 and minizip64 [Torok]
+- Apply various fixes to CMakeLists.txt [Lowman]
+- Add checks on len in gzread() and gzwrite()
+- Add error message for no more room for gzungetc()
+- Remove zlib version check in gzwrite()
+- Defer compression of gzprintf() result until need to
+- Use snprintf() in gzdopen() if available
+- Remove USE_MMAP configuration determination (only used by minigzip)
+- Remove examples/pigz.c (available separately)
+- Update examples/gun.c to 1.6
+
+Changes in 1.2.3.5 (8 Jan 2010)
+- Add space after #if in zutil.h for some compilers
+- Fix relatively harmless bug in deflate_fast() [Exarevsky]
+- Fix same problem in deflate_slow()
+- Add $(SHAREDLIBV) to LIBS in Makefile.in [Brown]
+- Add deflate_rle() for faster Z_RLE strategy run-length encoding
+- Add deflate_huff() for faster Z_HUFFMAN_ONLY encoding
+- Change name of "write" variable in inffast.c to avoid library collisions
+- Fix premature EOF from gzread() in gzio.c [Brown]
+- Use zlib header window size if windowBits is 0 in inflateInit2()
+- Remove compressBound() call in deflate.c to avoid linking compress.o
+- Replace use of errno in gz* with functions, support WinCE [Alves]
+- Provide alternative to perror() in minigzip.c for WinCE [Alves]
+- Don't use _vsnprintf on later versions of MSVC [Lowman]
+- Add CMake build script and input file [Lowman]
+- Update contrib/minizip to 1.1 [Svensson, Vollant]
+- Moved nintendods directory from contrib to .
+- Replace gzio.c with a new set of routines with the same functionality
+- Add gzbuffer(), gzoffset(), gzclose_r(), gzclose_w() as part of above
+- Update contrib/minizip to 1.1b
+- Change gzeof() to return 0 on error instead of -1 to agree with zlib.h
+
+Changes in 1.2.3.4 (21 Dec 2009)
+- Use old school .SUFFIXES in Makefile.in for FreeBSD compatibility
+- Update comments in configure and Makefile.in for default --shared
+- Fix test -z's in configure [Marquess]
+- Build examplesh and minigzipsh when not testing
+- Change NULL's to Z_NULL's in deflate.c and in comments in zlib.h
+- Import LDFLAGS from the environment in configure
+- Fix configure to populate SFLAGS with discovered CFLAGS options
+- Adapt make_vms.com to the new Makefile.in [Zinser]
+- Add zlib2ansi script for C++ compilation [Marquess]
+- Add _FILE_OFFSET_BITS=64 test to make test (when applicable)
+- Add AMD64 assembler code for longest match to contrib [Teterin]
+- Include options from $SFLAGS when doing $LDSHARED
+- Simplify 64-bit file support by introducing z_off64_t type
+- Make shared object files in objs directory to work around old Sun cc
+- Use only three-part version number for Darwin shared compiles
+- Add rc option to ar in Makefile.in for when ./configure not run
+- Add -WI,-rpath,. to LDFLAGS for OSF 1 V4*
+- Set LD_LIBRARYN32_PATH for SGI IRIX shared compile
+- Protect against _FILE_OFFSET_BITS being defined when compiling zlib
+- Rename Makefile.in targets allstatic to static and allshared to shared
+- Fix static and shared Makefile.in targets to be independent
+- Correct error return bug in gz_open() by setting state [Brown]
+- Put spaces before ;;'s in configure for better sh compatibility
+- Add pigz.c (parallel implementation of gzip) to examples/
+- Correct constant in crc32.c to UL [Leventhal]
+- Reject negative lengths in crc32_combine()
+- Add inflateReset2() function to work like inflateEnd()/inflateInit2()
+- Include sys/types.h for _LARGEFILE64_SOURCE [Brown]
+- Correct typo in doc/algorithm.txt [Janik]
+- Fix bug in adler32_combine() [Zhu]
+- Catch missing-end-of-block-code error in all inflates and in puff
+ Assures that random input to inflate eventually results in an error
+- Added enough.c (calculation of ENOUGH for inftrees.h) to examples/
+- Update ENOUGH and its usage to reflect discovered bounds
+- Fix gzerror() error report on empty input file [Brown]
+- Add ush casts in trees.c to avoid pedantic runtime errors
+- Fix typo in zlib.h uncompress() description [Reiss]
+- Correct inflate() comments with regard to automatic header detection
+- Remove deprecation comment on Z_PARTIAL_FLUSH (it stays)
+- Put new version of gzlog (2.0) in examples with interruption recovery
+- Add puff compile option to permit invalid distance-too-far streams
+- Add puff TEST command options, ability to read piped input
+- Prototype the *64 functions in zlib.h when _FILE_OFFSET_BITS == 64, but
+ _LARGEFILE64_SOURCE not defined
+- Fix Z_FULL_FLUSH to truly erase the past by resetting s->strstart
+- Fix deflateSetDictionary() to use all 32K for output consistency
+- Remove extraneous #define MIN_LOOKAHEAD in deflate.c (in deflate.h)
+- Clear bytes after deflate lookahead to avoid use of uninitialized data
+- Change a limit in inftrees.c to be more transparent to Coverity Prevent
+- Update win32/zlib.def with exported symbols from zlib.h
+- Correct spelling errors in zlib.h [Willem, Sobrado]
+- Allow Z_BLOCK for deflate() to force a new block
+- Allow negative bits in inflatePrime() to delete existing bit buffer
+- Add Z_TREES flush option to inflate() to return at end of trees
+- Add inflateMark() to return current state information for random access
+- Add Makefile for NintendoDS to contrib [Costa]
+- Add -w in configure compile tests to avoid spurious warnings [Beucler]
+- Fix typos in zlib.h comments for deflateSetDictionary()
+- Fix EOF detection in transparent gzread() [Maier]
+
+Changes in 1.2.3.3 (2 October 2006)
+- Make --shared the default for configure, add a --static option
+- Add compile option to permit invalid distance-too-far streams
+- Add inflateUndermine() function which is required to enable above
+- Remove use of "this" variable name for C++ compatibility [Marquess]
+- Add testing of shared library in make test, if shared library built
+- Use ftello() and fseeko() if available instead of ftell() and fseek()
+- Provide two versions of all functions that use the z_off_t type for
+ binary compatibility -- a normal version and a 64-bit offset version,
+ per the Large File Support Extension when _LARGEFILE64_SOURCE is
+ defined; use the 64-bit versions by default when _FILE_OFFSET_BITS
+ is defined to be 64
+- Add a --uname= option to configure to perhaps help with cross-compiling
+
+Changes in 1.2.3.2 (3 September 2006)
+- Turn off silly Borland warnings [Hay]
+- Use off64_t and define _LARGEFILE64_SOURCE when present
+- Fix missing dependency on inffixed.h in Makefile.in
+- Rig configure --shared to build both shared and static [Teredesai, Truta]
+- Remove zconf.in.h and instead create a new zlibdefs.h file
+- Fix contrib/minizip/unzip.c non-encrypted after encrypted [Vollant]
+- Add treebuild.xml (see http://treebuild.metux.de/) [Weigelt]
+
+Changes in 1.2.3.1 (16 August 2006)
+- Add watcom directory with OpenWatcom make files [Daniel]
+- Remove #undef of FAR in zconf.in.h for MVS [Fedtke]
+- Update make_vms.com [Zinser]
+- Use -fPIC for shared build in configure [Teredesai, Nicholson]
+- Use only major version number for libz.so on IRIX and OSF1 [Reinholdtsen]
+- Use fdopen() (not _fdopen()) for Interix in zutil.h [Bäck]
+- Add some FAQ entries about the contrib directory
+- Update the MVS question in the FAQ
+- Avoid extraneous reads after EOF in gzio.c [Brown]
+- Correct spelling of "successfully" in gzio.c [Randers-Pehrson]
+- Add comments to zlib.h about gzerror() usage [Brown]
+- Set extra flags in gzip header in gzopen() like deflate() does
+- Make configure options more compatible with double-dash conventions
+ [Weigelt]
+- Clean up compilation under Solaris SunStudio cc [Rowe, Reinholdtsen]
+- Fix uninstall target in Makefile.in [Truta]
+- Add pkgconfig support [Weigelt]
+- Use $(DESTDIR) macro in Makefile.in [Reinholdtsen, Weigelt]
+- Replace set_data_type() with a more accurate detect_data_type() in
+ trees.c, according to the txtvsbin.txt document [Truta]
+- Swap the order of #include <stdio.h> and #include "zlib.h" in
+ gzio.c, example.c and minigzip.c [Truta]
+- Shut up annoying VS2005 warnings about standard C deprecation [Rowe,
+ Truta] (where?)
+- Fix target "clean" from win32/Makefile.bor [Truta]
+- Create .pdb and .manifest files in win32/makefile.msc [Ziegler, Rowe]
+- Update zlib www home address in win32/DLL_FAQ.txt [Truta]
+- Update contrib/masmx86/inffas32.asm for VS2005 [Vollant, Van Wassenhove]
+- Enable browse info in the "Debug" and "ASM Debug" configurations in
+ the Visual C++ 6 project, and set (non-ASM) "Debug" as default [Truta]
+- Add pkgconfig support [Weigelt]
+- Add ZLIB_VER_MAJOR, ZLIB_VER_MINOR and ZLIB_VER_REVISION in zlib.h,
+ for use in win32/zlib1.rc [Polushin, Rowe, Truta]
+- Add a document that explains the new text detection scheme to
+ doc/txtvsbin.txt [Truta]
+- Add rfc1950.txt, rfc1951.txt and rfc1952.txt to doc/ [Truta]
+- Move algorithm.txt into doc/ [Truta]
+- Synchronize FAQ with website
+- Fix compressBound(), was low for some pathological cases [Fearnley]
+- Take into account wrapper variations in deflateBound()
+- Set examples/zpipe.c input and output to binary mode for Windows
+- Update examples/zlib_how.html with new zpipe.c (also web site)
+- Fix some warnings in examples/gzlog.c and examples/zran.c (it seems
+ that gcc became pickier in 4.0)
+- Add zlib.map for Linux: "All symbols from zlib-1.1.4 remain
+ un-versioned, the patch adds versioning only for symbols introduced in
+ zlib-1.2.0 or later. It also declares as local those symbols which are
+ not designed to be exported." [Levin]
+- Update Z_PREFIX list in zconf.in.h, add --zprefix option to configure
+- Do not initialize global static by default in trees.c, add a response
+ NO_INIT_GLOBAL_POINTERS to initialize them if needed [Marquess]
+- Don't use strerror() in gzio.c under WinCE [Yakimov]
+- Don't use errno.h in zutil.h under WinCE [Yakimov]
+- Move arguments for AR to its usage to allow replacing ar [Marot]
+- Add HAVE_VISIBILITY_PRAGMA in zconf.in.h for Mozilla [Randers-Pehrson]
+- Improve inflateInit() and inflateInit2() documentation
+- Fix structure size comment in inflate.h
+- Change configure help option from --h* to --help [Santos]
+
+Changes in 1.2.3 (18 July 2005)
+- Apply security vulnerability fixes to contrib/infback9 as well
+- Clean up some text files (carriage returns, trailing space)
+- Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant]
+
+Changes in 1.2.2.4 (11 July 2005)
+- Add inflatePrime() function for starting inflation at bit boundary
+- Avoid some Visual C warnings in deflate.c
+- Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit
+ compile
+- Fix some spelling errors in comments [Betts]
+- Correct inflateInit2() error return documentation in zlib.h
+- Add zran.c example of compressed data random access to examples
+ directory, shows use of inflatePrime()
+- Fix cast for assignments to strm->state in inflate.c and infback.c
+- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer]
+- Move declarations of gf2 functions to right place in crc32.c [Oberhumer]
+- Add cast in trees.c t avoid a warning [Oberhumer]
+- Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer]
+- Update make_vms.com [Zinser]
+- Initialize state->write in inflateReset() since copied in inflate_fast()
+- Be more strict on incomplete code sets in inflate_table() and increase
+ ENOUGH and MAXD -- this repairs a possible security vulnerability for
+ invalid inflate input. Thanks to Tavis Ormandy and Markus Oberhumer for
+ discovering the vulnerability and providing test cases.
+- Add ia64 support to configure for HP-UX [Smith]
+- Add error return to gzread() for format or i/o error [Levin]
+- Use malloc.h for OS/2 [Necasek]
+
+Changes in 1.2.2.3 (27 May 2005)
+- Replace 1U constants in inflate.c and inftrees.c for 64-bit compile
+- Typecast fread() return values in gzio.c [Vollant]
+- Remove trailing space in minigzip.c outmode (VC++ can't deal with it)
+- Fix crc check bug in gzread() after gzungetc() [Heiner]
+- Add the deflateTune() function to adjust internal compression parameters
+- Add a fast gzip decompressor, gun.c, to examples (use of inflateBack)
+- Remove an incorrect assertion in examples/zpipe.c
+- Add C++ wrapper in infback9.h [Donais]
+- Fix bug in inflateCopy() when decoding fixed codes
+- Note in zlib.h how much deflateSetDictionary() actually uses
+- Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used)
+- Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer]
+- Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer]
+- Add gzdirect() function to indicate transparent reads
+- Update contrib/minizip [Vollant]
+- Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer]
+- Add casts in crc32.c to avoid warnings [Oberhumer]
+- Add contrib/masmx64 [Vollant]
+- Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant]
+
+Changes in 1.2.2.2 (30 December 2004)
+- Replace structure assignments in deflate.c and inflate.c with zmemcpy to
+ avoid implicit memcpy calls (portability for no-library compilation)
+- Increase sprintf() buffer size in gzdopen() to allow for large numbers
+- Add INFLATE_STRICT to check distances against zlib header
+- Improve WinCE errno handling and comments [Chang]
+- Remove comment about no gzip header processing in FAQ
+- Add Z_FIXED strategy option to deflateInit2() to force fixed trees
+- Add updated make_vms.com [Coghlan], update README
+- Create a new "examples" directory, move gzappend.c there, add zpipe.c,
+ fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html.
+- Add FAQ entry and comments in deflate.c on uninitialized memory access
+- Add Solaris 9 make options in configure [Gilbert]
+- Allow strerror() usage in gzio.c for STDC
+- Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer]
+- Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant]
+- Use z_off_t for adler32_combine() and crc32_combine() lengths
+- Make adler32() much faster for small len
+- Use OS_CODE in deflate() default gzip header
+
+Changes in 1.2.2.1 (31 October 2004)
+- Allow inflateSetDictionary() call for raw inflate
+- Fix inflate header crc check bug for file names and comments
+- Add deflateSetHeader() and gz_header structure for custom gzip headers
+- Add inflateGetheader() to retrieve gzip headers
+- Add crc32_combine() and adler32_combine() functions
+- Add alloc_func, free_func, in_func, out_func to Z_PREFIX list
+- Use zstreamp consistently in zlib.h (inflate_back functions)
+- Remove GUNZIP condition from definition of inflate_mode in inflate.h
+ and in contrib/inflate86/inffast.S [Truta, Anderson]
+- Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson]
+- Update projects/README.projects and projects/visualc6 [Truta]
+- Update win32/DLL_FAQ.txt [Truta]
+- Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta]
+- Deprecate Z_ASCII; use Z_TEXT instead [Truta]
+- Use a new algorithm for setting strm->data_type in trees.c [Truta]
+- Do not define an exit() prototype in zutil.c unless DEBUG defined
+- Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta]
+- Add comment in zlib.h for Z_NO_FLUSH parameter to deflate()
+- Fix Darwin build version identification [Peterson]
+
+Changes in 1.2.2 (3 October 2004)
+- Update zlib.h comments on gzip in-memory processing
+- Set adler to 1 in inflateReset() to support Java test suite [Walles]
+- Add contrib/dotzlib [Ravn]
+- Update win32/DLL_FAQ.txt [Truta]
+- Update contrib/minizip [Vollant]
+- Move contrib/visual-basic.txt to old/ [Truta]
+- Fix assembler builds in projects/visualc6/ [Truta]
+
+Changes in 1.2.1.2 (9 September 2004)
+- Update INDEX file
+- Fix trees.c to update strm->data_type (no one ever noticed!)
+- Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown]
+- Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE)
+- Add limited multitasking protection to DYNAMIC_CRC_TABLE
+- Add NO_vsnprintf for VMS in zutil.h [Mozilla]
+- Don't declare strerror() under VMS [Mozilla]
+- Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize
+- Update contrib/ada [Anisimkov]
+- Update contrib/minizip [Vollant]
+- Fix configure to not hardcode directories for Darwin [Peterson]
+- Fix gzio.c to not return error on empty files [Brown]
+- Fix indentation; update version in contrib/delphi/ZLib.pas and
+ contrib/pascal/zlibpas.pas [Truta]
+- Update mkasm.bat in contrib/masmx86 [Truta]
+- Update contrib/untgz [Truta]
+- Add projects/README.projects [Truta]
+- Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta]
+- Update win32/DLL_FAQ.txt [Truta]
+- Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta]
+- Remove an unnecessary assignment to curr in inftrees.c [Truta]
+- Add OS/2 to exe builds in configure [Poltorak]
+- Remove err dummy parameter in zlib.h [Kientzle]
+
+Changes in 1.2.1.1 (9 January 2004)
+- Update email address in README
+- Several FAQ updates
+- Fix a big fat bug in inftrees.c that prevented decoding valid
+ dynamic blocks with only literals and no distance codes --
+ Thanks to "Hot Emu" for the bug report and sample file
+- Add a note to puff.c on no distance codes case.
+
+Changes in 1.2.1 (17 November 2003)
+- Remove a tab in contrib/gzappend/gzappend.c
+- Update some interfaces in contrib for new zlib functions
+- Update zlib version number in some contrib entries
+- Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta]
+- Support shared libraries on Hurd and KFreeBSD [Brown]
+- Fix error in NO_DIVIDE option of adler32.c
+
+Changes in 1.2.0.8 (4 November 2003)
+- Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas
+- Add experimental NO_DIVIDE #define in adler32.c
+ - Possibly faster on some processors (let me know if it is)
+- Correct Z_BLOCK to not return on first inflate call if no wrap
+- Fix strm->data_type on inflate() return to correctly indicate EOB
+- Add deflatePrime() function for appending in the middle of a byte
+- Add contrib/gzappend for an example of appending to a stream
+- Update win32/DLL_FAQ.txt [Truta]
+- Delete Turbo C comment in README [Truta]
+- Improve some indentation in zconf.h [Truta]
+- Fix infinite loop on bad input in configure script [Church]
+- Fix gzeof() for concatenated gzip files [Johnson]
+- Add example to contrib/visual-basic.txt [Michael B.]
+- Add -p to mkdir's in Makefile.in [vda]
+- Fix configure to properly detect presence or lack of printf functions
+- Add AS400 support [Monnerat]
+- Add a little Cygwin support [Wilson]
+
+Changes in 1.2.0.7 (21 September 2003)
+- Correct some debug formats in contrib/infback9
+- Cast a type in a debug statement in trees.c
+- Change search and replace delimiter in configure from % to # [Beebe]
+- Update contrib/untgz to 0.2 with various fixes [Truta]
+- Add build support for Amiga [Nikl]
+- Remove some directories in old that have been updated to 1.2
+- Add dylib building for Mac OS X in configure and Makefile.in
+- Remove old distribution stuff from Makefile
+- Update README to point to DLL_FAQ.txt, and add comment on Mac OS X
+- Update links in README
+
+Changes in 1.2.0.6 (13 September 2003)
+- Minor FAQ updates
+- Update contrib/minizip to 1.00 [Vollant]
+- Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta]
+- Update POSTINC comment for 68060 [Nikl]
+- Add contrib/infback9 with deflate64 decoding (unsupported)
+- For MVS define NO_vsnprintf and undefine FAR [van Burik]
+- Add pragma for fdopen on MVS [van Burik]
+
+Changes in 1.2.0.5 (8 September 2003)
+- Add OF to inflateBackEnd() declaration in zlib.h
+- Remember start when using gzdopen in the middle of a file
+- Use internal off_t counters in gz* functions to properly handle seeks
+- Perform more rigorous check for distance-too-far in inffast.c
+- Add Z_BLOCK flush option to return from inflate at block boundary
+- Set strm->data_type on return from inflate
+ - Indicate bits unused, if at block boundary, and if in last block
+- Replace size_t with ptrdiff_t in crc32.c, and check for correct size
+- Add condition so old NO_DEFLATE define still works for compatibility
+- FAQ update regarding the Windows DLL [Truta]
+- INDEX update: add qnx entry, remove aix entry [Truta]
+- Install zlib.3 into mandir [Wilson]
+- Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta]
+- Adapt the zlib interface to the new DLL convention guidelines [Truta]
+- Introduce ZLIB_WINAPI macro to allow the export of functions using
+ the WINAPI calling convention, for Visual Basic [Vollant, Truta]
+- Update msdos and win32 scripts and makefiles [Truta]
+- Export symbols by name, not by ordinal, in win32/zlib.def [Truta]
+- Add contrib/ada [Anisimkov]
+- Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta]
+- Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant]
+- Add contrib/masm686 [Truta]
+- Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm
+ [Truta, Vollant]
+- Update contrib/delphi; rename to contrib/pascal; add example [Truta]
+- Remove contrib/delphi2; add a new contrib/delphi [Truta]
+- Avoid inclusion of the nonstandard <memory.h> in contrib/iostream,
+ and fix some method prototypes [Truta]
+- Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip
+ [Truta]
+- Avoid the use of backslash (\) in contrib/minizip [Vollant]
+- Fix file time handling in contrib/untgz; update makefiles [Truta]
+- Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines
+ [Vollant]
+- Remove contrib/vstudio/vc15_16 [Vollant]
+- Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta]
+- Update README.contrib [Truta]
+- Invert the assignment order of match_head and s->prev[...] in
+ INSERT_STRING [Truta]
+- Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings
+ [Truta]
+- Compare function pointers with 0, not with NULL or Z_NULL [Truta]
+- Fix prototype of syncsearch in inflate.c [Truta]
+- Introduce ASMINF macro to be enabled when using an ASM implementation
+ of inflate_fast [Truta]
+- Change NO_DEFLATE to NO_GZCOMPRESS [Truta]
+- Modify test_gzio in example.c to take a single file name as a
+ parameter [Truta]
+- Exit the example.c program if gzopen fails [Truta]
+- Add type casts around strlen in example.c [Truta]
+- Remove casting to sizeof in minigzip.c; give a proper type
+ to the variable compared with SUFFIX_LEN [Truta]
+- Update definitions of STDC and STDC99 in zconf.h [Truta]
+- Synchronize zconf.h with the new Windows DLL interface [Truta]
+- Use SYS16BIT instead of __32BIT__ to distinguish between
+ 16- and 32-bit platforms [Truta]
+- Use far memory allocators in small 16-bit memory models for
+ Turbo C [Truta]
+- Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in
+ zlibCompileFlags [Truta]
+- Cygwin has vsnprintf [Wilson]
+- In Windows16, OS_CODE is 0, as in MSDOS [Truta]
+- In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson]
+
+Changes in 1.2.0.4 (10 August 2003)
+- Minor FAQ updates
+- Be more strict when checking inflateInit2's windowBits parameter
+- Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well
+- Add gzip wrapper option to deflateInit2 using windowBits
+- Add updated QNX rule in configure and qnx directory [Bonnefoy]
+- Make inflate distance-too-far checks more rigorous
+- Clean up FAR usage in inflate
+- Add casting to sizeof() in gzio.c and minigzip.c
+
+Changes in 1.2.0.3 (19 July 2003)
+- Fix silly error in gzungetc() implementation [Vollant]
+- Update contrib/minizip and contrib/vstudio [Vollant]
+- Fix printf format in example.c
+- Correct cdecl support in zconf.in.h [Anisimkov]
+- Minor FAQ updates
+
+Changes in 1.2.0.2 (13 July 2003)
+- Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons
+- Attempt to avoid warnings in crc32.c for pointer-int conversion
+- Add AIX to configure, remove aix directory [Bakker]
+- Add some casts to minigzip.c
+- Improve checking after insecure sprintf() or vsprintf() calls
+- Remove #elif's from crc32.c
+- Change leave label to inf_leave in inflate.c and infback.c to avoid
+ library conflicts
+- Remove inflate gzip decoding by default--only enable gzip decoding by
+ special request for stricter backward compatibility
+- Add zlibCompileFlags() function to return compilation information
+- More typecasting in deflate.c to avoid warnings
+- Remove leading underscore from _Capital #defines [Truta]
+- Fix configure to link shared library when testing
+- Add some Windows CE target adjustments [Mai]
+- Remove #define ZLIB_DLL in zconf.h [Vollant]
+- Add zlib.3 [Rodgers]
+- Update RFC URL in deflate.c and algorithm.txt [Mai]
+- Add zlib_dll_FAQ.txt to contrib [Truta]
+- Add UL to some constants [Truta]
+- Update minizip and vstudio [Vollant]
+- Remove vestigial NEED_DUMMY_RETURN from zconf.in.h
+- Expand use of NO_DUMMY_DECL to avoid all dummy structures
+- Added iostream3 to contrib [Schwardt]
+- Replace rewind() with fseek() for WinCE [Truta]
+- Improve setting of zlib format compression level flags
+ - Report 0 for huffman and rle strategies and for level == 0 or 1
+ - Report 2 only for level == 6
+- Only deal with 64K limit when necessary at compile time [Truta]
+- Allow TOO_FAR check to be turned off at compile time [Truta]
+- Add gzclearerr() function [Souza]
+- Add gzungetc() function
+
+Changes in 1.2.0.1 (17 March 2003)
+- Add Z_RLE strategy for run-length encoding [Truta]
+ - When Z_RLE requested, restrict matches to distance one
+ - Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE
+- Correct FASTEST compilation to allow level == 0
+- Clean up what gets compiled for FASTEST
+- Incorporate changes to zconf.in.h [Vollant]
+ - Refine detection of Turbo C need for dummy returns
+ - Refine ZLIB_DLL compilation
+ - Include additional header file on VMS for off_t typedef
+- Try to use _vsnprintf where it supplants vsprintf [Vollant]
+- Add some casts in inffast.c
+- Enchance comments in zlib.h on what happens if gzprintf() tries to
+ write more than 4095 bytes before compression
+- Remove unused state from inflateBackEnd()
+- Remove exit(0) from minigzip.c, example.c
+- Get rid of all those darn tabs
+- Add "check" target to Makefile.in that does the same thing as "test"
+- Add "mostlyclean" and "maintainer-clean" targets to Makefile.in
+- Update contrib/inflate86 [Anderson]
+- Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant]
+- Add msdos and win32 directories with makefiles [Truta]
+- More additions and improvements to the FAQ
+
+Changes in 1.2.0 (9 March 2003)
+- New and improved inflate code
+ - About 20% faster
+ - Does not allocate 32K window unless and until needed
+ - Automatically detects and decompresses gzip streams
+ - Raw inflate no longer needs an extra dummy byte at end
+ - Added inflateBack functions using a callback interface--even faster
+ than inflate, useful for file utilities (gzip, zip)
+ - Added inflateCopy() function to record state for random access on
+ externally generated deflate streams (e.g. in gzip files)
+ - More readable code (I hope)
+- New and improved crc32()
+ - About 50% faster, thanks to suggestions from Rodney Brown
+- Add deflateBound() and compressBound() functions
+- Fix memory leak in deflateInit2()
+- Permit setting dictionary for raw deflate (for parallel deflate)
+- Fix const declaration for gzwrite()
+- Check for some malloc() failures in gzio.c
+- Fix bug in gzopen() on single-byte file 0x1f
+- Fix bug in gzread() on concatenated file with 0x1f at end of buffer
+ and next buffer doesn't start with 0x8b
+- Fix uncompress() to return Z_DATA_ERROR on truncated input
+- Free memory at end of example.c
+- Remove MAX #define in trees.c (conflicted with some libraries)
+- Fix static const's in deflate.c, gzio.c, and zutil.[ch]
+- Declare malloc() and free() in gzio.c if STDC not defined
+- Use malloc() instead of calloc() in zutil.c if int big enough
+- Define STDC for AIX
+- Add aix/ with approach for compiling shared library on AIX
+- Add HP-UX support for shared libraries in configure
+- Add OpenUNIX support for shared libraries in configure
+- Use $cc instead of gcc to build shared library
+- Make prefix directory if needed when installing
+- Correct Macintosh avoidance of typedef Byte in zconf.h
+- Correct Turbo C memory allocation when under Linux
+- Use libz.a instead of -lz in Makefile (assure use of compiled library)
+- Update configure to check for snprintf or vsnprintf functions and their
+ return value, warn during make if using an insecure function
+- Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that
+ is lost when library is used--resolution is to build new zconf.h
+- Documentation improvements (in zlib.h):
+ - Document raw deflate and inflate
+ - Update RFCs URL
+ - Point out that zlib and gzip formats are different
+ - Note that Z_BUF_ERROR is not fatal
+ - Document string limit for gzprintf() and possible buffer overflow
+ - Note requirement on avail_out when flushing
+ - Note permitted values of flush parameter of inflate()
+- Add some FAQs (and even answers) to the FAQ
+- Add contrib/inflate86/ for x86 faster inflate
+- Add contrib/blast/ for PKWare Data Compression Library decompression
+- Add contrib/puff/ simple inflate for deflate format description
+
+Changes in 1.1.4 (11 March 2002)
+- ZFREE was repeated on same allocation on some error conditions.
+ This creates a security problem described in
+ http://www.zlib.org/advisory-2002-03-11.txt
+- Returned incorrect error (Z_MEM_ERROR) on some invalid data
+- Avoid accesses before window for invalid distances with inflate window
+ less than 32K.
+- force windowBits > 8 to avoid a bug in the encoder for a window size
+ of 256 bytes. (A complete fix will be available in 1.1.5).
+
+Changes in 1.1.3 (9 July 1998)
+- fix "an inflate input buffer bug that shows up on rare but persistent
+ occasions" (Mark)
+- fix gzread and gztell for concatenated .gz files (Didier Le Botlan)
+- fix gzseek(..., SEEK_SET) in write mode
+- fix crc check after a gzeek (Frank Faubert)
+- fix miniunzip when the last entry in a zip file is itself a zip file
+ (J Lillge)
+- add contrib/asm586 and contrib/asm686 (Brian Raiter)
+ See http://www.muppetlabs.com/~breadbox/software/assembly.html
+- add support for Delphi 3 in contrib/delphi (Bob Dellaca)
+- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti)
+- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren)
+- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks)
+- added a FAQ file
+
+- Support gzdopen on Mac with Metrowerks (Jason Linhart)
+- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart)
+- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young)
+- avoid some warnings with Borland C (Tom Tanner)
+- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant)
+- emulate utime() for WIN32 in contrib/untgz (Gilles Vollant)
+- allow several arguments to configure (Tim Mooney, Frodo Looijaard)
+- use libdir and includedir in Makefile.in (Tim Mooney)
+- support shared libraries on OSF1 V4 (Tim Mooney)
+- remove so_locations in "make clean" (Tim Mooney)
+- fix maketree.c compilation error (Glenn, Mark)
+- Python interface to zlib now in Python 1.5 (Jeremy Hylton)
+- new Makefile.riscos (Rich Walker)
+- initialize static descriptors in trees.c for embedded targets (Nick Smith)
+- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith)
+- add the OS/2 files in Makefile.in too (Andrew Zabolotny)
+- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane)
+- fix maketree.c to allow clean compilation of inffixed.h (Mark)
+- fix parameter check in deflateCopy (Gunther Nikl)
+- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler)
+- Many portability patches by Christian Spieler:
+ . zutil.c, zutil.h: added "const" for zmem*
+ . Make_vms.com: fixed some typos
+ . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists
+ . msdos/Makefile.msc: remove "default rtl link library" info from obj files
+ . msdos/Makefile.*: use model-dependent name for the built zlib library
+ . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc:
+ new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT)
+- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane)
+- replace __far with _far for better portability (Christian Spieler, Tom Lane)
+- fix test for errno.h in configure (Tim Newsham)
+
+Changes in 1.1.2 (19 March 98)
+- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant)
+ See http://www.winimage.com/zLibDll/unzip.html
+- preinitialize the inflate tables for fixed codes, to make the code
+ completely thread safe (Mark)
+- some simplifications and slight speed-up to the inflate code (Mark)
+- fix gzeof on non-compressed files (Allan Schrum)
+- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs)
+- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn)
+- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny)
+- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori)
+- do not wrap extern "C" around system includes (Tom Lane)
+- mention zlib binding for TCL in README (Andreas Kupries)
+- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert)
+- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson)
+- allow "configure --prefix $HOME" (Tim Mooney)
+- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson)
+- move Makefile.sas to amiga/Makefile.sas
+
+Changes in 1.1.1 (27 Feb 98)
+- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson)
+- remove block truncation heuristic which had very marginal effect for zlib
+ (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the
+ compression ratio on some files. This also allows inlining _tr_tally for
+ matches in deflate_slow.
+- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier)
+
+Changes in 1.1.0 (24 Feb 98)
+- do not return STREAM_END prematurely in inflate (John Bowler)
+- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler)
+- compile with -DFASTEST to get compression code optimized for speed only
+- in minigzip, try mmap'ing the input file first (Miguel Albrecht)
+- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain
+ on Sun but significant on HP)
+
+- add a pointer to experimental unzip library in README (Gilles Vollant)
+- initialize variable gcc in configure (Chris Herborth)
+
+Changes in 1.0.9 (17 Feb 1998)
+- added gzputs and gzgets functions
+- do not clear eof flag in gzseek (Mark Diekhans)
+- fix gzseek for files in transparent mode (Mark Diekhans)
+- do not assume that vsprintf returns the number of bytes written (Jens Krinke)
+- replace EXPORT with ZEXPORT to avoid conflict with other programs
+- added compress2 in zconf.h, zlib.def, zlib.dnt
+- new asm code from Gilles Vollant in contrib/asm386
+- simplify the inflate code (Mark):
+ . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new()
+ . ZALLOC the length list in inflate_trees_fixed() instead of using stack
+ . ZALLOC the value area for huft_build() instead of using stack
+ . Simplify Z_FINISH check in inflate()
+
+- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8
+- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi)
+- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with
+ the declaration of FAR (Gilles VOllant)
+- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann)
+- read_buf buf parameter of type Bytef* instead of charf*
+- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout)
+- do not redeclare unlink in minigzip.c for WIN32 (John Bowler)
+- fix check for presence of directories in "make install" (Ian Willis)
+
+Changes in 1.0.8 (27 Jan 1998)
+- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant)
+- fix gzgetc and gzputc for big endian systems (Markus Oberhumer)
+- added compress2() to allow setting the compression level
+- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong)
+- use constant arrays for the static trees in trees.c instead of computing
+ them at run time (thanks to Ken Raeburn for this suggestion). To create
+ trees.h, compile with GEN_TREES_H and run "make test".
+- check return code of example in "make test" and display result
+- pass minigzip command line options to file_compress
+- simplifying code of inflateSync to avoid gcc 2.8 bug
+
+- support CC="gcc -Wall" in configure -s (QingLong)
+- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn)
+- fix test for shared library support to avoid compiler warnings
+- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant)
+- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit)
+- do not use fdopen for Metrowerks on Mac (Brad Pettit))
+- add checks for gzputc and gzputc in example.c
+- avoid warnings in gzio.c and deflate.c (Andreas Kleinert)
+- use const for the CRC table (Ken Raeburn)
+- fixed "make uninstall" for shared libraries
+- use Tracev instead of Trace in infblock.c
+- in example.c use correct compressed length for test_sync
+- suppress +vnocompatwarnings in configure for HPUX (not always supported)
+
+Changes in 1.0.7 (20 Jan 1998)
+- fix gzseek which was broken in write mode
+- return error for gzseek to negative absolute position
+- fix configure for Linux (Chun-Chung Chen)
+- increase stack space for MSC (Tim Wegner)
+- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant)
+- define EXPORTVA for gzprintf (Gilles Vollant)
+- added man page zlib.3 (Rick Rodgers)
+- for contrib/untgz, fix makedir() and improve Makefile
+
+- check gzseek in write mode in example.c
+- allocate extra buffer for seeks only if gzseek is actually called
+- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant)
+- add inflateSyncPoint in zconf.h
+- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def
+
+Changes in 1.0.6 (19 Jan 1998)
+- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and
+ gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code)
+- Fix a deflate bug occurring only with compression level 0 (thanks to
+ Andy Buckler for finding this one).
+- In minigzip, pass transparently also the first byte for .Z files.
+- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress()
+- check Z_FINISH in inflate (thanks to Marc Schluper)
+- Implement deflateCopy (thanks to Adam Costello)
+- make static libraries by default in configure, add --shared option.
+- move MSDOS or Windows specific files to directory msdos
+- suppress the notion of partial flush to simplify the interface
+ (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4)
+- suppress history buffer provided by application to simplify the interface
+ (this feature was not implemented anyway in 1.0.4)
+- next_in and avail_in must be initialized before calling inflateInit or
+ inflateInit2
+- add EXPORT in all exported functions (for Windows DLL)
+- added Makefile.nt (thanks to Stephen Williams)
+- added the unsupported "contrib" directory:
+ contrib/asm386/ by Gilles Vollant <info@winimage.com>
+ 386 asm code replacing longest_match().
+ contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
+ A C++ I/O streams interface to the zlib gz* functions
+ contrib/iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no>
+ Another C++ I/O streams interface
+ contrib/untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
+ A very simple tar.gz file extractor using zlib
+ contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl>
+ How to use compress(), uncompress() and the gz* functions from VB.
+- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression
+ level) in minigzip (thanks to Tom Lane)
+
+- use const for rommable constants in deflate
+- added test for gzseek and gztell in example.c
+- add undocumented function inflateSyncPoint() (hack for Paul Mackerras)
+- add undocumented function zError to convert error code to string
+ (for Tim Smithers)
+- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code.
+- Use default memcpy for Symantec MSDOS compiler.
+- Add EXPORT keyword for check_func (needed for Windows DLL)
+- add current directory to LD_LIBRARY_PATH for "make test"
+- create also a link for libz.so.1
+- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura)
+- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX)
+- added -soname for Linux in configure (Chun-Chung Chen,
+- assign numbers to the exported functions in zlib.def (for Windows DLL)
+- add advice in zlib.h for best usage of deflateSetDictionary
+- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn)
+- allow compilation with ANSI keywords only enabled for TurboC in large model
+- avoid "versionString"[0] (Borland bug)
+- add NEED_DUMMY_RETURN for Borland
+- use variable z_verbose for tracing in debug mode (L. Peter Deutsch).
+- allow compilation with CC
+- defined STDC for OS/2 (David Charlap)
+- limit external names to 8 chars for MVS (Thomas Lund)
+- in minigzip.c, use static buffers only for 16-bit systems
+- fix suffix check for "minigzip -d foo.gz"
+- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee)
+- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
+- added makelcc.bat for lcc-win32 (Tom St Denis)
+- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
+- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
+- check for unistd.h in configure (for off_t)
+- remove useless check parameter in inflate_blocks_free
+- avoid useless assignment of s->check to itself in inflate_blocks_new
+- do not flush twice in gzclose (thanks to Ken Raeburn)
+- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h
+- use NO_ERRNO_H instead of enumeration of operating systems with errno.h
+- work around buggy fclose on pipes for HP/UX
+- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson)
+- fix configure if CC is already equal to gcc
+
+Changes in 1.0.5 (3 Jan 98)
+- Fix inflate to terminate gracefully when fed corrupted or invalid data
+- Use const for rommable constants in inflate
+- Eliminate memory leaks on error conditions in inflate
+- Removed some vestigial code in inflate
+- Update web address in README
+
+Changes in 1.0.4 (24 Jul 96)
+- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF
+ bit, so the decompressor could decompress all the correct data but went
+ on to attempt decompressing extra garbage data. This affected minigzip too.
+- zlibVersion and gzerror return const char* (needed for DLL)
+- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno)
+- use z_error only for DEBUG (avoid problem with DLLs)
+
+Changes in 1.0.3 (2 Jul 96)
+- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS
+ small and medium models; this makes the library incompatible with previous
+ versions for these models. (No effect in large model or on other systems.)
+- return OK instead of BUF_ERROR if previous deflate call returned with
+ avail_out as zero but there is nothing to do
+- added memcmp for non STDC compilers
+- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly)
+- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO)
+- better check for 16-bit mode MSC (avoids problem with Symantec)
+
+Changes in 1.0.2 (23 May 96)
+- added Windows DLL support
+- added a function zlibVersion (for the DLL support)
+- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model)
+- Bytef is define's instead of typedef'd only for Borland C
+- avoid reading uninitialized memory in example.c
+- mention in README that the zlib format is now RFC1950
+- updated Makefile.dj2
+- added algorithm.doc
+
+Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion]
+- fix array overlay in deflate.c which sometimes caused bad compressed data
+- fix inflate bug with empty stored block
+- fix MSDOS medium model which was broken in 0.99
+- fix deflateParams() which could generate bad compressed data.
+- Bytef is define'd instead of typedef'ed (work around Borland bug)
+- added an INDEX file
+- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),
+ Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas)
+- speed up adler32 for modern machines without auto-increment
+- added -ansi for IRIX in configure
+- static_init_done in trees.c is an int
+- define unlink as delete for VMS
+- fix configure for QNX
+- add configure branch for SCO and HPUX
+- avoid many warnings (unused variables, dead assignments, etc...)
+- no fdopen for BeOS
+- fix the Watcom fix for 32 bit mode (define FAR as empty)
+- removed redefinition of Byte for MKWERKS
+- work around an MWKERKS bug (incorrect merge of all .h files)
+
+Changes in 0.99 (27 Jan 96)
+- allow preset dictionary shared between compressor and decompressor
+- allow compression level 0 (no compression)
+- add deflateParams in zlib.h: allow dynamic change of compression level
+ and compression strategy.
+- test large buffers and deflateParams in example.c
+- add optional "configure" to build zlib as a shared library
+- suppress Makefile.qnx, use configure instead
+- fixed deflate for 64-bit systems (detected on Cray)
+- fixed inflate_blocks for 64-bit systems (detected on Alpha)
+- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2)
+- always return Z_BUF_ERROR when deflate() has nothing to do
+- deflateInit and inflateInit are now macros to allow version checking
+- prefix all global functions and types with z_ with -DZ_PREFIX
+- make falloc completely reentrant (inftrees.c)
+- fixed very unlikely race condition in ct_static_init
+- free in reverse order of allocation to help memory manager
+- use zlib-1.0/* instead of zlib/* inside the tar.gz
+- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith
+ -Wconversion -Wstrict-prototypes -Wmissing-prototypes"
+- allow gzread on concatenated .gz files
+- deflateEnd now returns Z_DATA_ERROR if it was premature
+- deflate is finally (?) fully deterministic (no matches beyond end of input)
+- Document Z_SYNC_FLUSH
+- add uninstall in Makefile
+- Check for __cpluplus in zlib.h
+- Better test in ct_align for partial flush
+- avoid harmless warnings for Borland C++
+- initialize hash_head in deflate.c
+- avoid warning on fdopen (gzio.c) for HP cc -Aa
+- include stdlib.h for STDC compilers
+- include errno.h for Cray
+- ignore error if ranlib doesn't exist
+- call ranlib twice for NeXTSTEP
+- use exec_prefix instead of prefix for libz.a
+- renamed ct_* as _tr_* to avoid conflict with applications
+- clear z->msg in inflateInit2 before any error return
+- initialize opaque in example.c, gzio.c, deflate.c and inflate.c
+- fixed typo in zconf.h (_GNUC__ => __GNUC__)
+- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode)
+- fix typo in Make_vms.com (f$trnlnm -> f$getsyi)
+- in fcalloc, normalize pointer if size > 65520 bytes
+- don't use special fcalloc for 32 bit Borland C++
+- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc...
+- use Z_BINARY instead of BINARY
+- document that gzclose after gzdopen will close the file
+- allow "a" as mode in gzopen.
+- fix error checking in gzread
+- allow skipping .gz extra-field on pipes
+- added reference to Perl interface in README
+- put the crc table in FAR data (I dislike more and more the medium model :)
+- added get_crc_table
+- added a dimension to all arrays (Borland C can't count).
+- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast
+- guard against multiple inclusion of *.h (for precompiled header on Mac)
+- Watcom C pretends to be Microsoft C small model even in 32 bit mode.
+- don't use unsized arrays to avoid silly warnings by Visual C++:
+ warning C4746: 'inflate_mask' : unsized array treated as '__far'
+ (what's wrong with far data in far model?).
+- define enum out of inflate_blocks_state to allow compilation with C++
+
+Changes in 0.95 (16 Aug 95)
+- fix MSDOS small and medium model (now easier to adapt to any compiler)
+- inlined send_bits
+- fix the final (:-) bug for deflate with flush (output was correct but
+ not completely flushed in rare occasions).
+- default window size is same for compression and decompression
+ (it's now sufficient to set MAX_WBITS in zconf.h).
+- voidp -> voidpf and voidnp -> voidp (for consistency with other
+ typedefs and because voidnp was not near in large model).
+
+Changes in 0.94 (13 Aug 95)
+- support MSDOS medium model
+- fix deflate with flush (could sometimes generate bad output)
+- fix deflateReset (zlib header was incorrectly suppressed)
+- added support for VMS
+- allow a compression level in gzopen()
+- gzflush now calls fflush
+- For deflate with flush, flush even if no more input is provided.
+- rename libgz.a as libz.a
+- avoid complex expression in infcodes.c triggering Turbo C bug
+- work around a problem with gcc on Alpha (in INSERT_STRING)
+- don't use inline functions (problem with some gcc versions)
+- allow renaming of Byte, uInt, etc... with #define.
+- avoid warning about (unused) pointer before start of array in deflate.c
+- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c
+- avoid reserved word 'new' in trees.c
+
+Changes in 0.93 (25 June 95)
+- temporarily disable inline functions
+- make deflate deterministic
+- give enough lookahead for PARTIAL_FLUSH
+- Set binary mode for stdin/stdout in minigzip.c for OS/2
+- don't even use signed char in inflate (not portable enough)
+- fix inflate memory leak for segmented architectures
+
+Changes in 0.92 (3 May 95)
+- don't assume that char is signed (problem on SGI)
+- Clear bit buffer when starting a stored block
+- no memcpy on Pyramid
+- suppressed inftest.c
+- optimized fill_window, put longest_match inline for gcc
+- optimized inflate on stored blocks.
+- untabify all sources to simplify patches
+
+Changes in 0.91 (2 May 95)
+- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h
+- Document the memory requirements in zconf.h
+- added "make install"
+- fix sync search logic in inflateSync
+- deflate(Z_FULL_FLUSH) now works even if output buffer too short
+- after inflateSync, don't scare people with just "lo world"
+- added support for DJGPP
+
+Changes in 0.9 (1 May 95)
+- don't assume that zalloc clears the allocated memory (the TurboC bug
+ was Mark's bug after all :)
+- let again gzread copy uncompressed data unchanged (was working in 0.71)
+- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented
+- added a test of inflateSync in example.c
+- moved MAX_WBITS to zconf.h because users might want to change that.
+- document explicitly that zalloc(64K) on MSDOS must return a normalized
+ pointer (zero offset)
+- added Makefiles for Microsoft C, Turbo C, Borland C++
+- faster crc32()
+
+Changes in 0.8 (29 April 95)
+- added fast inflate (inffast.c)
+- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this
+ is incompatible with previous versions of zlib which returned Z_OK.
+- work around a TurboC compiler bug (bad code for b << 0, see infutil.h)
+ (actually that was not a compiler bug, see 0.81 above)
+- gzread no longer reads one extra byte in certain cases
+- In gzio destroy(), don't reference a freed structure
+- avoid many warnings for MSDOS
+- avoid the ERROR symbol which is used by MS Windows
+
+Changes in 0.71 (14 April 95)
+- Fixed more MSDOS compilation problems :( There is still a bug with
+ TurboC large model.
+
+Changes in 0.7 (14 April 95)
+- Added full inflate support.
+- Simplified the crc32() interface. The pre- and post-conditioning
+ (one's complement) is now done inside crc32(). WARNING: this is
+ incompatible with previous versions; see zlib.h for the new usage.
+
+Changes in 0.61 (12 April 95)
+- workaround for a bug in TurboC. example and minigzip now work on MSDOS.
+
+Changes in 0.6 (11 April 95)
+- added minigzip.c
+- added gzdopen to reopen a file descriptor as gzFile
+- added transparent reading of non-gziped files in gzread.
+- fixed bug in gzread (don't read crc as data)
+- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose).
+- don't allocate big arrays in the stack (for MSDOS)
+- fix some MSDOS compilation problems
+
+Changes in 0.5:
+- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but
+ not yet Z_FULL_FLUSH.
+- support decompression but only in a single step (forced Z_FINISH)
+- added opaque object for zalloc and zfree.
+- added deflateReset and inflateReset
+- added a variable zlib_version for consistency checking.
+- renamed the 'filter' parameter of deflateInit2 as 'strategy'.
+ Added Z_FILTERED and Z_HUFFMAN_ONLY constants.
+
+Changes in 0.4:
+- avoid "zip" everywhere, use zlib instead of ziplib.
+- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush
+ if compression method == 8.
+- added adler32 and crc32
+- renamed deflateOptions as deflateInit2, call one or the other but not both
+- added the method parameter for deflateInit2.
+- added inflateInit2
+- simplied considerably deflateInit and inflateInit by not supporting
+ user-provided history buffer. This is supported only in deflateInit2
+ and inflateInit2.
+
+Changes in 0.3:
+- prefix all macro names with Z_
+- use Z_FINISH instead of deflateEnd to finish compression.
+- added Z_HUFFMAN_ONLY
+- added gzerror()
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/FAQ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/FAQ
new file mode 100644
index 000000000..99b7cf92e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/FAQ
@@ -0,0 +1,368 @@
+
+ Frequently Asked Questions about zlib
+
+
+If your question is not there, please check the zlib home page
+http://zlib.net/ which may have more recent information.
+The lastest zlib FAQ is at http://zlib.net/zlib_faq.html
+
+
+ 1. Is zlib Y2K-compliant?
+
+ Yes. zlib doesn't handle dates.
+
+ 2. Where can I get a Windows DLL version?
+
+ The zlib sources can be compiled without change to produce a DLL. See the
+ file win32/DLL_FAQ.txt in the zlib distribution. Pointers to the
+ precompiled DLL are found in the zlib web site at http://zlib.net/ .
+
+ 3. Where can I get a Visual Basic interface to zlib?
+
+ See
+ * http://marknelson.us/1997/01/01/zlib-engine/
+ * win32/DLL_FAQ.txt in the zlib distribution
+
+ 4. compress() returns Z_BUF_ERROR.
+
+ Make sure that before the call of compress(), the length of the compressed
+ buffer is equal to the available size of the compressed buffer and not
+ zero. For Visual Basic, check that this parameter is passed by reference
+ ("as any"), not by value ("as long").
+
+ 5. deflate() or inflate() returns Z_BUF_ERROR.
+
+ Before making the call, make sure that avail_in and avail_out are not zero.
+ When setting the parameter flush equal to Z_FINISH, also make sure that
+ avail_out is big enough to allow processing all pending input. Note that a
+ Z_BUF_ERROR is not fatal--another call to deflate() or inflate() can be
+ made with more input or output space. A Z_BUF_ERROR may in fact be
+ unavoidable depending on how the functions are used, since it is not
+ possible to tell whether or not there is more output pending when
+ strm.avail_out returns with zero. See http://zlib.net/zlib_how.html for a
+ heavily annotated example.
+
+ 6. Where's the zlib documentation (man pages, etc.)?
+
+ It's in zlib.h . Examples of zlib usage are in the files test/example.c
+ and test/minigzip.c, with more in examples/ .
+
+ 7. Why don't you use GNU autoconf or libtool or ...?
+
+ Because we would like to keep zlib as a very small and simple package.
+ zlib is rather portable and doesn't need much configuration.
+
+ 8. I found a bug in zlib.
+
+ Most of the time, such problems are due to an incorrect usage of zlib.
+ Please try to reproduce the problem with a small program and send the
+ corresponding source to us at zlib@gzip.org . Do not send multi-megabyte
+ data files without prior agreement.
+
+ 9. Why do I get "undefined reference to gzputc"?
+
+ If "make test" produces something like
+
+ example.o(.text+0x154): undefined reference to `gzputc'
+
+ check that you don't have old files libz.* in /usr/lib, /usr/local/lib or
+ /usr/X11R6/lib. Remove any old versions, then do "make install".
+
+10. I need a Delphi interface to zlib.
+
+ See the contrib/delphi directory in the zlib distribution.
+
+11. Can zlib handle .zip archives?
+
+ Not by itself, no. See the directory contrib/minizip in the zlib
+ distribution.
+
+12. Can zlib handle .Z files?
+
+ No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt
+ the code of uncompress on your own.
+
+13. How can I make a Unix shared library?
+
+ By default a shared (and a static) library is built for Unix. So:
+
+ make distclean
+ ./configure
+ make
+
+14. How do I install a shared zlib library on Unix?
+
+ After the above, then:
+
+ make install
+
+ However, many flavors of Unix come with a shared zlib already installed.
+ Before going to the trouble of compiling a shared version of zlib and
+ trying to install it, you may want to check if it's already there! If you
+ can #include <zlib.h>, it's there. The -lz option will probably link to
+ it. You can check the version at the top of zlib.h or with the
+ ZLIB_VERSION symbol defined in zlib.h .
+
+15. I have a question about OttoPDF.
+
+ We are not the authors of OttoPDF. The real author is on the OttoPDF web
+ site: Joel Hainley, jhainley@myndkryme.com.
+
+16. Can zlib decode Flate data in an Adobe PDF file?
+
+ Yes. See http://www.pdflib.com/ . To modify PDF forms, see
+ http://sourceforge.net/projects/acroformtool/ .
+
+17. Why am I getting this "register_frame_info not found" error on Solaris?
+
+ After installing zlib 1.1.4 on Solaris 2.6, running applications using zlib
+ generates an error such as:
+
+ ld.so.1: rpm: fatal: relocation error: file /usr/local/lib/libz.so:
+ symbol __register_frame_info: referenced symbol not found
+
+ The symbol __register_frame_info is not part of zlib, it is generated by
+ the C compiler (cc or gcc). You must recompile applications using zlib
+ which have this problem. This problem is specific to Solaris. See
+ http://www.sunfreeware.com for Solaris versions of zlib and applications
+ using zlib.
+
+18. Why does gzip give an error on a file I make with compress/deflate?
+
+ The compress and deflate functions produce data in the zlib format, which
+ is different and incompatible with the gzip format. The gz* functions in
+ zlib on the other hand use the gzip format. Both the zlib and gzip formats
+ use the same compressed data format internally, but have different headers
+ and trailers around the compressed data.
+
+19. Ok, so why are there two different formats?
+
+ The gzip format was designed to retain the directory information about a
+ single file, such as the name and last modification date. The zlib format
+ on the other hand was designed for in-memory and communication channel
+ applications, and has a much more compact header and trailer and uses a
+ faster integrity check than gzip.
+
+20. Well that's nice, but how do I make a gzip file in memory?
+
+ You can request that deflate write the gzip format instead of the zlib
+ format using deflateInit2(). You can also request that inflate decode the
+ gzip format using inflateInit2(). Read zlib.h for more details.
+
+21. Is zlib thread-safe?
+
+ Yes. However any library routines that zlib uses and any application-
+ provided memory allocation routines must also be thread-safe. zlib's gz*
+ functions use stdio library routines, and most of zlib's functions use the
+ library memory allocation routines by default. zlib's *Init* functions
+ allow for the application to provide custom memory allocation routines.
+
+ Of course, you should only operate on any given zlib or gzip stream from a
+ single thread at a time.
+
+22. Can I use zlib in my commercial application?
+
+ Yes. Please read the license in zlib.h.
+
+23. Is zlib under the GNU license?
+
+ No. Please read the license in zlib.h.
+
+24. The license says that altered source versions must be "plainly marked". So
+ what exactly do I need to do to meet that requirement?
+
+ You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h. In
+ particular, the final version number needs to be changed to "f", and an
+ identification string should be appended to ZLIB_VERSION. Version numbers
+ x.x.x.f are reserved for modifications to zlib by others than the zlib
+ maintainers. For example, if the version of the base zlib you are altering
+ is "1.2.3.4", then in zlib.h you should change ZLIB_VERNUM to 0x123f, and
+ ZLIB_VERSION to something like "1.2.3.f-zachary-mods-v3". You can also
+ update the version strings in deflate.c and inftrees.c.
+
+ For altered source distributions, you should also note the origin and
+ nature of the changes in zlib.h, as well as in ChangeLog and README, along
+ with the dates of the alterations. The origin should include at least your
+ name (or your company's name), and an email address to contact for help or
+ issues with the library.
+
+ Note that distributing a compiled zlib library along with zlib.h and
+ zconf.h is also a source distribution, and so you should change
+ ZLIB_VERSION and ZLIB_VERNUM and note the origin and nature of the changes
+ in zlib.h as you would for a full source distribution.
+
+25. Will zlib work on a big-endian or little-endian architecture, and can I
+ exchange compressed data between them?
+
+ Yes and yes.
+
+26. Will zlib work on a 64-bit machine?
+
+ Yes. It has been tested on 64-bit machines, and has no dependence on any
+ data types being limited to 32-bits in length. If you have any
+ difficulties, please provide a complete problem report to zlib@gzip.org
+
+27. Will zlib decompress data from the PKWare Data Compression Library?
+
+ No. The PKWare DCL uses a completely different compressed data format than
+ does PKZIP and zlib. However, you can look in zlib's contrib/blast
+ directory for a possible solution to your problem.
+
+28. Can I access data randomly in a compressed stream?
+
+ No, not without some preparation. If when compressing you periodically use
+ Z_FULL_FLUSH, carefully write all the pending data at those points, and
+ keep an index of those locations, then you can start decompression at those
+ points. You have to be careful to not use Z_FULL_FLUSH too often, since it
+ can significantly degrade compression. Alternatively, you can scan a
+ deflate stream once to generate an index, and then use that index for
+ random access. See examples/zran.c .
+
+29. Does zlib work on MVS, OS/390, CICS, etc.?
+
+ It has in the past, but we have not heard of any recent evidence. There
+ were working ports of zlib 1.1.4 to MVS, but those links no longer work.
+ If you know of recent, successful applications of zlib on these operating
+ systems, please let us know. Thanks.
+
+30. Is there some simpler, easier to read version of inflate I can look at to
+ understand the deflate format?
+
+ First off, you should read RFC 1951. Second, yes. Look in zlib's
+ contrib/puff directory.
+
+31. Does zlib infringe on any patents?
+
+ As far as we know, no. In fact, that was originally the whole point behind
+ zlib. Look here for some more information:
+
+ http://www.gzip.org/#faq11
+
+32. Can zlib work with greater than 4 GB of data?
+
+ Yes. inflate() and deflate() will process any amount of data correctly.
+ Each call of inflate() or deflate() is limited to input and output chunks
+ of the maximum value that can be stored in the compiler's "unsigned int"
+ type, but there is no limit to the number of chunks. Note however that the
+ strm.total_in and strm_total_out counters may be limited to 4 GB. These
+ counters are provided as a convenience and are not used internally by
+ inflate() or deflate(). The application can easily set up its own counters
+ updated after each call of inflate() or deflate() to count beyond 4 GB.
+ compress() and uncompress() may be limited to 4 GB, since they operate in a
+ single call. gzseek() and gztell() may be limited to 4 GB depending on how
+ zlib is compiled. See the zlibCompileFlags() function in zlib.h.
+
+ The word "may" appears several times above since there is a 4 GB limit only
+ if the compiler's "long" type is 32 bits. If the compiler's "long" type is
+ 64 bits, then the limit is 16 exabytes.
+
+33. Does zlib have any security vulnerabilities?
+
+ The only one that we are aware of is potentially in gzprintf(). If zlib is
+ compiled to use sprintf() or vsprintf(), then there is no protection
+ against a buffer overflow of an 8K string space (or other value as set by
+ gzbuffer()), other than the caller of gzprintf() assuring that the output
+ will not exceed 8K. On the other hand, if zlib is compiled to use
+ snprintf() or vsnprintf(), which should normally be the case, then there is
+ no vulnerability. The ./configure script will display warnings if an
+ insecure variation of sprintf() will be used by gzprintf(). Also the
+ zlibCompileFlags() function will return information on what variant of
+ sprintf() is used by gzprintf().
+
+ If you don't have snprintf() or vsnprintf() and would like one, you can
+ find a portable implementation here:
+
+ http://www.ijs.si/software/snprintf/
+
+ Note that you should be using the most recent version of zlib. Versions
+ 1.1.3 and before were subject to a double-free vulnerability, and versions
+ 1.2.1 and 1.2.2 were subject to an access exception when decompressing
+ invalid compressed data.
+
+34. Is there a Java version of zlib?
+
+ Probably what you want is to use zlib in Java. zlib is already included
+ as part of the Java SDK in the java.util.zip package. If you really want
+ a version of zlib written in the Java language, look on the zlib home
+ page for links: http://zlib.net/ .
+
+35. I get this or that compiler or source-code scanner warning when I crank it
+ up to maximally-pedantic. Can't you guys write proper code?
+
+ Many years ago, we gave up attempting to avoid warnings on every compiler
+ in the universe. It just got to be a waste of time, and some compilers
+ were downright silly as well as contradicted each other. So now, we simply
+ make sure that the code always works.
+
+36. Valgrind (or some similar memory access checker) says that deflate is
+ performing a conditional jump that depends on an uninitialized value.
+ Isn't that a bug?
+
+ No. That is intentional for performance reasons, and the output of deflate
+ is not affected. This only started showing up recently since zlib 1.2.x
+ uses malloc() by default for allocations, whereas earlier versions used
+ calloc(), which zeros out the allocated memory. Even though the code was
+ correct, versions 1.2.4 and later was changed to not stimulate these
+ checkers.
+
+37. Will zlib read the (insert any ancient or arcane format here) compressed
+ data format?
+
+ Probably not. Look in the comp.compression FAQ for pointers to various
+ formats and associated software.
+
+38. How can I encrypt/decrypt zip files with zlib?
+
+ zlib doesn't support encryption. The original PKZIP encryption is very
+ weak and can be broken with freely available programs. To get strong
+ encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib
+ compression. For PKZIP compatible "encryption", look at
+ http://www.info-zip.org/
+
+39. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
+
+ "gzip" is the gzip format, and "deflate" is the zlib format. They should
+ probably have called the second one "zlib" instead to avoid confusion with
+ the raw deflate compressed data format. While the HTTP 1.1 RFC 2616
+ correctly points to the zlib specification in RFC 1950 for the "deflate"
+ transfer encoding, there have been reports of servers and browsers that
+ incorrectly produce or expect raw deflate data per the deflate
+ specification in RFC 1951, most notably Microsoft. So even though the
+ "deflate" transfer encoding using the zlib format would be the more
+ efficient approach (and in fact exactly what the zlib format was designed
+ for), using the "gzip" transfer encoding is probably more reliable due to
+ an unfortunate choice of name on the part of the HTTP 1.1 authors.
+
+ Bottom line: use the gzip format for HTTP 1.1 encoding.
+
+40. Does zlib support the new "Deflate64" format introduced by PKWare?
+
+ No. PKWare has apparently decided to keep that format proprietary, since
+ they have not documented it as they have previous compression formats. In
+ any case, the compression improvements are so modest compared to other more
+ modern approaches, that it's not worth the effort to implement.
+
+41. I'm having a problem with the zip functions in zlib, can you help?
+
+ There are no zip functions in zlib. You are probably using minizip by
+ Giles Vollant, which is found in the contrib directory of zlib. It is not
+ part of zlib. In fact none of the stuff in contrib is part of zlib. The
+ files in there are not supported by the zlib authors. You need to contact
+ the authors of the respective contribution for help.
+
+42. The match.asm code in contrib is under the GNU General Public License.
+ Since it's part of zlib, doesn't that mean that all of zlib falls under the
+ GNU GPL?
+
+ No. The files in contrib are not part of zlib. They were contributed by
+ other authors and are provided as a convenience to the user within the zlib
+ distribution. Each item in contrib has its own license.
+
+43. Is zlib subject to export controls? What is its ECCN?
+
+ zlib is not subject to export controls, and so is classified as EAR99.
+
+44. Can you please sign these lengthy legal documents and fax them back to us
+ so that we can use your software in our product?
+
+ No. Go away. Shoo.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/INDEX b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/INDEX
new file mode 100644
index 000000000..2ba064120
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/INDEX
@@ -0,0 +1,68 @@
+CMakeLists.txt cmake build file
+ChangeLog history of changes
+FAQ Frequently Asked Questions about zlib
+INDEX this file
+Makefile dummy Makefile that tells you to ./configure
+Makefile.in template for Unix Makefile
+README guess what
+configure configure script for Unix
+make_vms.com makefile for VMS
+test/example.c zlib usages examples for build testing
+test/minigzip.c minimal gzip-like functionality for build testing
+test/infcover.c inf*.c code coverage for build coverage testing
+treebuild.xml XML description of source file dependencies
+zconf.h.cmakein zconf.h template for cmake
+zconf.h.in zconf.h template for configure
+zlib.3 Man page for zlib
+zlib.3.pdf Man page in PDF format
+zlib.map Linux symbol information
+zlib.pc.in Template for pkg-config descriptor
+zlib.pc.cmakein zlib.pc template for cmake
+zlib2ansi perl script to convert source files for C++ compilation
+
+amiga/ makefiles for Amiga SAS C
+as400/ makefiles for AS/400
+doc/ documentation for formats and algorithms
+msdos/ makefiles for MSDOS
+nintendods/ makefile for Nintendo DS
+old/ makefiles for various architectures and zlib documentation
+ files that have not yet been updated for zlib 1.2.x
+qnx/ makefiles for QNX
+watcom/ makefiles for OpenWatcom
+win32/ makefiles for Windows
+
+ zlib public header files (required for library use):
+zconf.h
+zlib.h
+
+ private source files used to build the zlib library:
+adler32.c
+compress.c
+crc32.c
+crc32.h
+deflate.c
+deflate.h
+gzclose.c
+gzguts.h
+gzlib.c
+gzread.c
+gzwrite.c
+infback.c
+inffast.c
+inffast.h
+inffixed.h
+inflate.c
+inflate.h
+inftrees.c
+inftrees.h
+trees.c
+trees.h
+uncompr.c
+zutil.c
+zutil.h
+
+ source files for sample programs
+See examples/README.examples
+
+ unsupported contributions by third parties
+See contrib/README.contrib
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile
new file mode 100644
index 000000000..6bba86c73
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile
@@ -0,0 +1,5 @@
+all:
+ -@echo "Please use ./configure first. Thank you."
+
+distclean:
+ make -f Makefile.in distclean
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile.in b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile.in
new file mode 100644
index 000000000..5a77949ff
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/Makefile.in
@@ -0,0 +1,410 @@
+# Makefile for zlib
+# Copyright (C) 1995-2017 Jean-loup Gailly, Mark Adler
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile and test, type:
+# ./configure; make test
+# Normally configure builds both a static and a shared library.
+# If you want to build just a static library, use: ./configure --static
+
+# To use the asm code, type:
+# cp contrib/asm?86/match.S ./match.S
+# make LOC=-DASMV OBJA=match.o
+
+# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
+# make install
+# To install in $HOME instead of /usr/local, use:
+# make install prefix=$HOME
+
+CC=cc
+
+CFLAGS=-O
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-g -DZLIB_DEBUG
+#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+# -Wstrict-prototypes -Wmissing-prototypes
+
+SFLAGS=-O
+LDFLAGS=
+TEST_LDFLAGS=-L. libz.a
+LDSHARED=$(CC)
+CPP=$(CC) -E
+
+STATICLIB=libz.a
+SHAREDLIB=libz.so
+SHAREDLIBV=libz.so.1.2.11
+SHAREDLIBM=libz.so.1
+LIBS=$(STATICLIB) $(SHAREDLIBV)
+
+AR=ar
+ARFLAGS=rc
+RANLIB=ranlib
+LDCONFIG=ldconfig
+LDSHAREDLIBC=-lc
+TAR=tar
+SHELL=/bin/sh
+EXE=
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+libdir = ${exec_prefix}/lib
+sharedlibdir = ${libdir}
+includedir = ${prefix}/include
+mandir = ${prefix}/share/man
+man3dir = ${mandir}/man3
+pkgconfigdir = ${libdir}/pkgconfig
+SRCDIR=
+ZINC=
+ZINCOUT=-I.
+
+OBJZ = adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o
+OBJG = compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
+OBJC = $(OBJZ) $(OBJG)
+
+PIC_OBJZ = adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo
+PIC_OBJG = compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo
+PIC_OBJC = $(PIC_OBJZ) $(PIC_OBJG)
+
+# to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo
+OBJA =
+PIC_OBJA =
+
+OBJS = $(OBJC) $(OBJA)
+
+PIC_OBJS = $(PIC_OBJC) $(PIC_OBJA)
+
+all: static shared
+
+static: example$(EXE) minigzip$(EXE)
+
+shared: examplesh$(EXE) minigzipsh$(EXE)
+
+all64: example64$(EXE) minigzip64$(EXE)
+
+check: test
+
+test: all teststatic testshared
+
+teststatic: static
+ @TMPST=tmpst_$$; \
+ if echo hello world | ./minigzip | ./minigzip -d && ./example $$TMPST ; then \
+ echo ' *** zlib test OK ***'; \
+ else \
+ echo ' *** zlib test FAILED ***'; false; \
+ fi; \
+ rm -f $$TMPST
+
+testshared: shared
+ @LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
+ LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
+ DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
+ SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \
+ TMPSH=tmpsh_$$; \
+ if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh $$TMPSH; then \
+ echo ' *** zlib shared test OK ***'; \
+ else \
+ echo ' *** zlib shared test FAILED ***'; false; \
+ fi; \
+ rm -f $$TMPSH
+
+test64: all64
+ @TMP64=tmp64_$$; \
+ if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64 $$TMP64; then \
+ echo ' *** zlib 64-bit test OK ***'; \
+ else \
+ echo ' *** zlib 64-bit test FAILED ***'; false; \
+ fi; \
+ rm -f $$TMP64
+
+infcover.o: $(SRCDIR)test/infcover.c $(SRCDIR)zlib.h zconf.h
+ $(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/infcover.c
+
+infcover: infcover.o libz.a
+ $(CC) $(CFLAGS) -o $@ infcover.o libz.a
+
+cover: infcover
+ rm -f *.gcda
+ ./infcover
+ gcov inf*.c
+
+libz.a: $(OBJS)
+ $(AR) $(ARFLAGS) $@ $(OBJS)
+ -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
+
+match.o: match.S
+ $(CPP) match.S > _match.s
+ $(CC) -c _match.s
+ mv _match.o match.o
+ rm -f _match.s
+
+match.lo: match.S
+ $(CPP) match.S > _match.s
+ $(CC) -c -fPIC _match.s
+ mv _match.o match.lo
+ rm -f _match.s
+
+example.o: $(SRCDIR)test/example.c $(SRCDIR)zlib.h zconf.h
+ $(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/example.c
+
+minigzip.o: $(SRCDIR)test/minigzip.c $(SRCDIR)zlib.h zconf.h
+ $(CC) $(CFLAGS) $(ZINCOUT) -c -o $@ $(SRCDIR)test/minigzip.c
+
+example64.o: $(SRCDIR)test/example.c $(SRCDIR)zlib.h zconf.h
+ $(CC) $(CFLAGS) $(ZINCOUT) -D_FILE_OFFSET_BITS=64 -c -o $@ $(SRCDIR)test/example.c
+
+minigzip64.o: $(SRCDIR)test/minigzip.c $(SRCDIR)zlib.h zconf.h
+ $(CC) $(CFLAGS) $(ZINCOUT) -D_FILE_OFFSET_BITS=64 -c -o $@ $(SRCDIR)test/minigzip.c
+
+
+adler32.o: $(SRCDIR)adler32.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)adler32.c
+
+crc32.o: $(SRCDIR)crc32.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)crc32.c
+
+deflate.o: $(SRCDIR)deflate.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)deflate.c
+
+infback.o: $(SRCDIR)infback.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)infback.c
+
+inffast.o: $(SRCDIR)inffast.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inffast.c
+
+inflate.o: $(SRCDIR)inflate.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inflate.c
+
+inftrees.o: $(SRCDIR)inftrees.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)inftrees.c
+
+trees.o: $(SRCDIR)trees.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)trees.c
+
+zutil.o: $(SRCDIR)zutil.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)zutil.c
+
+compress.o: $(SRCDIR)compress.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)compress.c
+
+uncompr.o: $(SRCDIR)uncompr.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)uncompr.c
+
+gzclose.o: $(SRCDIR)gzclose.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzclose.c
+
+gzlib.o: $(SRCDIR)gzlib.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzlib.c
+
+gzread.o: $(SRCDIR)gzread.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzread.c
+
+gzwrite.o: $(SRCDIR)gzwrite.c
+ $(CC) $(CFLAGS) $(ZINC) -c -o $@ $(SRCDIR)gzwrite.c
+
+
+adler32.lo: $(SRCDIR)adler32.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/adler32.o $(SRCDIR)adler32.c
+ -@mv objs/adler32.o $@
+
+crc32.lo: $(SRCDIR)crc32.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/crc32.o $(SRCDIR)crc32.c
+ -@mv objs/crc32.o $@
+
+deflate.lo: $(SRCDIR)deflate.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/deflate.o $(SRCDIR)deflate.c
+ -@mv objs/deflate.o $@
+
+infback.lo: $(SRCDIR)infback.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/infback.o $(SRCDIR)infback.c
+ -@mv objs/infback.o $@
+
+inffast.lo: $(SRCDIR)inffast.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inffast.o $(SRCDIR)inffast.c
+ -@mv objs/inffast.o $@
+
+inflate.lo: $(SRCDIR)inflate.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inflate.o $(SRCDIR)inflate.c
+ -@mv objs/inflate.o $@
+
+inftrees.lo: $(SRCDIR)inftrees.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/inftrees.o $(SRCDIR)inftrees.c
+ -@mv objs/inftrees.o $@
+
+trees.lo: $(SRCDIR)trees.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/trees.o $(SRCDIR)trees.c
+ -@mv objs/trees.o $@
+
+zutil.lo: $(SRCDIR)zutil.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/zutil.o $(SRCDIR)zutil.c
+ -@mv objs/zutil.o $@
+
+compress.lo: $(SRCDIR)compress.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/compress.o $(SRCDIR)compress.c
+ -@mv objs/compress.o $@
+
+uncompr.lo: $(SRCDIR)uncompr.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/uncompr.o $(SRCDIR)uncompr.c
+ -@mv objs/uncompr.o $@
+
+gzclose.lo: $(SRCDIR)gzclose.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzclose.o $(SRCDIR)gzclose.c
+ -@mv objs/gzclose.o $@
+
+gzlib.lo: $(SRCDIR)gzlib.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzlib.o $(SRCDIR)gzlib.c
+ -@mv objs/gzlib.o $@
+
+gzread.lo: $(SRCDIR)gzread.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzread.o $(SRCDIR)gzread.c
+ -@mv objs/gzread.o $@
+
+gzwrite.lo: $(SRCDIR)gzwrite.c
+ -@mkdir objs 2>/dev/null || test -d objs
+ $(CC) $(SFLAGS) $(ZINC) -DPIC -c -o objs/gzwrite.o $(SRCDIR)gzwrite.c
+ -@mv objs/gzwrite.o $@
+
+
+placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
+ $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
+ rm -f $(SHAREDLIB) $(SHAREDLIBM)
+ ln -s $@ $(SHAREDLIB)
+ ln -s $@ $(SHAREDLIBM)
+ -@rmdir objs
+
+example$(EXE): example.o $(STATICLIB)
+ $(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)
+
+minigzip$(EXE): minigzip.o $(STATICLIB)
+ $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
+
+examplesh$(EXE): example.o $(SHAREDLIBV)
+ $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)
+
+minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
+ $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)
+
+example64$(EXE): example64.o $(STATICLIB)
+ $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
+
+minigzip64$(EXE): minigzip64.o $(STATICLIB)
+ $(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)
+
+install-libs: $(LIBS)
+ -@if [ ! -d $(DESTDIR)$(exec_prefix) ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
+ -@if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir -p $(DESTDIR)$(libdir); fi
+ -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
+ -@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi
+ -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
+ rm -f $(DESTDIR)$(libdir)/$(STATICLIB)
+ cp $(STATICLIB) $(DESTDIR)$(libdir)
+ chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB)
+ -@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1
+ -@if test -n "$(SHAREDLIBV)"; then \
+ rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
+ cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \
+ echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \
+ chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
+ echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \
+ rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
+ ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
+ ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
+ ($(LDCONFIG) || true) >/dev/null 2>&1; \
+ fi
+ rm -f $(DESTDIR)$(man3dir)/zlib.3
+ cp $(SRCDIR)zlib.3 $(DESTDIR)$(man3dir)
+ chmod 644 $(DESTDIR)$(man3dir)/zlib.3
+ rm -f $(DESTDIR)$(pkgconfigdir)/zlib.pc
+ cp zlib.pc $(DESTDIR)$(pkgconfigdir)
+ chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc
+# The ranlib in install is needed on NeXTSTEP which checks file times
+# ldconfig is for Linux
+
+install: install-libs
+ -@if [ ! -d $(DESTDIR)$(includedir) ]; then mkdir -p $(DESTDIR)$(includedir); fi
+ rm -f $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
+ cp $(SRCDIR)zlib.h zconf.h $(DESTDIR)$(includedir)
+ chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
+
+uninstall:
+ cd $(DESTDIR)$(includedir) && rm -f zlib.h zconf.h
+ cd $(DESTDIR)$(libdir) && rm -f libz.a; \
+ if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
+ rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
+ fi
+ cd $(DESTDIR)$(man3dir) && rm -f zlib.3
+ cd $(DESTDIR)$(pkgconfigdir) && rm -f zlib.pc
+
+docs: zlib.3.pdf
+
+zlib.3.pdf: $(SRCDIR)zlib.3
+ groff -mandoc -f H -T ps $(SRCDIR)zlib.3 | ps2pdf - $@
+
+zconf.h.cmakein: $(SRCDIR)zconf.h.in
+ -@ TEMPFILE=zconfh_$$; \
+ echo "/#define ZCONF_H/ a\\\\\n#cmakedefine Z_PREFIX\\\\\n#cmakedefine Z_HAVE_UNISTD_H\n" >> $$TEMPFILE &&\
+ sed -f $$TEMPFILE $(SRCDIR)zconf.h.in > $@ &&\
+ touch -r $(SRCDIR)zconf.h.in $@ &&\
+ rm $$TEMPFILE
+
+zconf: $(SRCDIR)zconf.h.in
+ cp -p $(SRCDIR)zconf.h.in zconf.h
+
+mostlyclean: clean
+clean:
+ rm -f *.o *.lo *~ \
+ example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
+ example64$(EXE) minigzip64$(EXE) \
+ infcover \
+ libz.* foo.gz so_locations \
+ _match.s maketree contrib/infback9/*.o
+ rm -rf objs
+ rm -f *.gcda *.gcno *.gcov
+ rm -f contrib/infback9/*.gcda contrib/infback9/*.gcno contrib/infback9/*.gcov
+
+maintainer-clean: distclean
+distclean: clean zconf zconf.h.cmakein docs
+ rm -f Makefile zlib.pc configure.log
+ -@rm -f .DS_Store
+ @if [ -f Makefile.in ]; then \
+ printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile ; \
+ printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile ; \
+ touch -r $(SRCDIR)Makefile.in Makefile ; fi
+ @if [ ! -f zconf.h.in ]; then rm -f zconf.h zconf.h.cmakein ; fi
+ @if [ ! -f zlib.3 ]; then rm -f zlib.3.pdf ; fi
+
+tags:
+ etags $(SRCDIR)*.[ch]
+
+adler32.o zutil.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
+gzclose.o gzlib.o gzread.o gzwrite.o: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
+compress.o example.o minigzip.o uncompr.o: $(SRCDIR)zlib.h zconf.h
+crc32.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
+deflate.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
+infback.o inflate.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h $(SRCDIR)inffixed.h
+inffast.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
+inftrees.o: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
+trees.o: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
+
+adler32.lo zutil.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
+gzclose.lo gzlib.lo gzread.lo gzwrite.lo: $(SRCDIR)zlib.h zconf.h $(SRCDIR)gzguts.h
+compress.lo example.lo minigzip.lo uncompr.lo: $(SRCDIR)zlib.h zconf.h
+crc32.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)crc32.h
+deflate.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h
+infback.lo inflate.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h $(SRCDIR)inffixed.h
+inffast.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h $(SRCDIR)inflate.h $(SRCDIR)inffast.h
+inftrees.lo: $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)inftrees.h
+trees.lo: $(SRCDIR)deflate.h $(SRCDIR)zutil.h $(SRCDIR)zlib.h zconf.h $(SRCDIR)trees.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/README
new file mode 100644
index 000000000..51106de47
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/README
@@ -0,0 +1,115 @@
+ZLIB DATA COMPRESSION LIBRARY
+
+zlib 1.2.11 is a general purpose data compression library. All the code is
+thread safe. The data format used by the zlib library is described by RFCs
+(Request for Comments) 1950 to 1952 in the files
+http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and
+rfc1952 (gzip format).
+
+All functions of the compression library are documented in the file zlib.h
+(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example
+of the library is given in the file test/example.c which also tests that
+the library is working correctly. Another example is given in the file
+test/minigzip.c. The compression library itself is composed of all source
+files in the root directory.
+
+To compile all files and run the test program, follow the instructions given at
+the top of Makefile.in. In short "./configure; make test", and if that goes
+well, "make install" should work for most flavors of Unix. For Windows, use
+one of the special makefiles in win32/ or contrib/vstudio/ . For VMS, use
+make_vms.com.
+
+Questions about zlib should be sent to <zlib@gzip.org>, or to Gilles Vollant
+<info@winimage.com> for the Windows DLL version. The zlib home page is
+http://zlib.net/ . Before reporting a problem, please check this site to
+verify that you have the latest version of zlib; otherwise get the latest
+version and check whether the problem still exists or not.
+
+PLEASE read the zlib FAQ http://zlib.net/zlib_faq.html before asking for help.
+
+Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
+issue of Dr. Dobb's Journal; a copy of the article is available at
+http://marknelson.us/1997/01/01/zlib-engine/ .
+
+The changes made in version 1.2.11 are documented in the file ChangeLog.
+
+Unsupported third party contributions are provided in directory contrib/ .
+
+zlib is available in Java using the java.util.zip package, documented at
+http://java.sun.com/developer/technicalArticles/Programming/compression/ .
+
+A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
+at CPAN (Comprehensive Perl Archive Network) sites, including
+http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
+
+A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
+available in Python 1.5 and later versions, see
+http://docs.python.org/library/zlib.html .
+
+zlib is built into tcl: http://wiki.tcl.tk/4610 .
+
+An experimental package to read and write files in .zip format, written on top
+of zlib by Gilles Vollant <info@winimage.com>, is available in the
+contrib/minizip directory of zlib.
+
+
+Notes for some targets:
+
+- For Windows DLL versions, please see win32/DLL_FAQ.txt
+
+- For 64-bit Irix, deflate.c must be compiled without any optimization. With
+ -O, one libpng test fails. The test works in 32 bit mode (with the -n32
+ compiler flag). The compiler bug has been reported to SGI.
+
+- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works
+ when compiled with cc.
+
+- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is
+ necessary to get gzprintf working correctly. This is done by configure.
+
+- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with
+ other compilers. Use "make test" to check your compiler.
+
+- gzdopen is not supported on RISCOS or BEOS.
+
+- For PalmOs, see http://palmzlib.sourceforge.net/
+
+
+Acknowledgments:
+
+ The deflate format used by zlib was defined by Phil Katz. The deflate and
+ zlib specifications were written by L. Peter Deutsch. Thanks to all the
+ people who reported problems and suggested various improvements in zlib; they
+ are too numerous to cite here.
+
+Copyright notice:
+
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+If you use the zlib library in a product, we would appreciate *not* receiving
+lengthy legal documents to sign. The sources are provided for free but without
+warranty of any kind. The library has been entirely written by Jean-loup
+Gailly and Mark Adler; it does not include third-party code.
+
+If you redistribute modified sources, we would appreciate that you include in
+the file ChangeLog history information documenting your changes. Please read
+the FAQ for more information on the distribution of modified source versions.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/adler32.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/adler32.c
new file mode 100644
index 000000000..d0be4380a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/adler32.c
@@ -0,0 +1,186 @@
+/* adler32.c -- compute the Adler-32 checksum of a data stream
+ * Copyright (C) 1995-2011, 2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#include "zutil.h"
+
+local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
+
+#define BASE 65521U /* largest prime smaller than 65536 */
+#define NMAX 5552
+/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
+
+#define DO1(buf,i) {adler += (buf)[i]; sum2 += adler;}
+#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
+#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
+#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
+#define DO16(buf) DO8(buf,0); DO8(buf,8);
+
+/* use NO_DIVIDE if your processor does not do division in hardware --
+ try it both ways to see which is faster */
+#ifdef NO_DIVIDE
+/* note that this assumes BASE is 65521, where 65536 % 65521 == 15
+ (thank you to John Reiser for pointing this out) */
+# define CHOP(a) \
+ do { \
+ unsigned long tmp = a >> 16; \
+ a &= 0xffffUL; \
+ a += (tmp << 4) - tmp; \
+ } while (0)
+# define MOD28(a) \
+ do { \
+ CHOP(a); \
+ if (a >= BASE) a -= BASE; \
+ } while (0)
+# define MOD(a) \
+ do { \
+ CHOP(a); \
+ MOD28(a); \
+ } while (0)
+# define MOD63(a) \
+ do { /* this assumes a is not negative */ \
+ z_off64_t tmp = a >> 32; \
+ a &= 0xffffffffL; \
+ a += (tmp << 8) - (tmp << 5) + tmp; \
+ tmp = a >> 16; \
+ a &= 0xffffL; \
+ a += (tmp << 4) - tmp; \
+ tmp = a >> 16; \
+ a &= 0xffffL; \
+ a += (tmp << 4) - tmp; \
+ if (a >= BASE) a -= BASE; \
+ } while (0)
+#else
+# define MOD(a) a %= BASE
+# define MOD28(a) a %= BASE
+# define MOD63(a) a %= BASE
+#endif
+
+/* ========================================================================= */
+uLong ZEXPORT adler32_z(adler, buf, len)
+ uLong adler;
+ const Bytef *buf;
+ z_size_t len;
+{
+ unsigned long sum2;
+ unsigned n;
+
+ /* split Adler-32 into component sums */
+ sum2 = (adler >> 16) & 0xffff;
+ adler &= 0xffff;
+
+ /* in case user likes doing a byte at a time, keep it fast */
+ if (len == 1) {
+ adler += buf[0];
+ if (adler >= BASE)
+ adler -= BASE;
+ sum2 += adler;
+ if (sum2 >= BASE)
+ sum2 -= BASE;
+ return adler | (sum2 << 16);
+ }
+
+ /* initial Adler-32 value (deferred check for len == 1 speed) */
+ if (buf == Z_NULL)
+ return 1L;
+
+ /* in case short lengths are provided, keep it somewhat fast */
+ if (len < 16) {
+ while (len--) {
+ adler += *buf++;
+ sum2 += adler;
+ }
+ if (adler >= BASE)
+ adler -= BASE;
+ MOD28(sum2); /* only added so many BASE's */
+ return adler | (sum2 << 16);
+ }
+
+ /* do length NMAX blocks -- requires just one modulo operation */
+ while (len >= NMAX) {
+ len -= NMAX;
+ n = NMAX / 16; /* NMAX is divisible by 16 */
+ do {
+ DO16(buf); /* 16 sums unrolled */
+ buf += 16;
+ } while (--n);
+ MOD(adler);
+ MOD(sum2);
+ }
+
+ /* do remaining bytes (less than NMAX, still just one modulo) */
+ if (len) { /* avoid modulos if none remaining */
+ while (len >= 16) {
+ len -= 16;
+ DO16(buf);
+ buf += 16;
+ }
+ while (len--) {
+ adler += *buf++;
+ sum2 += adler;
+ }
+ MOD(adler);
+ MOD(sum2);
+ }
+
+ /* return recombined sums */
+ return adler | (sum2 << 16);
+}
+
+/* ========================================================================= */
+uLong ZEXPORT adler32(adler, buf, len)
+ uLong adler;
+ const Bytef *buf;
+ uInt len;
+{
+ return adler32_z(adler, buf, len);
+}
+
+/* ========================================================================= */
+local uLong adler32_combine_(adler1, adler2, len2)
+ uLong adler1;
+ uLong adler2;
+ z_off64_t len2;
+{
+ unsigned long sum1;
+ unsigned long sum2;
+ unsigned rem;
+
+ /* for negative len, return invalid adler32 as a clue for debugging */
+ if (len2 < 0)
+ return 0xffffffffUL;
+
+ /* the derivation of this formula is left as an exercise for the reader */
+ MOD63(len2); /* assumes len2 >= 0 */
+ rem = (unsigned)len2;
+ sum1 = adler1 & 0xffff;
+ sum2 = rem * sum1;
+ MOD(sum2);
+ sum1 += (adler2 & 0xffff) + BASE - 1;
+ sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
+ if (sum1 >= BASE) sum1 -= BASE;
+ if (sum1 >= BASE) sum1 -= BASE;
+ if (sum2 >= ((unsigned long)BASE << 1)) sum2 -= ((unsigned long)BASE << 1);
+ if (sum2 >= BASE) sum2 -= BASE;
+ return sum1 | (sum2 << 16);
+}
+
+/* ========================================================================= */
+uLong ZEXPORT adler32_combine(adler1, adler2, len2)
+ uLong adler1;
+ uLong adler2;
+ z_off_t len2;
+{
+ return adler32_combine_(adler1, adler2, len2);
+}
+
+uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
+ uLong adler1;
+ uLong adler2;
+ z_off64_t len2;
+{
+ return adler32_combine_(adler1, adler2, len2);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.pup b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.pup
new file mode 100644
index 000000000..8940c120f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.pup
@@ -0,0 +1,69 @@
+# Amiga powerUP (TM) Makefile
+# makefile for libpng and SAS C V6.58/7.00 PPC compiler
+# Copyright (C) 1998 by Andreas R. Kleinert
+
+LIBNAME = libzip.a
+
+CC = scppc
+CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL \
+ OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8 NOVER
+AR = ppc-amigaos-ar cr
+RANLIB = ppc-amigaos-ranlib
+LD = ppc-amigaos-ld -r
+LDFLAGS = -o
+LDLIBS = LIB:scppc.a LIB:end.o
+RM = delete quiet
+
+OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \
+ uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
+
+TEST_OBJS = example.o minigzip.o
+
+all: example minigzip
+
+check: test
+test: all
+ example
+ echo hello world | minigzip | minigzip -d
+
+$(LIBNAME): $(OBJS)
+ $(AR) $@ $(OBJS)
+ -$(RANLIB) $@
+
+example: example.o $(LIBNAME)
+ $(LD) $(LDFLAGS) $@ LIB:c_ppc.o $@.o $(LIBNAME) $(LDLIBS)
+
+minigzip: minigzip.o $(LIBNAME)
+ $(LD) $(LDFLAGS) $@ LIB:c_ppc.o $@.o $(LIBNAME) $(LDLIBS)
+
+mostlyclean: clean
+clean:
+ $(RM) *.o example minigzip $(LIBNAME) foo.gz
+
+zip:
+ zip -ul9 zlib README ChangeLog Makefile Make????.??? Makefile.?? \
+ descrip.mms *.[ch]
+
+tgz:
+ cd ..; tar cfz zlib/zlib.tgz zlib/README zlib/ChangeLog zlib/Makefile \
+ zlib/Make????.??? zlib/Makefile.?? zlib/descrip.mms zlib/*.[ch]
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+adler32.o: zlib.h zconf.h
+compress.o: zlib.h zconf.h
+crc32.o: crc32.h zlib.h zconf.h
+deflate.o: deflate.h zutil.h zlib.h zconf.h
+example.o: zlib.h zconf.h
+gzclose.o: zlib.h zconf.h gzguts.h
+gzlib.o: zlib.h zconf.h gzguts.h
+gzread.o: zlib.h zconf.h gzguts.h
+gzwrite.o: zlib.h zconf.h gzguts.h
+inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inftrees.o: zutil.h zlib.h zconf.h inftrees.h
+minigzip.o: zlib.h zconf.h
+trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
+uncompr.o: zlib.h zconf.h
+zutil.o: zutil.h zlib.h zconf.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.sas b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.sas
new file mode 100644
index 000000000..749e29152
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/amiga/Makefile.sas
@@ -0,0 +1,68 @@
+# SMakefile for zlib
+# Modified from the standard UNIX Makefile Copyright Jean-loup Gailly
+# Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi>
+# Amiga, SAS/C 6.56 & Smake
+
+CC=sc
+CFLAGS=OPT
+#CFLAGS=OPT CPU=68030
+#CFLAGS=DEBUG=LINE
+LDFLAGS=LIB z.lib
+
+SCOPTIONS=OPTSCHED OPTINLINE OPTALIAS OPTTIME OPTINLOCAL STRMERGE \
+ NOICONS PARMS=BOTH NOSTACKCHECK UTILLIB NOVERSION ERRORREXX \
+ DEF=POSTINC
+
+OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \
+ uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
+
+TEST_OBJS = example.o minigzip.o
+
+all: SCOPTIONS example minigzip
+
+check: test
+test: all
+ example
+ echo hello world | minigzip | minigzip -d
+
+install: z.lib
+ copy clone zlib.h zconf.h INCLUDE:
+ copy clone z.lib LIB:
+
+z.lib: $(OBJS)
+ oml z.lib r $(OBJS)
+
+example: example.o z.lib
+ $(CC) $(CFLAGS) LINK TO $@ example.o $(LDFLAGS)
+
+minigzip: minigzip.o z.lib
+ $(CC) $(CFLAGS) LINK TO $@ minigzip.o $(LDFLAGS)
+
+mostlyclean: clean
+clean:
+ -delete force quiet example minigzip *.o z.lib foo.gz *.lnk SCOPTIONS
+
+SCOPTIONS: Makefile.sas
+ copy to $@ <from <
+$(SCOPTIONS)
+<
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+adler32.o: zlib.h zconf.h
+compress.o: zlib.h zconf.h
+crc32.o: crc32.h zlib.h zconf.h
+deflate.o: deflate.h zutil.h zlib.h zconf.h
+example.o: zlib.h zconf.h
+gzclose.o: zlib.h zconf.h gzguts.h
+gzlib.o: zlib.h zconf.h gzguts.h
+gzread.o: zlib.h zconf.h gzguts.h
+gzwrite.o: zlib.h zconf.h gzguts.h
+inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inftrees.o: zutil.h zlib.h zconf.h inftrees.h
+minigzip.o: zlib.h zconf.h
+trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
+uncompr.o: zlib.h zconf.h
+zutil.o: zutil.h zlib.h zconf.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/compress.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/compress.c
new file mode 100644
index 000000000..e2db404ab
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/compress.c
@@ -0,0 +1,86 @@
+/* compress.c -- compress a memory buffer
+ * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#define ZLIB_INTERNAL
+#include "zlib.h"
+
+/* ===========================================================================
+ Compresses the source buffer into the destination buffer. The level
+ parameter has the same meaning as in deflateInit. sourceLen is the byte
+ length of the source buffer. Upon entry, destLen is the total size of the
+ destination buffer, which must be at least 0.1% larger than sourceLen plus
+ 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
+
+ compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer,
+ Z_STREAM_ERROR if the level parameter is invalid.
+*/
+int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong sourceLen;
+ int level;
+{
+ z_stream stream;
+ int err;
+ const uInt max = (uInt)-1;
+ uLong left;
+
+ left = *destLen;
+ *destLen = 0;
+
+ stream.zalloc = (alloc_func)0;
+ stream.zfree = (free_func)0;
+ stream.opaque = (voidpf)0;
+
+ err = deflateInit(&stream, level);
+ if (err != Z_OK) return err;
+
+ stream.next_out = dest;
+ stream.avail_out = 0;
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
+
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
+ sourceLen -= stream.avail_in;
+ }
+ err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
+ } while (err == Z_OK);
+
+ *destLen = stream.total_out;
+ deflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK : err;
+}
+
+/* ===========================================================================
+ */
+int ZEXPORT compress (dest, destLen, source, sourceLen)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong sourceLen;
+{
+ return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
+}
+
+/* ===========================================================================
+ If the default memLevel or windowBits for deflateInit() is changed, then
+ this function needs to be updated.
+ */
+uLong ZEXPORT compressBound (sourceLen)
+ uLong sourceLen;
+{
+ return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
+ (sourceLen >> 25) + 13;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/configure b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/configure
new file mode 100644
index 000000000..e974d1fd7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/configure
@@ -0,0 +1,921 @@
+#!/bin/sh
+# configure script for zlib.
+#
+# Normally configure builds both a static and a shared library.
+# If you want to build just a static library, use: ./configure --static
+#
+# To impose specific compiler or flags or install directory, use for example:
+# prefix=$HOME CC=cc CFLAGS="-O4" ./configure
+# or for csh/tcsh users:
+# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure)
+
+# Incorrect settings of CC or CFLAGS may prevent creating a shared library.
+# If you have problems, try without defining CC and CFLAGS before reporting
+# an error.
+
+# start off configure.log
+echo -------------------- >> configure.log
+echo $0 $* >> configure.log
+date >> configure.log
+
+# get source directory
+SRCDIR=`dirname $0`
+if test $SRCDIR = "."; then
+ ZINC=""
+ ZINCOUT="-I."
+ SRCDIR=""
+else
+ ZINC='-include zconf.h'
+ ZINCOUT='-I. -I$(SRCDIR)'
+ SRCDIR="$SRCDIR/"
+fi
+
+# set command prefix for cross-compilation
+if [ -n "${CHOST}" ]; then
+ uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`"
+ CROSS_PREFIX="${CHOST}-"
+fi
+
+# destination name for static library
+STATICLIB=libz.a
+
+# extract zlib version numbers from zlib.h
+VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < ${SRCDIR}zlib.h`
+VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < ${SRCDIR}zlib.h`
+VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
+VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
+
+# establish commands for library building
+if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+ AR=${AR-"${CROSS_PREFIX}ar"}
+ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+else
+ AR=${AR-"ar"}
+ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+fi
+ARFLAGS=${ARFLAGS-"rc"}
+if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+ RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
+ test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
+else
+ RANLIB=${RANLIB-"ranlib"}
+fi
+if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+ NM=${NM-"${CROSS_PREFIX}nm"}
+ test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
+else
+ NM=${NM-"nm"}
+fi
+
+# set defaults before processing command line options
+LDCONFIG=${LDCONFIG-"ldconfig"}
+LDSHAREDLIBC="${LDSHAREDLIBC--lc}"
+ARCHS=
+prefix=${prefix-/usr/local}
+exec_prefix=${exec_prefix-'${prefix}'}
+libdir=${libdir-'${exec_prefix}/lib'}
+sharedlibdir=${sharedlibdir-'${libdir}'}
+includedir=${includedir-'${prefix}/include'}
+mandir=${mandir-'${prefix}/share/man'}
+shared_ext='.so'
+shared=1
+solo=0
+cover=0
+zprefix=0
+zconst=0
+build64=0
+gcc=0
+warn=0
+debug=0
+old_cc="$CC"
+old_cflags="$CFLAGS"
+OBJC='$(OBJZ) $(OBJG)'
+PIC_OBJC='$(PIC_OBJZ) $(PIC_OBJG)'
+
+# leave this script, optionally in a bad way
+leave()
+{
+ if test "$*" != "0"; then
+ echo "** $0 aborting." | tee -a configure.log
+ fi
+ rm -f $test.[co] $test $test$shared_ext $test.gcno ./--version
+ echo -------------------- >> configure.log
+ echo >> configure.log
+ echo >> configure.log
+ exit $1
+}
+
+# process command line options
+while test $# -ge 1
+do
+case "$1" in
+ -h* | --help)
+ echo 'usage:' | tee -a configure.log
+ echo ' configure [--const] [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log
+ echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
+ echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
+ exit 0 ;;
+ -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
+ -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
+ -l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;
+ --sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;
+ -i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;
+ -u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;
+ -p* | --prefix) prefix="$2"; shift; shift ;;
+ -e* | --eprefix) exec_prefix="$2"; shift; shift ;;
+ -l* | --libdir) libdir="$2"; shift; shift ;;
+ -i* | --includedir) includedir="$2"; shift; shift ;;
+ -s* | --shared | --enable-shared) shared=1; shift ;;
+ -t | --static) shared=0; shift ;;
+ --solo) solo=1; shift ;;
+ --cover) cover=1; shift ;;
+ -z* | --zprefix) zprefix=1; shift ;;
+ -6* | --64) build64=1; shift ;;
+ -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
+ --sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
+ --localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
+ -c* | --const) zconst=1; shift ;;
+ -w* | --warn) warn=1; shift ;;
+ -d* | --debug) debug=1; shift ;;
+ *)
+ echo "unknown option: $1" | tee -a configure.log
+ echo "$0 --help for help" | tee -a configure.log
+ leave 1;;
+ esac
+done
+
+# temporary file name
+test=ztest$$
+
+# put arguments in log, also put test file in log if used in arguments
+show()
+{
+ case "$*" in
+ *$test.c*)
+ echo === $test.c === >> configure.log
+ cat $test.c >> configure.log
+ echo === >> configure.log;;
+ esac
+ echo $* >> configure.log
+}
+
+# check for gcc vs. cc and set compile and link flags based on the system identified by uname
+cat > $test.c <<EOF
+extern int getchar();
+int hello() {return getchar();}
+EOF
+
+test -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... | tee -a configure.log
+cc=${CC-${CROSS_PREFIX}gcc}
+cflags=${CFLAGS-"-O3"}
+# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
+case "$cc" in
+ *gcc*) gcc=1 ;;
+ *clang*) gcc=1 ;;
+esac
+case `$cc -v 2>&1` in
+ *gcc*) gcc=1 ;;
+ *clang*) gcc=1 ;;
+esac
+
+show $cc -c $test.c
+if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
+ echo ... using gcc >> configure.log
+ CC="$cc"
+ CFLAGS="${CFLAGS--O3}"
+ SFLAGS="${CFLAGS--O3} -fPIC"
+ if test "$ARCHS"; then
+ CFLAGS="${CFLAGS} ${ARCHS}"
+ LDFLAGS="${LDFLAGS} ${ARCHS}"
+ fi
+ if test $build64 -eq 1; then
+ CFLAGS="${CFLAGS} -m64"
+ SFLAGS="${SFLAGS} -m64"
+ fi
+ if test "$warn" -eq 1; then
+ if test "$zconst" -eq 1; then
+ CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -pedantic -DZLIB_CONST"
+ else
+ CFLAGS="${CFLAGS} -Wall -Wextra -pedantic"
+ fi
+ fi
+ if test $debug -eq 1; then
+ CFLAGS="${CFLAGS} -DZLIB_DEBUG"
+ SFLAGS="${SFLAGS} -DZLIB_DEBUG"
+ fi
+ if test -z "$uname"; then
+ uname=`(uname -s || echo unknown) 2>/dev/null`
+ fi
+ case "$uname" in
+ Linux* | linux* | GNU | GNU/* | solaris*)
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"} ;;
+ *BSD | *bsd* | DragonFly)
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"}
+ LDCONFIG="ldconfig -m" ;;
+ CYGWIN* | Cygwin* | cygwin* | OS/2*)
+ EXE='.exe' ;;
+ MINGW* | mingw*)
+# temporary bypass
+ rm -f $test.[co] $test $test$shared_ext
+ echo "Please use win32/Makefile.gcc instead." | tee -a configure.log
+ leave 1
+ LDSHARED=${LDSHARED-"$cc -shared"}
+ LDSHAREDLIBC=""
+ EXE='.exe' ;;
+ QNX*) # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4
+ # (alain.bonnefoy@icbt.com)
+ LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"} ;;
+ HP-UX*)
+ LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"}
+ case `(uname -m || echo unknown) 2>/dev/null` in
+ ia64)
+ shared_ext='.so'
+ SHAREDLIB='libz.so' ;;
+ *)
+ shared_ext='.sl'
+ SHAREDLIB='libz.sl' ;;
+ esac ;;
+ Darwin* | darwin*)
+ shared_ext='.dylib'
+ SHAREDLIB=libz$shared_ext
+ SHAREDLIBV=libz.$VER$shared_ext
+ SHAREDLIBM=libz.$VER1$shared_ext
+ LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
+ if libtool -V 2>&1 | grep Apple > /dev/null; then
+ AR="libtool"
+ else
+ AR="/usr/bin/libtool"
+ fi
+ ARFLAGS="-o" ;;
+ *) LDSHARED=${LDSHARED-"$cc -shared"} ;;
+ esac
+else
+ # find system name and corresponding cc options
+ CC=${CC-cc}
+ gcc=0
+ echo ... using $CC >> configure.log
+ if test -z "$uname"; then
+ uname=`(uname -sr || echo unknown) 2>/dev/null`
+ fi
+ case "$uname" in
+ HP-UX*) SFLAGS=${CFLAGS-"-O +z"}
+ CFLAGS=${CFLAGS-"-O"}
+# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"}
+ LDSHARED=${LDSHARED-"ld -b"}
+ case `(uname -m || echo unknown) 2>/dev/null` in
+ ia64)
+ shared_ext='.so'
+ SHAREDLIB='libz.so' ;;
+ *)
+ shared_ext='.sl'
+ SHAREDLIB='libz.sl' ;;
+ esac ;;
+ IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."}
+ CFLAGS=${CFLAGS-"-ansi -O2"}
+ LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;
+ OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"}
+ CFLAGS=${CFLAGS-"-O -std1"}
+ LDFLAGS="${LDFLAGS} -Wl,-rpath,."
+ LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"} ;;
+ OSF1*) SFLAGS=${CFLAGS-"-O -std1"}
+ CFLAGS=${CFLAGS-"-O -std1"}
+ LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;
+ QNX*) SFLAGS=${CFLAGS-"-4 -O"}
+ CFLAGS=${CFLAGS-"-4 -O"}
+ LDSHARED=${LDSHARED-"cc"}
+ RANLIB=${RANLIB-"true"}
+ AR="cc"
+ ARFLAGS="-A" ;;
+ SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "}
+ CFLAGS=${CFLAGS-"-O3"}
+ LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;;
+ SunOS\ 5* | solaris*)
+ LDSHARED=${LDSHARED-"cc -G -h libz$shared_ext.$VER1"}
+ SFLAGS=${CFLAGS-"-fast -KPIC"}
+ CFLAGS=${CFLAGS-"-fast"}
+ if test $build64 -eq 1; then
+ # old versions of SunPRO/Workshop/Studio don't support -m64,
+ # but newer ones do. Check for it.
+ flag64=`$CC -flags | egrep -- '^-m64'`
+ if test x"$flag64" != x"" ; then
+ CFLAGS="${CFLAGS} -m64"
+ SFLAGS="${SFLAGS} -m64"
+ else
+ case `(uname -m || echo unknown) 2>/dev/null` in
+ i86*)
+ SFLAGS="$SFLAGS -xarch=amd64"
+ CFLAGS="$CFLAGS -xarch=amd64" ;;
+ *)
+ SFLAGS="$SFLAGS -xarch=v9"
+ CFLAGS="$CFLAGS -xarch=v9" ;;
+ esac
+ fi
+ fi
+ if test -n "$ZINC"; then
+ ZINC='-I- -I. -I$(SRCDIR)'
+ fi
+ ;;
+ SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"}
+ CFLAGS=${CFLAGS-"-O2"}
+ LDSHARED=${LDSHARED-"ld"} ;;
+ SunStudio\ 9*) SFLAGS=${CFLAGS-"-fast -xcode=pic32 -xtarget=ultra3 -xarch=v9b"}
+ CFLAGS=${CFLAGS-"-fast -xtarget=ultra3 -xarch=v9b"}
+ LDSHARED=${LDSHARED-"cc -xarch=v9b"} ;;
+ UNIX_System_V\ 4.2.0)
+ SFLAGS=${CFLAGS-"-KPIC -O"}
+ CFLAGS=${CFLAGS-"-O"}
+ LDSHARED=${LDSHARED-"cc -G"} ;;
+ UNIX_SV\ 4.2MP)
+ SFLAGS=${CFLAGS-"-Kconform_pic -O"}
+ CFLAGS=${CFLAGS-"-O"}
+ LDSHARED=${LDSHARED-"cc -G"} ;;
+ OpenUNIX\ 5)
+ SFLAGS=${CFLAGS-"-KPIC -O"}
+ CFLAGS=${CFLAGS-"-O"}
+ LDSHARED=${LDSHARED-"cc -G"} ;;
+ AIX*) # Courtesy of dbakker@arrayasolutions.com
+ SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
+ CFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
+ LDSHARED=${LDSHARED-"xlc -G"} ;;
+ # send working options for other systems to zlib@gzip.org
+ *) SFLAGS=${CFLAGS-"-O"}
+ CFLAGS=${CFLAGS-"-O"}
+ LDSHARED=${LDSHARED-"cc -shared"} ;;
+ esac
+fi
+
+# destination names for shared library if not defined above
+SHAREDLIB=${SHAREDLIB-"libz$shared_ext"}
+SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
+SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
+
+echo >> configure.log
+
+# define functions for testing compiler and library characteristics and logging the results
+
+cat > $test.c <<EOF
+#error error
+EOF
+if ($CC -c $CFLAGS $test.c) 2>/dev/null; then
+ try()
+ {
+ show $*
+ test "`( $* ) 2>&1 | tee -a configure.log`" = ""
+ }
+ echo - using any output from compiler to indicate an error >> configure.log
+else
+ try()
+ {
+ show $*
+ ( $* ) >> configure.log 2>&1
+ ret=$?
+ if test $ret -ne 0; then
+ echo "(exit code "$ret")" >> configure.log
+ fi
+ return $ret
+ }
+fi
+
+tryboth()
+{
+ show $*
+ got=`( $* ) 2>&1`
+ ret=$?
+ printf %s "$got" >> configure.log
+ if test $ret -ne 0; then
+ return $ret
+ fi
+ test "$got" = ""
+}
+
+cat > $test.c << EOF
+int foo() { return 0; }
+EOF
+echo "Checking for obsessive-compulsive compiler options..." >> configure.log
+if try $CC -c $CFLAGS $test.c; then
+ :
+else
+ echo "Compiler error reporting is too harsh for $0 (perhaps remove -Werror)." | tee -a configure.log
+ leave 1
+fi
+
+echo >> configure.log
+
+# see if shared library build supported
+cat > $test.c <<EOF
+extern int getchar();
+int hello() {return getchar();}
+EOF
+if test $shared -eq 1; then
+ echo Checking for shared library support... | tee -a configure.log
+ # we must test in two steps (cc then ld), required at least on SunOS 4.x
+ if try $CC -w -c $SFLAGS $test.c &&
+ try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
+ echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
+ elif test -z "$old_cc" -a -z "$old_cflags"; then
+ echo No shared library support. | tee -a configure.log
+ shared=0;
+ else
+ echo 'No shared library support; try without defining CC and CFLAGS' | tee -a configure.log
+ shared=0;
+ fi
+fi
+if test $shared -eq 0; then
+ LDSHARED="$CC"
+ ALL="static"
+ TEST="all teststatic"
+ SHAREDLIB=""
+ SHAREDLIBV=""
+ SHAREDLIBM=""
+ echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log
+else
+ ALL="static shared"
+ TEST="all teststatic testshared"
+fi
+
+# check for underscores in external names for use by assembler code
+CPP=${CPP-"$CC -E"}
+case $CFLAGS in
+ *ASMV*)
+ echo >> configure.log
+ show "$NM $test.o | grep _hello"
+ if test "`$NM $test.o | grep _hello | tee -a configure.log`" = ""; then
+ CPP="$CPP -DNO_UNDERLINE"
+ echo Checking for underline in external names... No. | tee -a configure.log
+ else
+ echo Checking for underline in external names... Yes. | tee -a configure.log
+ fi ;;
+esac
+
+echo >> configure.log
+
+# check for size_t
+cat > $test.c <<EOF
+#include <stdio.h>
+#include <stdlib.h>
+size_t dummy = 0;
+EOF
+if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for size_t... Yes." | tee -a configure.log
+ need_sizet=0
+else
+ echo "Checking for size_t... No." | tee -a configure.log
+ need_sizet=1
+fi
+
+echo >> configure.log
+
+# find the size_t integer type, if needed
+if test $need_sizet -eq 1; then
+ cat > $test.c <<EOF
+long long dummy = 0;
+EOF
+ if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for long long... Yes." | tee -a configure.log
+ cat > $test.c <<EOF
+#include <stdio.h>
+int main(void) {
+ if (sizeof(void *) <= sizeof(int)) puts("int");
+ else if (sizeof(void *) <= sizeof(long)) puts("long");
+ else puts("z_longlong");
+ return 0;
+}
+EOF
+ else
+ echo "Checking for long long... No." | tee -a configure.log
+ cat > $test.c <<EOF
+#include <stdio.h>
+int main(void) {
+ if (sizeof(void *) <= sizeof(int)) puts("int");
+ else puts("long");
+ return 0;
+}
+EOF
+ fi
+ if try $CC $CFLAGS -o $test $test.c; then
+ sizet=`./$test`
+ echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
+ else
+ echo "Failed to find a pointer-size integer type." | tee -a configure.log
+ leave 1
+ fi
+fi
+
+if test $need_sizet -eq 1; then
+ CFLAGS="${CFLAGS} -DNO_SIZE_T=${sizet}"
+ SFLAGS="${SFLAGS} -DNO_SIZE_T=${sizet}"
+fi
+
+echo >> configure.log
+
+# check for large file support, and if none, check for fseeko()
+cat > $test.c <<EOF
+#include <sys/types.h>
+off64_t dummy = 0;
+EOF
+if try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then
+ CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCE=1"
+ SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"
+ ALL="${ALL} all64"
+ TEST="${TEST} test64"
+ echo "Checking for off64_t... Yes." | tee -a configure.log
+ echo "Checking for fseeko... Yes." | tee -a configure.log
+else
+ echo "Checking for off64_t... No." | tee -a configure.log
+ echo >> configure.log
+ cat > $test.c <<EOF
+#include <stdio.h>
+int main(void) {
+ fseeko(NULL, 0, 0);
+ return 0;
+}
+EOF
+ if try $CC $CFLAGS -o $test $test.c; then
+ echo "Checking for fseeko... Yes." | tee -a configure.log
+ else
+ CFLAGS="${CFLAGS} -DNO_FSEEKO"
+ SFLAGS="${SFLAGS} -DNO_FSEEKO"
+ echo "Checking for fseeko... No." | tee -a configure.log
+ fi
+fi
+
+echo >> configure.log
+
+# check for strerror() for use by gz* functions
+cat > $test.c <<EOF
+#include <string.h>
+#include <errno.h>
+int main() { return strlen(strerror(errno)); }
+EOF
+if try $CC $CFLAGS -o $test $test.c; then
+ echo "Checking for strerror... Yes." | tee -a configure.log
+else
+ CFLAGS="${CFLAGS} -DNO_STRERROR"
+ SFLAGS="${SFLAGS} -DNO_STRERROR"
+ echo "Checking for strerror... No." | tee -a configure.log
+fi
+
+# copy clean zconf.h for subsequent edits
+cp -p ${SRCDIR}zconf.h.in zconf.h
+
+echo >> configure.log
+
+# check for unistd.h and save result in zconf.h
+cat > $test.c <<EOF
+#include <unistd.h>
+int main() { return 0; }
+EOF
+if try $CC -c $CFLAGS $test.c; then
+ sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
+ mv zconf.temp.h zconf.h
+ echo "Checking for unistd.h... Yes." | tee -a configure.log
+else
+ echo "Checking for unistd.h... No." | tee -a configure.log
+fi
+
+echo >> configure.log
+
+# check for stdarg.h and save result in zconf.h
+cat > $test.c <<EOF
+#include <stdarg.h>
+int main() { return 0; }
+EOF
+if try $CC -c $CFLAGS $test.c; then
+ sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
+ mv zconf.temp.h zconf.h
+ echo "Checking for stdarg.h... Yes." | tee -a configure.log
+else
+ echo "Checking for stdarg.h... No." | tee -a configure.log
+fi
+
+# if the z_ prefix was requested, save that in zconf.h
+if test $zprefix -eq 1; then
+ sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h
+ mv zconf.temp.h zconf.h
+ echo >> configure.log
+ echo "Using z_ prefix on all symbols." | tee -a configure.log
+fi
+
+# if --solo compilation was requested, save that in zconf.h and remove gz stuff from object lists
+if test $solo -eq 1; then
+ sed '/#define ZCONF_H/a\
+#define Z_SOLO
+
+' < zconf.h > zconf.temp.h
+ mv zconf.temp.h zconf.h
+OBJC='$(OBJZ)'
+PIC_OBJC='$(PIC_OBJZ)'
+fi
+
+# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X
+if test $cover -eq 1; then
+ CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
+ if test -n "$GCC_CLASSIC"; then
+ CC=$GCC_CLASSIC
+ fi
+fi
+
+echo >> configure.log
+
+# conduct a series of tests to resolve eight possible cases of using "vs" or "s" printf functions
+# (using stdarg or not), with or without "n" (proving size of buffer), and with or without a
+# return value. The most secure result is vsnprintf() with a return value. snprintf() with a
+# return value is secure as well, but then gzprintf() will be limited to 20 arguments.
+cat > $test.c <<EOF
+#include <stdio.h>
+#include <stdarg.h>
+#include "zconf.h"
+int main()
+{
+#ifndef STDC
+ choke me
+#endif
+ return 0;
+}
+EOF
+if try $CC -c $CFLAGS $test.c; then
+ echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." | tee -a configure.log
+
+ echo >> configure.log
+ cat > $test.c <<EOF
+#include <stdio.h>
+#include <stdarg.h>
+int mytest(const char *fmt, ...)
+{
+ char buf[20];
+ va_list ap;
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+ return 0;
+}
+int main()
+{
+ return (mytest("Hello%d\n", 1));
+}
+EOF
+ if try $CC $CFLAGS -o $test $test.c; then
+ echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
+
+ echo >> configure.log
+ cat >$test.c <<EOF
+#include <stdio.h>
+#include <stdarg.h>
+int mytest(const char *fmt, ...)
+{
+ int n;
+ char buf[20];
+ va_list ap;
+ va_start(ap, fmt);
+ n = vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+ return n;
+}
+int main()
+{
+ return (mytest("Hello%d\n", 1));
+}
+EOF
+
+ if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for return value of vsnprintf()... Yes." | tee -a configure.log
+ else
+ CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
+ SFLAGS="$SFLAGS -DHAS_vsnprintf_void"
+ echo "Checking for return value of vsnprintf()... No." | tee -a configure.log
+ echo " WARNING: apparently vsnprintf() does not return a value. zlib" | tee -a configure.log
+ echo " can build but will be open to possible string-format security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+ fi
+ else
+ CFLAGS="$CFLAGS -DNO_vsnprintf"
+ SFLAGS="$SFLAGS -DNO_vsnprintf"
+ echo "Checking for vsnprintf() in stdio.h... No." | tee -a configure.log
+ echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
+ echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+
+ echo >> configure.log
+ cat >$test.c <<EOF
+#include <stdio.h>
+#include <stdarg.h>
+int mytest(const char *fmt, ...)
+{
+ int n;
+ char buf[20];
+ va_list ap;
+ va_start(ap, fmt);
+ n = vsprintf(buf, fmt, ap);
+ va_end(ap);
+ return n;
+}
+int main()
+{
+ return (mytest("Hello%d\n", 1));
+}
+EOF
+
+ if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for return value of vsprintf()... Yes." | tee -a configure.log
+ else
+ CFLAGS="$CFLAGS -DHAS_vsprintf_void"
+ SFLAGS="$SFLAGS -DHAS_vsprintf_void"
+ echo "Checking for return value of vsprintf()... No." | tee -a configure.log
+ echo " WARNING: apparently vsprintf() does not return a value. zlib" | tee -a configure.log
+ echo " can build but will be open to possible string-format security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+ fi
+ fi
+else
+ echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." | tee -a configure.log
+
+ echo >> configure.log
+ cat >$test.c <<EOF
+#include <stdio.h>
+int mytest()
+{
+ char buf[20];
+ snprintf(buf, sizeof(buf), "%s", "foo");
+ return 0;
+}
+int main()
+{
+ return (mytest());
+}
+EOF
+
+ if try $CC $CFLAGS -o $test $test.c; then
+ echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
+
+ echo >> configure.log
+ cat >$test.c <<EOF
+#include <stdio.h>
+int mytest()
+{
+ char buf[20];
+ return snprintf(buf, sizeof(buf), "%s", "foo");
+}
+int main()
+{
+ return (mytest());
+}
+EOF
+
+ if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for return value of snprintf()... Yes." | tee -a configure.log
+ else
+ CFLAGS="$CFLAGS -DHAS_snprintf_void"
+ SFLAGS="$SFLAGS -DHAS_snprintf_void"
+ echo "Checking for return value of snprintf()... No." | tee -a configure.log
+ echo " WARNING: apparently snprintf() does not return a value. zlib" | tee -a configure.log
+ echo " can build but will be open to possible string-format security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+ fi
+ else
+ CFLAGS="$CFLAGS -DNO_snprintf"
+ SFLAGS="$SFLAGS -DNO_snprintf"
+ echo "Checking for snprintf() in stdio.h... No." | tee -a configure.log
+ echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
+ echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+
+ echo >> configure.log
+ cat >$test.c <<EOF
+#include <stdio.h>
+int mytest()
+{
+ char buf[20];
+ return sprintf(buf, "%s", "foo");
+}
+int main()
+{
+ return (mytest());
+}
+EOF
+
+ if try $CC -c $CFLAGS $test.c; then
+ echo "Checking for return value of sprintf()... Yes." | tee -a configure.log
+ else
+ CFLAGS="$CFLAGS -DHAS_sprintf_void"
+ SFLAGS="$SFLAGS -DHAS_sprintf_void"
+ echo "Checking for return value of sprintf()... No." | tee -a configure.log
+ echo " WARNING: apparently sprintf() does not return a value. zlib" | tee -a configure.log
+ echo " can build but will be open to possible string-format security" | tee -a configure.log
+ echo " vulnerabilities." | tee -a configure.log
+ fi
+ fi
+fi
+
+# see if we can hide zlib internal symbols that are linked between separate source files
+if test "$gcc" -eq 1; then
+ echo >> configure.log
+ cat > $test.c <<EOF
+#define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
+int ZLIB_INTERNAL foo;
+int main()
+{
+ return 0;
+}
+EOF
+ if tryboth $CC -c $CFLAGS $test.c; then
+ CFLAGS="$CFLAGS -DHAVE_HIDDEN"
+ SFLAGS="$SFLAGS -DHAVE_HIDDEN"
+ echo "Checking for attribute(visibility) support... Yes." | tee -a configure.log
+ else
+ echo "Checking for attribute(visibility) support... No." | tee -a configure.log
+ fi
+fi
+
+# show the results in the log
+echo >> configure.log
+echo ALL = $ALL >> configure.log
+echo AR = $AR >> configure.log
+echo ARFLAGS = $ARFLAGS >> configure.log
+echo CC = $CC >> configure.log
+echo CFLAGS = $CFLAGS >> configure.log
+echo CPP = $CPP >> configure.log
+echo EXE = $EXE >> configure.log
+echo LDCONFIG = $LDCONFIG >> configure.log
+echo LDFLAGS = $LDFLAGS >> configure.log
+echo LDSHARED = $LDSHARED >> configure.log
+echo LDSHAREDLIBC = $LDSHAREDLIBC >> configure.log
+echo OBJC = $OBJC >> configure.log
+echo PIC_OBJC = $PIC_OBJC >> configure.log
+echo RANLIB = $RANLIB >> configure.log
+echo SFLAGS = $SFLAGS >> configure.log
+echo SHAREDLIB = $SHAREDLIB >> configure.log
+echo SHAREDLIBM = $SHAREDLIBM >> configure.log
+echo SHAREDLIBV = $SHAREDLIBV >> configure.log
+echo STATICLIB = $STATICLIB >> configure.log
+echo TEST = $TEST >> configure.log
+echo VER = $VER >> configure.log
+echo Z_U4 = $Z_U4 >> configure.log
+echo SRCDIR = $SRCDIR >> configure.log
+echo exec_prefix = $exec_prefix >> configure.log
+echo includedir = $includedir >> configure.log
+echo libdir = $libdir >> configure.log
+echo mandir = $mandir >> configure.log
+echo prefix = $prefix >> configure.log
+echo sharedlibdir = $sharedlibdir >> configure.log
+echo uname = $uname >> configure.log
+
+# udpate Makefile with the configure results
+sed < ${SRCDIR}Makefile.in "
+/^CC *=/s#=.*#=$CC#
+/^CFLAGS *=/s#=.*#=$CFLAGS#
+/^SFLAGS *=/s#=.*#=$SFLAGS#
+/^LDFLAGS *=/s#=.*#=$LDFLAGS#
+/^LDSHARED *=/s#=.*#=$LDSHARED#
+/^CPP *=/s#=.*#=$CPP#
+/^STATICLIB *=/s#=.*#=$STATICLIB#
+/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
+/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
+/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
+/^AR *=/s#=.*#=$AR#
+/^ARFLAGS *=/s#=.*#=$ARFLAGS#
+/^RANLIB *=/s#=.*#=$RANLIB#
+/^LDCONFIG *=/s#=.*#=$LDCONFIG#
+/^LDSHAREDLIBC *=/s#=.*#=$LDSHAREDLIBC#
+/^EXE *=/s#=.*#=$EXE#
+/^SRCDIR *=/s#=.*#=$SRCDIR#
+/^ZINC *=/s#=.*#=$ZINC#
+/^ZINCOUT *=/s#=.*#=$ZINCOUT#
+/^prefix *=/s#=.*#=$prefix#
+/^exec_prefix *=/s#=.*#=$exec_prefix#
+/^libdir *=/s#=.*#=$libdir#
+/^sharedlibdir *=/s#=.*#=$sharedlibdir#
+/^includedir *=/s#=.*#=$includedir#
+/^mandir *=/s#=.*#=$mandir#
+/^OBJC *=/s#=.*#= $OBJC#
+/^PIC_OBJC *=/s#=.*#= $PIC_OBJC#
+/^all: */s#:.*#: $ALL#
+/^test: */s#:.*#: $TEST#
+" > Makefile
+
+# create zlib.pc with the configure results
+sed < ${SRCDIR}zlib.pc.in "
+/^CC *=/s#=.*#=$CC#
+/^CFLAGS *=/s#=.*#=$CFLAGS#
+/^CPP *=/s#=.*#=$CPP#
+/^LDSHARED *=/s#=.*#=$LDSHARED#
+/^STATICLIB *=/s#=.*#=$STATICLIB#
+/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
+/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
+/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
+/^AR *=/s#=.*#=$AR#
+/^ARFLAGS *=/s#=.*#=$ARFLAGS#
+/^RANLIB *=/s#=.*#=$RANLIB#
+/^EXE *=/s#=.*#=$EXE#
+/^prefix *=/s#=.*#=$prefix#
+/^exec_prefix *=/s#=.*#=$exec_prefix#
+/^libdir *=/s#=.*#=$libdir#
+/^sharedlibdir *=/s#=.*#=$sharedlibdir#
+/^includedir *=/s#=.*#=$includedir#
+/^mandir *=/s#=.*#=$mandir#
+/^LDFLAGS *=/s#=.*#=$LDFLAGS#
+" | sed -e "
+s/\@VERSION\@/$VER/g;
+" > zlib.pc
+
+# done
+leave 0
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/README.contrib b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/README.contrib
new file mode 100644
index 000000000..a411d5c39
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/README.contrib
@@ -0,0 +1,78 @@
+All files under this contrib directory are UNSUPPORTED. There were
+provided by users of zlib and were not tested by the authors of zlib.
+Use at your own risk. Please contact the authors of the contributions
+for help about these, not the zlib authors. Thanks.
+
+
+ada/ by Dmitriy Anisimkov <anisimkov@yahoo.com>
+ Support for Ada
+ See http://zlib-ada.sourceforge.net/
+
+amd64/ by Mikhail Teterin <mi@ALDAN.algebra.com>
+ asm code for AMD64
+ See patch at http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/96393
+
+asm686/ by Brian Raiter <breadbox@muppetlabs.com>
+ asm code for Pentium and PPro/PII, using the AT&T (GNU as) syntax
+ See http://www.muppetlabs.com/~breadbox/software/assembly.html
+
+blast/ by Mark Adler <madler@alumni.caltech.edu>
+ Decompressor for output of PKWare Data Compression Library (DCL)
+
+delphi/ by Cosmin Truta <cosmint@cs.ubbcluj.ro>
+ Support for Delphi and C++ Builder
+
+dotzlib/ by Henrik Ravn <henrik@ravn.com>
+ Support for Microsoft .Net and Visual C++ .Net
+
+gcc_gvmat64/by Gilles Vollant <info@winimage.com>
+ GCC Version of x86 64-bit (AMD64 and Intel EM64t) code for x64
+ assembler to replace longest_match() and inflate_fast()
+
+infback9/ by Mark Adler <madler@alumni.caltech.edu>
+ Unsupported diffs to infback to decode the deflate64 format
+
+inflate86/ by Chris Anderson <christop@charm.net>
+ Tuned x86 gcc asm code to replace inflate_fast()
+
+iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
+ A C++ I/O streams interface to the zlib gz* functions
+
+iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no>
+ Another C++ I/O streams interface
+
+iostream3/ by Ludwig Schwardt <schwardt@sun.ac.za>
+ and Kevin Ruland <kevin@rodin.wustl.edu>
+ Yet another C++ I/O streams interface
+
+masmx64/ by Gilles Vollant <info@winimage.com>
+ x86 64-bit (AMD64 and Intel EM64t) code for x64 assembler to
+ replace longest_match() and inflate_fast(), also masm x86
+ 64-bits translation of Chris Anderson inflate_fast()
+
+masmx86/ by Gilles Vollant <info@winimage.com>
+ x86 asm code to replace longest_match() and inflate_fast(),
+ for Visual C++ and MASM (32 bits).
+ Based on Brian Raiter (asm686) and Chris Anderson (inflate86)
+
+minizip/ by Gilles Vollant <info@winimage.com>
+ Mini zip and unzip based on zlib
+ Includes Zip64 support by Mathias Svensson <mathias@result42.com>
+ See http://www.winimage.com/zLibDll/minizip.html
+
+pascal/ by Bob Dellaca <bobdl@xtra.co.nz> et al.
+ Support for Pascal
+
+puff/ by Mark Adler <madler@alumni.caltech.edu>
+ Small, low memory usage inflate. Also serves to provide an
+ unambiguous description of the deflate format.
+
+testzlib/ by Gilles Vollant <info@winimage.com>
+ Example of the use of zlib
+
+untgz/ by Pedro A. Aranda Gutierrez <paag@tid.es>
+ A very simple tar.gz file extractor using zlib
+
+vstudio/ by Gilles Vollant <info@winimage.com>
+ Building a minizip-enhanced zlib with Microsoft Visual Studio
+ Includes vc11 from kreuzerkrieg and vc12 from davispuh
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/buffer_demo.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/buffer_demo.adb
new file mode 100644
index 000000000..46b863810
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/buffer_demo.adb
@@ -0,0 +1,106 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2004 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+--
+-- $Id: buffer_demo.adb,v 1.3 2004/09/06 06:55:35 vagul Exp $
+
+-- This demo program provided by Dr Steve Sangwine <sjs@essex.ac.uk>
+--
+-- Demonstration of a problem with Zlib-Ada (already fixed) when a buffer
+-- of exactly the correct size is used for decompressed data, and the last
+-- few bytes passed in to Zlib are checksum bytes.
+
+-- This program compresses a string of text, and then decompresses the
+-- compressed text into a buffer of the same size as the original text.
+
+with Ada.Streams; use Ada.Streams;
+with Ada.Text_IO;
+
+with ZLib; use ZLib;
+
+procedure Buffer_Demo is
+ EOL : Character renames ASCII.LF;
+ Text : constant String
+ := "Four score and seven years ago our fathers brought forth," & EOL &
+ "upon this continent, a new nation, conceived in liberty," & EOL &
+ "and dedicated to the proposition that `all men are created equal'.";
+
+ Source : Stream_Element_Array (1 .. Text'Length);
+ for Source'Address use Text'Address;
+
+begin
+ Ada.Text_IO.Put (Text);
+ Ada.Text_IO.New_Line;
+ Ada.Text_IO.Put_Line
+ ("Uncompressed size : " & Positive'Image (Text'Length) & " bytes");
+
+ declare
+ Compressed_Data : Stream_Element_Array (1 .. Text'Length);
+ L : Stream_Element_Offset;
+ begin
+ Compress : declare
+ Compressor : Filter_Type;
+ I : Stream_Element_Offset;
+ begin
+ Deflate_Init (Compressor);
+
+ -- Compress the whole of T at once.
+
+ Translate (Compressor, Source, I, Compressed_Data, L, Finish);
+ pragma Assert (I = Source'Last);
+
+ Close (Compressor);
+
+ Ada.Text_IO.Put_Line
+ ("Compressed size : "
+ & Stream_Element_Offset'Image (L) & " bytes");
+ end Compress;
+
+ -- Now we decompress the data, passing short blocks of data to Zlib
+ -- (because this demonstrates the problem - the last block passed will
+ -- contain checksum information and there will be no output, only a
+ -- check inside Zlib that the checksum is correct).
+
+ Decompress : declare
+ Decompressor : Filter_Type;
+
+ Uncompressed_Data : Stream_Element_Array (1 .. Text'Length);
+
+ Block_Size : constant := 4;
+ -- This makes sure that the last block contains
+ -- only Adler checksum data.
+
+ P : Stream_Element_Offset := Compressed_Data'First - 1;
+ O : Stream_Element_Offset;
+ begin
+ Inflate_Init (Decompressor);
+
+ loop
+ Translate
+ (Decompressor,
+ Compressed_Data
+ (P + 1 .. Stream_Element_Offset'Min (P + Block_Size, L)),
+ P,
+ Uncompressed_Data
+ (Total_Out (Decompressor) + 1 .. Uncompressed_Data'Last),
+ O,
+ No_Flush);
+
+ Ada.Text_IO.Put_Line
+ ("Total in : " & Count'Image (Total_In (Decompressor)) &
+ ", out : " & Count'Image (Total_Out (Decompressor)));
+
+ exit when P = L;
+ end loop;
+
+ Ada.Text_IO.New_Line;
+ Ada.Text_IO.Put_Line
+ ("Decompressed text matches original text : "
+ & Boolean'Image (Uncompressed_Data = Source));
+ end Decompress;
+ end;
+end Buffer_Demo;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/mtest.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/mtest.adb
new file mode 100644
index 000000000..c4dfd080f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/mtest.adb
@@ -0,0 +1,156 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+-- Continuous test for ZLib multithreading. If the test would fail
+-- we should provide thread safe allocation routines for the Z_Stream.
+--
+-- $Id: mtest.adb,v 1.4 2004/07/23 07:49:54 vagul Exp $
+
+with ZLib;
+with Ada.Streams;
+with Ada.Numerics.Discrete_Random;
+with Ada.Text_IO;
+with Ada.Exceptions;
+with Ada.Task_Identification;
+
+procedure MTest is
+ use Ada.Streams;
+ use ZLib;
+
+ Stop : Boolean := False;
+
+ pragma Atomic (Stop);
+
+ subtype Visible_Symbols is Stream_Element range 16#20# .. 16#7E#;
+
+ package Random_Elements is
+ new Ada.Numerics.Discrete_Random (Visible_Symbols);
+
+ task type Test_Task;
+
+ task body Test_Task is
+ Buffer : Stream_Element_Array (1 .. 100_000);
+ Gen : Random_Elements.Generator;
+
+ Buffer_First : Stream_Element_Offset;
+ Compare_First : Stream_Element_Offset;
+
+ Deflate : Filter_Type;
+ Inflate : Filter_Type;
+
+ procedure Further (Item : in Stream_Element_Array);
+
+ procedure Read_Buffer
+ (Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset);
+
+ -------------
+ -- Further --
+ -------------
+
+ procedure Further (Item : in Stream_Element_Array) is
+
+ procedure Compare (Item : in Stream_Element_Array);
+
+ -------------
+ -- Compare --
+ -------------
+
+ procedure Compare (Item : in Stream_Element_Array) is
+ Next_First : Stream_Element_Offset := Compare_First + Item'Length;
+ begin
+ if Buffer (Compare_First .. Next_First - 1) /= Item then
+ raise Program_Error;
+ end if;
+
+ Compare_First := Next_First;
+ end Compare;
+
+ procedure Compare_Write is new ZLib.Write (Write => Compare);
+ begin
+ Compare_Write (Inflate, Item, No_Flush);
+ end Further;
+
+ -----------------
+ -- Read_Buffer --
+ -----------------
+
+ procedure Read_Buffer
+ (Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset)
+ is
+ Buff_Diff : Stream_Element_Offset := Buffer'Last - Buffer_First;
+ Next_First : Stream_Element_Offset;
+ begin
+ if Item'Length <= Buff_Diff then
+ Last := Item'Last;
+
+ Next_First := Buffer_First + Item'Length;
+
+ Item := Buffer (Buffer_First .. Next_First - 1);
+
+ Buffer_First := Next_First;
+ else
+ Last := Item'First + Buff_Diff;
+ Item (Item'First .. Last) := Buffer (Buffer_First .. Buffer'Last);
+ Buffer_First := Buffer'Last + 1;
+ end if;
+ end Read_Buffer;
+
+ procedure Translate is new Generic_Translate
+ (Data_In => Read_Buffer,
+ Data_Out => Further);
+
+ begin
+ Random_Elements.Reset (Gen);
+
+ Buffer := (others => 20);
+
+ Main : loop
+ for J in Buffer'Range loop
+ Buffer (J) := Random_Elements.Random (Gen);
+
+ Deflate_Init (Deflate);
+ Inflate_Init (Inflate);
+
+ Buffer_First := Buffer'First;
+ Compare_First := Buffer'First;
+
+ Translate (Deflate);
+
+ if Compare_First /= Buffer'Last + 1 then
+ raise Program_Error;
+ end if;
+
+ Ada.Text_IO.Put_Line
+ (Ada.Task_Identification.Image
+ (Ada.Task_Identification.Current_Task)
+ & Stream_Element_Offset'Image (J)
+ & ZLib.Count'Image (Total_Out (Deflate)));
+
+ Close (Deflate);
+ Close (Inflate);
+
+ exit Main when Stop;
+ end loop;
+ end loop Main;
+ exception
+ when E : others =>
+ Ada.Text_IO.Put_Line (Ada.Exceptions.Exception_Information (E));
+ Stop := True;
+ end Test_Task;
+
+ Test : array (1 .. 4) of Test_Task;
+
+ pragma Unreferenced (Test);
+
+ Dummy : Character;
+
+begin
+ Ada.Text_IO.Get_Immediate (Dummy);
+ Stop := True;
+end MTest;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/read.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/read.adb
new file mode 100644
index 000000000..1f2efbfeb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/read.adb
@@ -0,0 +1,156 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: read.adb,v 1.8 2004/05/31 10:53:40 vagul Exp $
+
+-- Test/demo program for the generic read interface.
+
+with Ada.Numerics.Discrete_Random;
+with Ada.Streams;
+with Ada.Text_IO;
+
+with ZLib;
+
+procedure Read is
+
+ use Ada.Streams;
+
+ ------------------------------------
+ -- Test configuration parameters --
+ ------------------------------------
+
+ File_Size : Stream_Element_Offset := 100_000;
+
+ Continuous : constant Boolean := False;
+ -- If this constant is True, the test would be repeated again and again,
+ -- with increment File_Size for every iteration.
+
+ Header : constant ZLib.Header_Type := ZLib.Default;
+ -- Do not use Header other than Default in ZLib versions 1.1.4 and older.
+
+ Init_Random : constant := 8;
+ -- We are using the same random sequence, in case of we catch bug,
+ -- so we would be able to reproduce it.
+
+ -- End --
+
+ Pack_Size : Stream_Element_Offset;
+ Offset : Stream_Element_Offset;
+
+ Filter : ZLib.Filter_Type;
+
+ subtype Visible_Symbols
+ is Stream_Element range 16#20# .. 16#7E#;
+
+ package Random_Elements is new
+ Ada.Numerics.Discrete_Random (Visible_Symbols);
+
+ Gen : Random_Elements.Generator;
+ Period : constant Stream_Element_Offset := 200;
+ -- Period constant variable for random generator not to be very random.
+ -- Bigger period, harder random.
+
+ Read_Buffer : Stream_Element_Array (1 .. 2048);
+ Read_First : Stream_Element_Offset;
+ Read_Last : Stream_Element_Offset;
+
+ procedure Reset;
+
+ procedure Read
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset);
+ -- this procedure is for generic instantiation of
+ -- ZLib.Read
+ -- reading data from the File_In.
+
+ procedure Read is new ZLib.Read
+ (Read,
+ Read_Buffer,
+ Rest_First => Read_First,
+ Rest_Last => Read_Last);
+
+ ----------
+ -- Read --
+ ----------
+
+ procedure Read
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset) is
+ begin
+ Last := Stream_Element_Offset'Min
+ (Item'Last,
+ Item'First + File_Size - Offset);
+
+ for J in Item'First .. Last loop
+ if J < Item'First + Period then
+ Item (J) := Random_Elements.Random (Gen);
+ else
+ Item (J) := Item (J - Period);
+ end if;
+
+ Offset := Offset + 1;
+ end loop;
+ end Read;
+
+ -----------
+ -- Reset --
+ -----------
+
+ procedure Reset is
+ begin
+ Random_Elements.Reset (Gen, Init_Random);
+ Pack_Size := 0;
+ Offset := 1;
+ Read_First := Read_Buffer'Last + 1;
+ Read_Last := Read_Buffer'Last;
+ end Reset;
+
+begin
+ Ada.Text_IO.Put_Line ("ZLib " & ZLib.Version);
+
+ loop
+ for Level in ZLib.Compression_Level'Range loop
+
+ Ada.Text_IO.Put ("Level ="
+ & ZLib.Compression_Level'Image (Level));
+
+ -- Deflate using generic instantiation.
+
+ ZLib.Deflate_Init
+ (Filter,
+ Level,
+ Header => Header);
+
+ Reset;
+
+ Ada.Text_IO.Put
+ (Stream_Element_Offset'Image (File_Size) & " ->");
+
+ loop
+ declare
+ Buffer : Stream_Element_Array (1 .. 1024);
+ Last : Stream_Element_Offset;
+ begin
+ Read (Filter, Buffer, Last);
+
+ Pack_Size := Pack_Size + Last - Buffer'First + 1;
+
+ exit when Last < Buffer'Last;
+ end;
+ end loop;
+
+ Ada.Text_IO.Put_Line (Stream_Element_Offset'Image (Pack_Size));
+
+ ZLib.Close (Filter);
+ end loop;
+
+ exit when not Continuous;
+
+ File_Size := File_Size + 1;
+ end loop;
+end Read;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/readme.txt
new file mode 100644
index 000000000..ce4d2cadf
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/readme.txt
@@ -0,0 +1,65 @@
+ ZLib for Ada thick binding (ZLib.Ada)
+ Release 1.3
+
+ZLib.Ada is a thick binding interface to the popular ZLib data
+compression library, available at http://www.gzip.org/zlib/.
+It provides Ada-style access to the ZLib C library.
+
+
+ Here are the main changes since ZLib.Ada 1.2:
+
+- Attension: ZLib.Read generic routine have a initialization requirement
+ for Read_Last parameter now. It is a bit incompartible with previous version,
+ but extends functionality, we could use new parameters Allow_Read_Some and
+ Flush now.
+
+- Added Is_Open routines to ZLib and ZLib.Streams packages.
+
+- Add pragma Assert to check Stream_Element is 8 bit.
+
+- Fix extraction to buffer with exact known decompressed size. Error reported by
+ Steve Sangwine.
+
+- Fix definition of ULong (changed to unsigned_long), fix regression on 64 bits
+ computers. Patch provided by Pascal Obry.
+
+- Add Status_Error exception definition.
+
+- Add pragma Assertion that Ada.Streams.Stream_Element size is 8 bit.
+
+
+ How to build ZLib.Ada under GNAT
+
+You should have the ZLib library already build on your computer, before
+building ZLib.Ada. Make the directory of ZLib.Ada sources current and
+issue the command:
+
+ gnatmake test -largs -L<directory where libz.a is> -lz
+
+Or use the GNAT project file build for GNAT 3.15 or later:
+
+ gnatmake -Pzlib.gpr -L<directory where libz.a is>
+
+
+ How to build ZLib.Ada under Aonix ObjectAda for Win32 7.2.2
+
+1. Make a project with all *.ads and *.adb files from the distribution.
+2. Build the libz.a library from the ZLib C sources.
+3. Rename libz.a to z.lib.
+4. Add the library z.lib to the project.
+5. Add the libc.lib library from the ObjectAda distribution to the project.
+6. Build the executable using test.adb as a main procedure.
+
+
+ How to use ZLib.Ada
+
+The source files test.adb and read.adb are small demo programs that show
+the main functionality of ZLib.Ada.
+
+The routines from the package specifications are commented.
+
+
+Homepage: http://zlib-ada.sourceforge.net/
+Author: Dmitriy Anisimkov <anisimkov@yahoo.com>
+
+Contributors: Pascal Obry <pascal@obry.org>, Steve Sangwine <sjs@essex.ac.uk>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/test.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/test.adb
new file mode 100644
index 000000000..90773acfa
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/test.adb
@@ -0,0 +1,463 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp $
+
+-- The program has a few aims.
+-- 1. Test ZLib.Ada95 thick binding functionality.
+-- 2. Show the example of use main functionality of the ZLib.Ada95 binding.
+-- 3. Build this program automatically compile all ZLib.Ada95 packages under
+-- GNAT Ada95 compiler.
+
+with ZLib.Streams;
+with Ada.Streams.Stream_IO;
+with Ada.Numerics.Discrete_Random;
+
+with Ada.Text_IO;
+
+with Ada.Calendar;
+
+procedure Test is
+
+ use Ada.Streams;
+ use Stream_IO;
+
+ ------------------------------------
+ -- Test configuration parameters --
+ ------------------------------------
+
+ File_Size : Count := 100_000;
+ Continuous : constant Boolean := False;
+
+ Header : constant ZLib.Header_Type := ZLib.Default;
+ -- ZLib.None;
+ -- ZLib.Auto;
+ -- ZLib.GZip;
+ -- Do not use Header other then Default in ZLib versions 1.1.4
+ -- and older.
+
+ Strategy : constant ZLib.Strategy_Type := ZLib.Default_Strategy;
+ Init_Random : constant := 10;
+
+ -- End --
+
+ In_File_Name : constant String := "testzlib.in";
+ -- Name of the input file
+
+ Z_File_Name : constant String := "testzlib.zlb";
+ -- Name of the compressed file.
+
+ Out_File_Name : constant String := "testzlib.out";
+ -- Name of the decompressed file.
+
+ File_In : File_Type;
+ File_Out : File_Type;
+ File_Back : File_Type;
+ File_Z : ZLib.Streams.Stream_Type;
+
+ Filter : ZLib.Filter_Type;
+
+ Time_Stamp : Ada.Calendar.Time;
+
+ procedure Generate_File;
+ -- Generate file of spetsified size with some random data.
+ -- The random data is repeatable, for the good compression.
+
+ procedure Compare_Streams
+ (Left, Right : in out Root_Stream_Type'Class);
+ -- The procedure compearing data in 2 streams.
+ -- It is for compare data before and after compression/decompression.
+
+ procedure Compare_Files (Left, Right : String);
+ -- Compare files. Based on the Compare_Streams.
+
+ procedure Copy_Streams
+ (Source, Target : in out Root_Stream_Type'Class;
+ Buffer_Size : in Stream_Element_Offset := 1024);
+ -- Copying data from one stream to another. It is for test stream
+ -- interface of the library.
+
+ procedure Data_In
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset);
+ -- this procedure is for generic instantiation of
+ -- ZLib.Generic_Translate.
+ -- reading data from the File_In.
+
+ procedure Data_Out (Item : in Stream_Element_Array);
+ -- this procedure is for generic instantiation of
+ -- ZLib.Generic_Translate.
+ -- writing data to the File_Out.
+
+ procedure Stamp;
+ -- Store the timestamp to the local variable.
+
+ procedure Print_Statistic (Msg : String; Data_Size : ZLib.Count);
+ -- Print the time statistic with the message.
+
+ procedure Translate is new ZLib.Generic_Translate
+ (Data_In => Data_In,
+ Data_Out => Data_Out);
+ -- This procedure is moving data from File_In to File_Out
+ -- with compression or decompression, depend on initialization of
+ -- Filter parameter.
+
+ -------------------
+ -- Compare_Files --
+ -------------------
+
+ procedure Compare_Files (Left, Right : String) is
+ Left_File, Right_File : File_Type;
+ begin
+ Open (Left_File, In_File, Left);
+ Open (Right_File, In_File, Right);
+ Compare_Streams (Stream (Left_File).all, Stream (Right_File).all);
+ Close (Left_File);
+ Close (Right_File);
+ end Compare_Files;
+
+ ---------------------
+ -- Compare_Streams --
+ ---------------------
+
+ procedure Compare_Streams
+ (Left, Right : in out Ada.Streams.Root_Stream_Type'Class)
+ is
+ Left_Buffer, Right_Buffer : Stream_Element_Array (0 .. 16#FFF#);
+ Left_Last, Right_Last : Stream_Element_Offset;
+ begin
+ loop
+ Read (Left, Left_Buffer, Left_Last);
+ Read (Right, Right_Buffer, Right_Last);
+
+ if Left_Last /= Right_Last then
+ Ada.Text_IO.Put_Line ("Compare error :"
+ & Stream_Element_Offset'Image (Left_Last)
+ & " /= "
+ & Stream_Element_Offset'Image (Right_Last));
+
+ raise Constraint_Error;
+
+ elsif Left_Buffer (0 .. Left_Last)
+ /= Right_Buffer (0 .. Right_Last)
+ then
+ Ada.Text_IO.Put_Line ("ERROR: IN and OUT files is not equal.");
+ raise Constraint_Error;
+
+ end if;
+
+ exit when Left_Last < Left_Buffer'Last;
+ end loop;
+ end Compare_Streams;
+
+ ------------------
+ -- Copy_Streams --
+ ------------------
+
+ procedure Copy_Streams
+ (Source, Target : in out Ada.Streams.Root_Stream_Type'Class;
+ Buffer_Size : in Stream_Element_Offset := 1024)
+ is
+ Buffer : Stream_Element_Array (1 .. Buffer_Size);
+ Last : Stream_Element_Offset;
+ begin
+ loop
+ Read (Source, Buffer, Last);
+ Write (Target, Buffer (1 .. Last));
+
+ exit when Last < Buffer'Last;
+ end loop;
+ end Copy_Streams;
+
+ -------------
+ -- Data_In --
+ -------------
+
+ procedure Data_In
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset) is
+ begin
+ Read (File_In, Item, Last);
+ end Data_In;
+
+ --------------
+ -- Data_Out --
+ --------------
+
+ procedure Data_Out (Item : in Stream_Element_Array) is
+ begin
+ Write (File_Out, Item);
+ end Data_Out;
+
+ -------------------
+ -- Generate_File --
+ -------------------
+
+ procedure Generate_File is
+ subtype Visible_Symbols is Stream_Element range 16#20# .. 16#7E#;
+
+ package Random_Elements is
+ new Ada.Numerics.Discrete_Random (Visible_Symbols);
+
+ Gen : Random_Elements.Generator;
+ Buffer : Stream_Element_Array := (1 .. 77 => 16#20#) & 10;
+
+ Buffer_Count : constant Count := File_Size / Buffer'Length;
+ -- Number of same buffers in the packet.
+
+ Density : constant Count := 30; -- from 0 to Buffer'Length - 2;
+
+ procedure Fill_Buffer (J, D : in Count);
+ -- Change the part of the buffer.
+
+ -----------------
+ -- Fill_Buffer --
+ -----------------
+
+ procedure Fill_Buffer (J, D : in Count) is
+ begin
+ for K in 0 .. D loop
+ Buffer
+ (Stream_Element_Offset ((J + K) mod (Buffer'Length - 1) + 1))
+ := Random_Elements.Random (Gen);
+
+ end loop;
+ end Fill_Buffer;
+
+ begin
+ Random_Elements.Reset (Gen, Init_Random);
+
+ Create (File_In, Out_File, In_File_Name);
+
+ Fill_Buffer (1, Buffer'Length - 2);
+
+ for J in 1 .. Buffer_Count loop
+ Write (File_In, Buffer);
+
+ Fill_Buffer (J, Density);
+ end loop;
+
+ -- fill remain size.
+
+ Write
+ (File_In,
+ Buffer
+ (1 .. Stream_Element_Offset
+ (File_Size - Buffer'Length * Buffer_Count)));
+
+ Flush (File_In);
+ Close (File_In);
+ end Generate_File;
+
+ ---------------------
+ -- Print_Statistic --
+ ---------------------
+
+ procedure Print_Statistic (Msg : String; Data_Size : ZLib.Count) is
+ use Ada.Calendar;
+ use Ada.Text_IO;
+
+ package Count_IO is new Integer_IO (ZLib.Count);
+
+ Curr_Dur : Duration := Clock - Time_Stamp;
+ begin
+ Put (Msg);
+
+ Set_Col (20);
+ Ada.Text_IO.Put ("size =");
+
+ Count_IO.Put
+ (Data_Size,
+ Width => Stream_IO.Count'Image (File_Size)'Length);
+
+ Put_Line (" duration =" & Duration'Image (Curr_Dur));
+ end Print_Statistic;
+
+ -----------
+ -- Stamp --
+ -----------
+
+ procedure Stamp is
+ begin
+ Time_Stamp := Ada.Calendar.Clock;
+ end Stamp;
+
+begin
+ Ada.Text_IO.Put_Line ("ZLib " & ZLib.Version);
+
+ loop
+ Generate_File;
+
+ for Level in ZLib.Compression_Level'Range loop
+
+ Ada.Text_IO.Put_Line ("Level ="
+ & ZLib.Compression_Level'Image (Level));
+
+ -- Test generic interface.
+ Open (File_In, In_File, In_File_Name);
+ Create (File_Out, Out_File, Z_File_Name);
+
+ Stamp;
+
+ -- Deflate using generic instantiation.
+
+ ZLib.Deflate_Init
+ (Filter => Filter,
+ Level => Level,
+ Strategy => Strategy,
+ Header => Header);
+
+ Translate (Filter);
+ Print_Statistic ("Generic compress", ZLib.Total_Out (Filter));
+ ZLib.Close (Filter);
+
+ Close (File_In);
+ Close (File_Out);
+
+ Open (File_In, In_File, Z_File_Name);
+ Create (File_Out, Out_File, Out_File_Name);
+
+ Stamp;
+
+ -- Inflate using generic instantiation.
+
+ ZLib.Inflate_Init (Filter, Header => Header);
+
+ Translate (Filter);
+ Print_Statistic ("Generic decompress", ZLib.Total_Out (Filter));
+
+ ZLib.Close (Filter);
+
+ Close (File_In);
+ Close (File_Out);
+
+ Compare_Files (In_File_Name, Out_File_Name);
+
+ -- Test stream interface.
+
+ -- Compress to the back stream.
+
+ Open (File_In, In_File, In_File_Name);
+ Create (File_Back, Out_File, Z_File_Name);
+
+ Stamp;
+
+ ZLib.Streams.Create
+ (Stream => File_Z,
+ Mode => ZLib.Streams.Out_Stream,
+ Back => ZLib.Streams.Stream_Access
+ (Stream (File_Back)),
+ Back_Compressed => True,
+ Level => Level,
+ Strategy => Strategy,
+ Header => Header);
+
+ Copy_Streams
+ (Source => Stream (File_In).all,
+ Target => File_Z);
+
+ -- Flushing internal buffers to the back stream.
+
+ ZLib.Streams.Flush (File_Z, ZLib.Finish);
+
+ Print_Statistic ("Write compress",
+ ZLib.Streams.Write_Total_Out (File_Z));
+
+ ZLib.Streams.Close (File_Z);
+
+ Close (File_In);
+ Close (File_Back);
+
+ -- Compare reading from original file and from
+ -- decompression stream.
+
+ Open (File_In, In_File, In_File_Name);
+ Open (File_Back, In_File, Z_File_Name);
+
+ ZLib.Streams.Create
+ (Stream => File_Z,
+ Mode => ZLib.Streams.In_Stream,
+ Back => ZLib.Streams.Stream_Access
+ (Stream (File_Back)),
+ Back_Compressed => True,
+ Header => Header);
+
+ Stamp;
+ Compare_Streams (Stream (File_In).all, File_Z);
+
+ Print_Statistic ("Read decompress",
+ ZLib.Streams.Read_Total_Out (File_Z));
+
+ ZLib.Streams.Close (File_Z);
+ Close (File_In);
+ Close (File_Back);
+
+ -- Compress by reading from compression stream.
+
+ Open (File_Back, In_File, In_File_Name);
+ Create (File_Out, Out_File, Z_File_Name);
+
+ ZLib.Streams.Create
+ (Stream => File_Z,
+ Mode => ZLib.Streams.In_Stream,
+ Back => ZLib.Streams.Stream_Access
+ (Stream (File_Back)),
+ Back_Compressed => False,
+ Level => Level,
+ Strategy => Strategy,
+ Header => Header);
+
+ Stamp;
+ Copy_Streams
+ (Source => File_Z,
+ Target => Stream (File_Out).all);
+
+ Print_Statistic ("Read compress",
+ ZLib.Streams.Read_Total_Out (File_Z));
+
+ ZLib.Streams.Close (File_Z);
+
+ Close (File_Out);
+ Close (File_Back);
+
+ -- Decompress to decompression stream.
+
+ Open (File_In, In_File, Z_File_Name);
+ Create (File_Back, Out_File, Out_File_Name);
+
+ ZLib.Streams.Create
+ (Stream => File_Z,
+ Mode => ZLib.Streams.Out_Stream,
+ Back => ZLib.Streams.Stream_Access
+ (Stream (File_Back)),
+ Back_Compressed => False,
+ Header => Header);
+
+ Stamp;
+
+ Copy_Streams
+ (Source => Stream (File_In).all,
+ Target => File_Z);
+
+ Print_Statistic ("Write decompress",
+ ZLib.Streams.Write_Total_Out (File_Z));
+
+ ZLib.Streams.Close (File_Z);
+ Close (File_In);
+ Close (File_Back);
+
+ Compare_Files (In_File_Name, Out_File_Name);
+ end loop;
+
+ Ada.Text_IO.Put_Line (Count'Image (File_Size) & " Ok.");
+
+ exit when not Continuous;
+
+ File_Size := File_Size + 1;
+ end loop;
+end Test;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.adb
new file mode 100644
index 000000000..b6497bae2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.adb
@@ -0,0 +1,225 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: zlib-streams.adb,v 1.10 2004/05/31 10:53:40 vagul Exp $
+
+with Ada.Unchecked_Deallocation;
+
+package body ZLib.Streams is
+
+ -----------
+ -- Close --
+ -----------
+
+ procedure Close (Stream : in out Stream_Type) is
+ procedure Free is new Ada.Unchecked_Deallocation
+ (Stream_Element_Array, Buffer_Access);
+ begin
+ if Stream.Mode = Out_Stream or Stream.Mode = Duplex then
+ -- We should flush the data written by the writer.
+
+ Flush (Stream, Finish);
+
+ Close (Stream.Writer);
+ end if;
+
+ if Stream.Mode = In_Stream or Stream.Mode = Duplex then
+ Close (Stream.Reader);
+ Free (Stream.Buffer);
+ end if;
+ end Close;
+
+ ------------
+ -- Create --
+ ------------
+
+ procedure Create
+ (Stream : out Stream_Type;
+ Mode : in Stream_Mode;
+ Back : in Stream_Access;
+ Back_Compressed : in Boolean;
+ Level : in Compression_Level := Default_Compression;
+ Strategy : in Strategy_Type := Default_Strategy;
+ Header : in Header_Type := Default;
+ Read_Buffer_Size : in Ada.Streams.Stream_Element_Offset
+ := Default_Buffer_Size;
+ Write_Buffer_Size : in Ada.Streams.Stream_Element_Offset
+ := Default_Buffer_Size)
+ is
+
+ subtype Buffer_Subtype is Stream_Element_Array (1 .. Read_Buffer_Size);
+
+ procedure Init_Filter
+ (Filter : in out Filter_Type;
+ Compress : in Boolean);
+
+ -----------------
+ -- Init_Filter --
+ -----------------
+
+ procedure Init_Filter
+ (Filter : in out Filter_Type;
+ Compress : in Boolean) is
+ begin
+ if Compress then
+ Deflate_Init
+ (Filter, Level, Strategy, Header => Header);
+ else
+ Inflate_Init (Filter, Header => Header);
+ end if;
+ end Init_Filter;
+
+ begin
+ Stream.Back := Back;
+ Stream.Mode := Mode;
+
+ if Mode = Out_Stream or Mode = Duplex then
+ Init_Filter (Stream.Writer, Back_Compressed);
+ Stream.Buffer_Size := Write_Buffer_Size;
+ else
+ Stream.Buffer_Size := 0;
+ end if;
+
+ if Mode = In_Stream or Mode = Duplex then
+ Init_Filter (Stream.Reader, not Back_Compressed);
+
+ Stream.Buffer := new Buffer_Subtype;
+ Stream.Rest_First := Stream.Buffer'Last + 1;
+ Stream.Rest_Last := Stream.Buffer'Last;
+ end if;
+ end Create;
+
+ -----------
+ -- Flush --
+ -----------
+
+ procedure Flush
+ (Stream : in out Stream_Type;
+ Mode : in Flush_Mode := Sync_Flush)
+ is
+ Buffer : Stream_Element_Array (1 .. Stream.Buffer_Size);
+ Last : Stream_Element_Offset;
+ begin
+ loop
+ Flush (Stream.Writer, Buffer, Last, Mode);
+
+ Ada.Streams.Write (Stream.Back.all, Buffer (1 .. Last));
+
+ exit when Last < Buffer'Last;
+ end loop;
+ end Flush;
+
+ -------------
+ -- Is_Open --
+ -------------
+
+ function Is_Open (Stream : Stream_Type) return Boolean is
+ begin
+ return Is_Open (Stream.Reader) or else Is_Open (Stream.Writer);
+ end Is_Open;
+
+ ----------
+ -- Read --
+ ----------
+
+ procedure Read
+ (Stream : in out Stream_Type;
+ Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset)
+ is
+
+ procedure Read
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset);
+
+ ----------
+ -- Read --
+ ----------
+
+ procedure Read
+ (Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset) is
+ begin
+ Ada.Streams.Read (Stream.Back.all, Item, Last);
+ end Read;
+
+ procedure Read is new ZLib.Read
+ (Read => Read,
+ Buffer => Stream.Buffer.all,
+ Rest_First => Stream.Rest_First,
+ Rest_Last => Stream.Rest_Last);
+
+ begin
+ Read (Stream.Reader, Item, Last);
+ end Read;
+
+ -------------------
+ -- Read_Total_In --
+ -------------------
+
+ function Read_Total_In (Stream : in Stream_Type) return Count is
+ begin
+ return Total_In (Stream.Reader);
+ end Read_Total_In;
+
+ --------------------
+ -- Read_Total_Out --
+ --------------------
+
+ function Read_Total_Out (Stream : in Stream_Type) return Count is
+ begin
+ return Total_Out (Stream.Reader);
+ end Read_Total_Out;
+
+ -----------
+ -- Write --
+ -----------
+
+ procedure Write
+ (Stream : in out Stream_Type;
+ Item : in Stream_Element_Array)
+ is
+
+ procedure Write (Item : in Stream_Element_Array);
+
+ -----------
+ -- Write --
+ -----------
+
+ procedure Write (Item : in Stream_Element_Array) is
+ begin
+ Ada.Streams.Write (Stream.Back.all, Item);
+ end Write;
+
+ procedure Write is new ZLib.Write
+ (Write => Write,
+ Buffer_Size => Stream.Buffer_Size);
+
+ begin
+ Write (Stream.Writer, Item, No_Flush);
+ end Write;
+
+ --------------------
+ -- Write_Total_In --
+ --------------------
+
+ function Write_Total_In (Stream : in Stream_Type) return Count is
+ begin
+ return Total_In (Stream.Writer);
+ end Write_Total_In;
+
+ ---------------------
+ -- Write_Total_Out --
+ ---------------------
+
+ function Write_Total_Out (Stream : in Stream_Type) return Count is
+ begin
+ return Total_Out (Stream.Writer);
+ end Write_Total_Out;
+
+end ZLib.Streams;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.ads b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.ads
new file mode 100644
index 000000000..8e26cd450
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-streams.ads
@@ -0,0 +1,114 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: zlib-streams.ads,v 1.12 2004/05/31 10:53:40 vagul Exp $
+
+package ZLib.Streams is
+
+ type Stream_Mode is (In_Stream, Out_Stream, Duplex);
+
+ type Stream_Access is access all Ada.Streams.Root_Stream_Type'Class;
+
+ type Stream_Type is
+ new Ada.Streams.Root_Stream_Type with private;
+
+ procedure Read
+ (Stream : in out Stream_Type;
+ Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset);
+
+ procedure Write
+ (Stream : in out Stream_Type;
+ Item : in Ada.Streams.Stream_Element_Array);
+
+ procedure Flush
+ (Stream : in out Stream_Type;
+ Mode : in Flush_Mode := Sync_Flush);
+ -- Flush the written data to the back stream,
+ -- all data placed to the compressor is flushing to the Back stream.
+ -- Should not be used until necessary, because it is decreasing
+ -- compression.
+
+ function Read_Total_In (Stream : in Stream_Type) return Count;
+ pragma Inline (Read_Total_In);
+ -- Return total number of bytes read from back stream so far.
+
+ function Read_Total_Out (Stream : in Stream_Type) return Count;
+ pragma Inline (Read_Total_Out);
+ -- Return total number of bytes read so far.
+
+ function Write_Total_In (Stream : in Stream_Type) return Count;
+ pragma Inline (Write_Total_In);
+ -- Return total number of bytes written so far.
+
+ function Write_Total_Out (Stream : in Stream_Type) return Count;
+ pragma Inline (Write_Total_Out);
+ -- Return total number of bytes written to the back stream.
+
+ procedure Create
+ (Stream : out Stream_Type;
+ Mode : in Stream_Mode;
+ Back : in Stream_Access;
+ Back_Compressed : in Boolean;
+ Level : in Compression_Level := Default_Compression;
+ Strategy : in Strategy_Type := Default_Strategy;
+ Header : in Header_Type := Default;
+ Read_Buffer_Size : in Ada.Streams.Stream_Element_Offset
+ := Default_Buffer_Size;
+ Write_Buffer_Size : in Ada.Streams.Stream_Element_Offset
+ := Default_Buffer_Size);
+ -- Create the Comression/Decompression stream.
+ -- If mode is In_Stream then Write operation is disabled.
+ -- If mode is Out_Stream then Read operation is disabled.
+
+ -- If Back_Compressed is true then
+ -- Data written to the Stream is compressing to the Back stream
+ -- and data read from the Stream is decompressed data from the Back stream.
+
+ -- If Back_Compressed is false then
+ -- Data written to the Stream is decompressing to the Back stream
+ -- and data read from the Stream is compressed data from the Back stream.
+
+ -- !!! When the Need_Header is False ZLib-Ada is using undocumented
+ -- ZLib 1.1.4 functionality to do not create/wait for ZLib headers.
+
+ function Is_Open (Stream : Stream_Type) return Boolean;
+
+ procedure Close (Stream : in out Stream_Type);
+
+private
+
+ use Ada.Streams;
+
+ type Buffer_Access is access all Stream_Element_Array;
+
+ type Stream_Type
+ is new Root_Stream_Type with
+ record
+ Mode : Stream_Mode;
+
+ Buffer : Buffer_Access;
+ Rest_First : Stream_Element_Offset;
+ Rest_Last : Stream_Element_Offset;
+ -- Buffer for Read operation.
+ -- We need to have this buffer in the record
+ -- because not all read data from back stream
+ -- could be processed during the read operation.
+
+ Buffer_Size : Stream_Element_Offset;
+ -- Buffer size for write operation.
+ -- We do not need to have this buffer
+ -- in the record because all data could be
+ -- processed in the write operation.
+
+ Back : Stream_Access;
+ Reader : Filter_Type;
+ Writer : Filter_Type;
+ end record;
+
+end ZLib.Streams;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.adb
new file mode 100644
index 000000000..0ca4a7120
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.adb
@@ -0,0 +1,141 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
+
+package body ZLib.Thin is
+
+ ZLIB_VERSION : constant Chars_Ptr := zlibVersion;
+
+ Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
+
+ --------------
+ -- Avail_In --
+ --------------
+
+ function Avail_In (Strm : in Z_Stream) return UInt is
+ begin
+ return Strm.Avail_In;
+ end Avail_In;
+
+ ---------------
+ -- Avail_Out --
+ ---------------
+
+ function Avail_Out (Strm : in Z_Stream) return UInt is
+ begin
+ return Strm.Avail_Out;
+ end Avail_Out;
+
+ ------------------
+ -- Deflate_Init --
+ ------------------
+
+ function Deflate_Init
+ (strm : Z_Streamp;
+ level : Int;
+ method : Int;
+ windowBits : Int;
+ memLevel : Int;
+ strategy : Int)
+ return Int is
+ begin
+ return deflateInit2
+ (strm,
+ level,
+ method,
+ windowBits,
+ memLevel,
+ strategy,
+ ZLIB_VERSION,
+ Z_Stream_Size);
+ end Deflate_Init;
+
+ ------------------
+ -- Inflate_Init --
+ ------------------
+
+ function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is
+ begin
+ return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size);
+ end Inflate_Init;
+
+ ------------------------
+ -- Last_Error_Message --
+ ------------------------
+
+ function Last_Error_Message (Strm : in Z_Stream) return String is
+ use Interfaces.C.Strings;
+ begin
+ if Strm.msg = Null_Ptr then
+ return "";
+ else
+ return Value (Strm.msg);
+ end if;
+ end Last_Error_Message;
+
+ ------------
+ -- Set_In --
+ ------------
+
+ procedure Set_In
+ (Strm : in out Z_Stream;
+ Buffer : in Voidp;
+ Size : in UInt) is
+ begin
+ Strm.Next_In := Buffer;
+ Strm.Avail_In := Size;
+ end Set_In;
+
+ ------------------
+ -- Set_Mem_Func --
+ ------------------
+
+ procedure Set_Mem_Func
+ (Strm : in out Z_Stream;
+ Opaque : in Voidp;
+ Alloc : in alloc_func;
+ Free : in free_func) is
+ begin
+ Strm.opaque := Opaque;
+ Strm.zalloc := Alloc;
+ Strm.zfree := Free;
+ end Set_Mem_Func;
+
+ -------------
+ -- Set_Out --
+ -------------
+
+ procedure Set_Out
+ (Strm : in out Z_Stream;
+ Buffer : in Voidp;
+ Size : in UInt) is
+ begin
+ Strm.Next_Out := Buffer;
+ Strm.Avail_Out := Size;
+ end Set_Out;
+
+ --------------
+ -- Total_In --
+ --------------
+
+ function Total_In (Strm : in Z_Stream) return ULong is
+ begin
+ return Strm.Total_In;
+ end Total_In;
+
+ ---------------
+ -- Total_Out --
+ ---------------
+
+ function Total_Out (Strm : in Z_Stream) return ULong is
+ begin
+ return Strm.Total_Out;
+ end Total_Out;
+
+end ZLib.Thin;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.ads b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.ads
new file mode 100644
index 000000000..810173cff
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib-thin.ads
@@ -0,0 +1,450 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2003 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp $
+
+with Interfaces.C.Strings;
+
+with System;
+
+private package ZLib.Thin is
+
+ -- From zconf.h
+
+ MAX_MEM_LEVEL : constant := 9; -- zconf.h:105
+ -- zconf.h:105
+ MAX_WBITS : constant := 15; -- zconf.h:115
+ -- 32K LZ77 window
+ -- zconf.h:115
+ SEEK_SET : constant := 8#0000#; -- zconf.h:244
+ -- Seek from beginning of file.
+ -- zconf.h:244
+ SEEK_CUR : constant := 1; -- zconf.h:245
+ -- Seek from current position.
+ -- zconf.h:245
+ SEEK_END : constant := 2; -- zconf.h:246
+ -- Set file pointer to EOF plus "offset"
+ -- zconf.h:246
+
+ type Byte is new Interfaces.C.unsigned_char; -- 8 bits
+ -- zconf.h:214
+ type UInt is new Interfaces.C.unsigned; -- 16 bits or more
+ -- zconf.h:216
+ type Int is new Interfaces.C.int;
+
+ type ULong is new Interfaces.C.unsigned_long; -- 32 bits or more
+ -- zconf.h:217
+ subtype Chars_Ptr is Interfaces.C.Strings.chars_ptr;
+
+ type ULong_Access is access ULong;
+ type Int_Access is access Int;
+
+ subtype Voidp is System.Address; -- zconf.h:232
+
+ subtype Byte_Access is Voidp;
+
+ Nul : constant Voidp := System.Null_Address;
+ -- end from zconf
+
+ Z_NO_FLUSH : constant := 8#0000#; -- zlib.h:125
+ -- zlib.h:125
+ Z_PARTIAL_FLUSH : constant := 1; -- zlib.h:126
+ -- will be removed, use
+ -- Z_SYNC_FLUSH instead
+ -- zlib.h:126
+ Z_SYNC_FLUSH : constant := 2; -- zlib.h:127
+ -- zlib.h:127
+ Z_FULL_FLUSH : constant := 3; -- zlib.h:128
+ -- zlib.h:128
+ Z_FINISH : constant := 4; -- zlib.h:129
+ -- zlib.h:129
+ Z_OK : constant := 8#0000#; -- zlib.h:132
+ -- zlib.h:132
+ Z_STREAM_END : constant := 1; -- zlib.h:133
+ -- zlib.h:133
+ Z_NEED_DICT : constant := 2; -- zlib.h:134
+ -- zlib.h:134
+ Z_ERRNO : constant := -1; -- zlib.h:135
+ -- zlib.h:135
+ Z_STREAM_ERROR : constant := -2; -- zlib.h:136
+ -- zlib.h:136
+ Z_DATA_ERROR : constant := -3; -- zlib.h:137
+ -- zlib.h:137
+ Z_MEM_ERROR : constant := -4; -- zlib.h:138
+ -- zlib.h:138
+ Z_BUF_ERROR : constant := -5; -- zlib.h:139
+ -- zlib.h:139
+ Z_VERSION_ERROR : constant := -6; -- zlib.h:140
+ -- zlib.h:140
+ Z_NO_COMPRESSION : constant := 8#0000#; -- zlib.h:145
+ -- zlib.h:145
+ Z_BEST_SPEED : constant := 1; -- zlib.h:146
+ -- zlib.h:146
+ Z_BEST_COMPRESSION : constant := 9; -- zlib.h:147
+ -- zlib.h:147
+ Z_DEFAULT_COMPRESSION : constant := -1; -- zlib.h:148
+ -- zlib.h:148
+ Z_FILTERED : constant := 1; -- zlib.h:151
+ -- zlib.h:151
+ Z_HUFFMAN_ONLY : constant := 2; -- zlib.h:152
+ -- zlib.h:152
+ Z_DEFAULT_STRATEGY : constant := 8#0000#; -- zlib.h:153
+ -- zlib.h:153
+ Z_BINARY : constant := 8#0000#; -- zlib.h:156
+ -- zlib.h:156
+ Z_ASCII : constant := 1; -- zlib.h:157
+ -- zlib.h:157
+ Z_UNKNOWN : constant := 2; -- zlib.h:158
+ -- zlib.h:158
+ Z_DEFLATED : constant := 8; -- zlib.h:161
+ -- zlib.h:161
+ Z_NULL : constant := 8#0000#; -- zlib.h:164
+ -- for initializing zalloc, zfree, opaque
+ -- zlib.h:164
+ type gzFile is new Voidp; -- zlib.h:646
+
+ type Z_Stream is private;
+
+ type Z_Streamp is access all Z_Stream; -- zlib.h:89
+
+ type alloc_func is access function
+ (Opaque : Voidp;
+ Items : UInt;
+ Size : UInt)
+ return Voidp; -- zlib.h:63
+
+ type free_func is access procedure (opaque : Voidp; address : Voidp);
+
+ function zlibVersion return Chars_Ptr;
+
+ function Deflate (strm : Z_Streamp; flush : Int) return Int;
+
+ function DeflateEnd (strm : Z_Streamp) return Int;
+
+ function Inflate (strm : Z_Streamp; flush : Int) return Int;
+
+ function InflateEnd (strm : Z_Streamp) return Int;
+
+ function deflateSetDictionary
+ (strm : Z_Streamp;
+ dictionary : Byte_Access;
+ dictLength : UInt)
+ return Int;
+
+ function deflateCopy (dest : Z_Streamp; source : Z_Streamp) return Int;
+ -- zlib.h:478
+
+ function deflateReset (strm : Z_Streamp) return Int; -- zlib.h:495
+
+ function deflateParams
+ (strm : Z_Streamp;
+ level : Int;
+ strategy : Int)
+ return Int; -- zlib.h:506
+
+ function inflateSetDictionary
+ (strm : Z_Streamp;
+ dictionary : Byte_Access;
+ dictLength : UInt)
+ return Int; -- zlib.h:548
+
+ function inflateSync (strm : Z_Streamp) return Int; -- zlib.h:565
+
+ function inflateReset (strm : Z_Streamp) return Int; -- zlib.h:580
+
+ function compress
+ (dest : Byte_Access;
+ destLen : ULong_Access;
+ source : Byte_Access;
+ sourceLen : ULong)
+ return Int; -- zlib.h:601
+
+ function compress2
+ (dest : Byte_Access;
+ destLen : ULong_Access;
+ source : Byte_Access;
+ sourceLen : ULong;
+ level : Int)
+ return Int; -- zlib.h:615
+
+ function uncompress
+ (dest : Byte_Access;
+ destLen : ULong_Access;
+ source : Byte_Access;
+ sourceLen : ULong)
+ return Int;
+
+ function gzopen (path : Chars_Ptr; mode : Chars_Ptr) return gzFile;
+
+ function gzdopen (fd : Int; mode : Chars_Ptr) return gzFile;
+
+ function gzsetparams
+ (file : gzFile;
+ level : Int;
+ strategy : Int)
+ return Int;
+
+ function gzread
+ (file : gzFile;
+ buf : Voidp;
+ len : UInt)
+ return Int;
+
+ function gzwrite
+ (file : in gzFile;
+ buf : in Voidp;
+ len : in UInt)
+ return Int;
+
+ function gzprintf (file : in gzFile; format : in Chars_Ptr) return Int;
+
+ function gzputs (file : in gzFile; s : in Chars_Ptr) return Int;
+
+ function gzgets
+ (file : gzFile;
+ buf : Chars_Ptr;
+ len : Int)
+ return Chars_Ptr;
+
+ function gzputc (file : gzFile; char : Int) return Int;
+
+ function gzgetc (file : gzFile) return Int;
+
+ function gzflush (file : gzFile; flush : Int) return Int;
+
+ function gzseek
+ (file : gzFile;
+ offset : Int;
+ whence : Int)
+ return Int;
+
+ function gzrewind (file : gzFile) return Int;
+
+ function gztell (file : gzFile) return Int;
+
+ function gzeof (file : gzFile) return Int;
+
+ function gzclose (file : gzFile) return Int;
+
+ function gzerror (file : gzFile; errnum : Int_Access) return Chars_Ptr;
+
+ function adler32
+ (adler : ULong;
+ buf : Byte_Access;
+ len : UInt)
+ return ULong;
+
+ function crc32
+ (crc : ULong;
+ buf : Byte_Access;
+ len : UInt)
+ return ULong;
+
+ function deflateInit
+ (strm : Z_Streamp;
+ level : Int;
+ version : Chars_Ptr;
+ stream_size : Int)
+ return Int;
+
+ function deflateInit2
+ (strm : Z_Streamp;
+ level : Int;
+ method : Int;
+ windowBits : Int;
+ memLevel : Int;
+ strategy : Int;
+ version : Chars_Ptr;
+ stream_size : Int)
+ return Int;
+
+ function Deflate_Init
+ (strm : Z_Streamp;
+ level : Int;
+ method : Int;
+ windowBits : Int;
+ memLevel : Int;
+ strategy : Int)
+ return Int;
+ pragma Inline (Deflate_Init);
+
+ function inflateInit
+ (strm : Z_Streamp;
+ version : Chars_Ptr;
+ stream_size : Int)
+ return Int;
+
+ function inflateInit2
+ (strm : in Z_Streamp;
+ windowBits : in Int;
+ version : in Chars_Ptr;
+ stream_size : in Int)
+ return Int;
+
+ function inflateBackInit
+ (strm : in Z_Streamp;
+ windowBits : in Int;
+ window : in Byte_Access;
+ version : in Chars_Ptr;
+ stream_size : in Int)
+ return Int;
+ -- Size of window have to be 2**windowBits.
+
+ function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int;
+ pragma Inline (Inflate_Init);
+
+ function zError (err : Int) return Chars_Ptr;
+
+ function inflateSyncPoint (z : Z_Streamp) return Int;
+
+ function get_crc_table return ULong_Access;
+
+ -- Interface to the available fields of the z_stream structure.
+ -- The application must update next_in and avail_in when avail_in has
+ -- dropped to zero. It must update next_out and avail_out when avail_out
+ -- has dropped to zero. The application must initialize zalloc, zfree and
+ -- opaque before calling the init function.
+
+ procedure Set_In
+ (Strm : in out Z_Stream;
+ Buffer : in Voidp;
+ Size : in UInt);
+ pragma Inline (Set_In);
+
+ procedure Set_Out
+ (Strm : in out Z_Stream;
+ Buffer : in Voidp;
+ Size : in UInt);
+ pragma Inline (Set_Out);
+
+ procedure Set_Mem_Func
+ (Strm : in out Z_Stream;
+ Opaque : in Voidp;
+ Alloc : in alloc_func;
+ Free : in free_func);
+ pragma Inline (Set_Mem_Func);
+
+ function Last_Error_Message (Strm : in Z_Stream) return String;
+ pragma Inline (Last_Error_Message);
+
+ function Avail_Out (Strm : in Z_Stream) return UInt;
+ pragma Inline (Avail_Out);
+
+ function Avail_In (Strm : in Z_Stream) return UInt;
+ pragma Inline (Avail_In);
+
+ function Total_In (Strm : in Z_Stream) return ULong;
+ pragma Inline (Total_In);
+
+ function Total_Out (Strm : in Z_Stream) return ULong;
+ pragma Inline (Total_Out);
+
+ function inflateCopy
+ (dest : in Z_Streamp;
+ Source : in Z_Streamp)
+ return Int;
+
+ function compressBound (Source_Len : in ULong) return ULong;
+
+ function deflateBound
+ (Strm : in Z_Streamp;
+ Source_Len : in ULong)
+ return ULong;
+
+ function gzungetc (C : in Int; File : in gzFile) return Int;
+
+ function zlibCompileFlags return ULong;
+
+private
+
+ type Z_Stream is record -- zlib.h:68
+ Next_In : Voidp := Nul; -- next input byte
+ Avail_In : UInt := 0; -- number of bytes available at next_in
+ Total_In : ULong := 0; -- total nb of input bytes read so far
+ Next_Out : Voidp := Nul; -- next output byte should be put there
+ Avail_Out : UInt := 0; -- remaining free space at next_out
+ Total_Out : ULong := 0; -- total nb of bytes output so far
+ msg : Chars_Ptr; -- last error message, NULL if no error
+ state : Voidp; -- not visible by applications
+ zalloc : alloc_func := null; -- used to allocate the internal state
+ zfree : free_func := null; -- used to free the internal state
+ opaque : Voidp; -- private data object passed to
+ -- zalloc and zfree
+ data_type : Int; -- best guess about the data type:
+ -- ascii or binary
+ adler : ULong; -- adler32 value of the uncompressed
+ -- data
+ reserved : ULong; -- reserved for future use
+ end record;
+
+ pragma Convention (C, Z_Stream);
+
+ pragma Import (C, zlibVersion, "zlibVersion");
+ pragma Import (C, Deflate, "deflate");
+ pragma Import (C, DeflateEnd, "deflateEnd");
+ pragma Import (C, Inflate, "inflate");
+ pragma Import (C, InflateEnd, "inflateEnd");
+ pragma Import (C, deflateSetDictionary, "deflateSetDictionary");
+ pragma Import (C, deflateCopy, "deflateCopy");
+ pragma Import (C, deflateReset, "deflateReset");
+ pragma Import (C, deflateParams, "deflateParams");
+ pragma Import (C, inflateSetDictionary, "inflateSetDictionary");
+ pragma Import (C, inflateSync, "inflateSync");
+ pragma Import (C, inflateReset, "inflateReset");
+ pragma Import (C, compress, "compress");
+ pragma Import (C, compress2, "compress2");
+ pragma Import (C, uncompress, "uncompress");
+ pragma Import (C, gzopen, "gzopen");
+ pragma Import (C, gzdopen, "gzdopen");
+ pragma Import (C, gzsetparams, "gzsetparams");
+ pragma Import (C, gzread, "gzread");
+ pragma Import (C, gzwrite, "gzwrite");
+ pragma Import (C, gzprintf, "gzprintf");
+ pragma Import (C, gzputs, "gzputs");
+ pragma Import (C, gzgets, "gzgets");
+ pragma Import (C, gzputc, "gzputc");
+ pragma Import (C, gzgetc, "gzgetc");
+ pragma Import (C, gzflush, "gzflush");
+ pragma Import (C, gzseek, "gzseek");
+ pragma Import (C, gzrewind, "gzrewind");
+ pragma Import (C, gztell, "gztell");
+ pragma Import (C, gzeof, "gzeof");
+ pragma Import (C, gzclose, "gzclose");
+ pragma Import (C, gzerror, "gzerror");
+ pragma Import (C, adler32, "adler32");
+ pragma Import (C, crc32, "crc32");
+ pragma Import (C, deflateInit, "deflateInit_");
+ pragma Import (C, inflateInit, "inflateInit_");
+ pragma Import (C, deflateInit2, "deflateInit2_");
+ pragma Import (C, inflateInit2, "inflateInit2_");
+ pragma Import (C, zError, "zError");
+ pragma Import (C, inflateSyncPoint, "inflateSyncPoint");
+ pragma Import (C, get_crc_table, "get_crc_table");
+
+ -- since zlib 1.2.0:
+
+ pragma Import (C, inflateCopy, "inflateCopy");
+ pragma Import (C, compressBound, "compressBound");
+ pragma Import (C, deflateBound, "deflateBound");
+ pragma Import (C, gzungetc, "gzungetc");
+ pragma Import (C, zlibCompileFlags, "zlibCompileFlags");
+
+ pragma Import (C, inflateBackInit, "inflateBackInit_");
+
+ -- I stopped binding the inflateBack routines, because realize that
+ -- it does not support zlib and gzip headers for now, and have no
+ -- symmetric deflateBack routines.
+ -- ZLib-Ada is symmetric regarding deflate/inflate data transformation
+ -- and has a similar generic callback interface for the
+ -- deflate/inflate transformation based on the regular Deflate/Inflate
+ -- routines.
+
+ -- pragma Import (C, inflateBack, "inflateBack");
+ -- pragma Import (C, inflateBackEnd, "inflateBackEnd");
+
+end ZLib.Thin;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.adb b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.adb
new file mode 100644
index 000000000..8b6fd686a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.adb
@@ -0,0 +1,701 @@
+----------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2004 Dmitriy Anisimkov --
+-- --
+-- Open source license information is in the zlib.ads file. --
+----------------------------------------------------------------
+
+-- $Id: zlib.adb,v 1.31 2004/09/06 06:53:19 vagul Exp $
+
+with Ada.Exceptions;
+with Ada.Unchecked_Conversion;
+with Ada.Unchecked_Deallocation;
+
+with Interfaces.C.Strings;
+
+with ZLib.Thin;
+
+package body ZLib is
+
+ use type Thin.Int;
+
+ type Z_Stream is new Thin.Z_Stream;
+
+ type Return_Code_Enum is
+ (OK,
+ STREAM_END,
+ NEED_DICT,
+ ERRNO,
+ STREAM_ERROR,
+ DATA_ERROR,
+ MEM_ERROR,
+ BUF_ERROR,
+ VERSION_ERROR);
+
+ type Flate_Step_Function is access
+ function (Strm : in Thin.Z_Streamp; Flush : in Thin.Int) return Thin.Int;
+ pragma Convention (C, Flate_Step_Function);
+
+ type Flate_End_Function is access
+ function (Ctrm : in Thin.Z_Streamp) return Thin.Int;
+ pragma Convention (C, Flate_End_Function);
+
+ type Flate_Type is record
+ Step : Flate_Step_Function;
+ Done : Flate_End_Function;
+ end record;
+
+ subtype Footer_Array is Stream_Element_Array (1 .. 8);
+
+ Simple_GZip_Header : constant Stream_Element_Array (1 .. 10)
+ := (16#1f#, 16#8b#, -- Magic header
+ 16#08#, -- Z_DEFLATED
+ 16#00#, -- Flags
+ 16#00#, 16#00#, 16#00#, 16#00#, -- Time
+ 16#00#, -- XFlags
+ 16#03# -- OS code
+ );
+ -- The simplest gzip header is not for informational, but just for
+ -- gzip format compatibility.
+ -- Note that some code below is using assumption
+ -- Simple_GZip_Header'Last > Footer_Array'Last, so do not make
+ -- Simple_GZip_Header'Last <= Footer_Array'Last.
+
+ Return_Code : constant array (Thin.Int range <>) of Return_Code_Enum
+ := (0 => OK,
+ 1 => STREAM_END,
+ 2 => NEED_DICT,
+ -1 => ERRNO,
+ -2 => STREAM_ERROR,
+ -3 => DATA_ERROR,
+ -4 => MEM_ERROR,
+ -5 => BUF_ERROR,
+ -6 => VERSION_ERROR);
+
+ Flate : constant array (Boolean) of Flate_Type
+ := (True => (Step => Thin.Deflate'Access,
+ Done => Thin.DeflateEnd'Access),
+ False => (Step => Thin.Inflate'Access,
+ Done => Thin.InflateEnd'Access));
+
+ Flush_Finish : constant array (Boolean) of Flush_Mode
+ := (True => Finish, False => No_Flush);
+
+ procedure Raise_Error (Stream : in Z_Stream);
+ pragma Inline (Raise_Error);
+
+ procedure Raise_Error (Message : in String);
+ pragma Inline (Raise_Error);
+
+ procedure Check_Error (Stream : in Z_Stream; Code : in Thin.Int);
+
+ procedure Free is new Ada.Unchecked_Deallocation
+ (Z_Stream, Z_Stream_Access);
+
+ function To_Thin_Access is new Ada.Unchecked_Conversion
+ (Z_Stream_Access, Thin.Z_Streamp);
+
+ procedure Translate_GZip
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode);
+ -- Separate translate routine for make gzip header.
+
+ procedure Translate_Auto
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode);
+ -- translate routine without additional headers.
+
+ -----------------
+ -- Check_Error --
+ -----------------
+
+ procedure Check_Error (Stream : in Z_Stream; Code : in Thin.Int) is
+ use type Thin.Int;
+ begin
+ if Code /= Thin.Z_OK then
+ Raise_Error
+ (Return_Code_Enum'Image (Return_Code (Code))
+ & ": " & Last_Error_Message (Stream));
+ end if;
+ end Check_Error;
+
+ -----------
+ -- Close --
+ -----------
+
+ procedure Close
+ (Filter : in out Filter_Type;
+ Ignore_Error : in Boolean := False)
+ is
+ Code : Thin.Int;
+ begin
+ if not Ignore_Error and then not Is_Open (Filter) then
+ raise Status_Error;
+ end if;
+
+ Code := Flate (Filter.Compression).Done (To_Thin_Access (Filter.Strm));
+
+ if Ignore_Error or else Code = Thin.Z_OK then
+ Free (Filter.Strm);
+ else
+ declare
+ Error_Message : constant String
+ := Last_Error_Message (Filter.Strm.all);
+ begin
+ Free (Filter.Strm);
+ Ada.Exceptions.Raise_Exception
+ (ZLib_Error'Identity,
+ Return_Code_Enum'Image (Return_Code (Code))
+ & ": " & Error_Message);
+ end;
+ end if;
+ end Close;
+
+ -----------
+ -- CRC32 --
+ -----------
+
+ function CRC32
+ (CRC : in Unsigned_32;
+ Data : in Ada.Streams.Stream_Element_Array)
+ return Unsigned_32
+ is
+ use Thin;
+ begin
+ return Unsigned_32 (crc32 (ULong (CRC),
+ Data'Address,
+ Data'Length));
+ end CRC32;
+
+ procedure CRC32
+ (CRC : in out Unsigned_32;
+ Data : in Ada.Streams.Stream_Element_Array) is
+ begin
+ CRC := CRC32 (CRC, Data);
+ end CRC32;
+
+ ------------------
+ -- Deflate_Init --
+ ------------------
+
+ procedure Deflate_Init
+ (Filter : in out Filter_Type;
+ Level : in Compression_Level := Default_Compression;
+ Strategy : in Strategy_Type := Default_Strategy;
+ Method : in Compression_Method := Deflated;
+ Window_Bits : in Window_Bits_Type := Default_Window_Bits;
+ Memory_Level : in Memory_Level_Type := Default_Memory_Level;
+ Header : in Header_Type := Default)
+ is
+ use type Thin.Int;
+ Win_Bits : Thin.Int := Thin.Int (Window_Bits);
+ begin
+ if Is_Open (Filter) then
+ raise Status_Error;
+ end if;
+
+ -- We allow ZLib to make header only in case of default header type.
+ -- Otherwise we would either do header by ourselfs, or do not do
+ -- header at all.
+
+ if Header = None or else Header = GZip then
+ Win_Bits := -Win_Bits;
+ end if;
+
+ -- For the GZip CRC calculation and make headers.
+
+ if Header = GZip then
+ Filter.CRC := 0;
+ Filter.Offset := Simple_GZip_Header'First;
+ else
+ Filter.Offset := Simple_GZip_Header'Last + 1;
+ end if;
+
+ Filter.Strm := new Z_Stream;
+ Filter.Compression := True;
+ Filter.Stream_End := False;
+ Filter.Header := Header;
+
+ if Thin.Deflate_Init
+ (To_Thin_Access (Filter.Strm),
+ Level => Thin.Int (Level),
+ method => Thin.Int (Method),
+ windowBits => Win_Bits,
+ memLevel => Thin.Int (Memory_Level),
+ strategy => Thin.Int (Strategy)) /= Thin.Z_OK
+ then
+ Raise_Error (Filter.Strm.all);
+ end if;
+ end Deflate_Init;
+
+ -----------
+ -- Flush --
+ -----------
+
+ procedure Flush
+ (Filter : in out Filter_Type;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode)
+ is
+ No_Data : Stream_Element_Array := (1 .. 0 => 0);
+ Last : Stream_Element_Offset;
+ begin
+ Translate (Filter, No_Data, Last, Out_Data, Out_Last, Flush);
+ end Flush;
+
+ -----------------------
+ -- Generic_Translate --
+ -----------------------
+
+ procedure Generic_Translate
+ (Filter : in out ZLib.Filter_Type;
+ In_Buffer_Size : in Integer := Default_Buffer_Size;
+ Out_Buffer_Size : in Integer := Default_Buffer_Size)
+ is
+ In_Buffer : Stream_Element_Array
+ (1 .. Stream_Element_Offset (In_Buffer_Size));
+ Out_Buffer : Stream_Element_Array
+ (1 .. Stream_Element_Offset (Out_Buffer_Size));
+ Last : Stream_Element_Offset;
+ In_Last : Stream_Element_Offset;
+ In_First : Stream_Element_Offset;
+ Out_Last : Stream_Element_Offset;
+ begin
+ Main : loop
+ Data_In (In_Buffer, Last);
+
+ In_First := In_Buffer'First;
+
+ loop
+ Translate
+ (Filter => Filter,
+ In_Data => In_Buffer (In_First .. Last),
+ In_Last => In_Last,
+ Out_Data => Out_Buffer,
+ Out_Last => Out_Last,
+ Flush => Flush_Finish (Last < In_Buffer'First));
+
+ if Out_Buffer'First <= Out_Last then
+ Data_Out (Out_Buffer (Out_Buffer'First .. Out_Last));
+ end if;
+
+ exit Main when Stream_End (Filter);
+
+ -- The end of in buffer.
+
+ exit when In_Last = Last;
+
+ In_First := In_Last + 1;
+ end loop;
+ end loop Main;
+
+ end Generic_Translate;
+
+ ------------------
+ -- Inflate_Init --
+ ------------------
+
+ procedure Inflate_Init
+ (Filter : in out Filter_Type;
+ Window_Bits : in Window_Bits_Type := Default_Window_Bits;
+ Header : in Header_Type := Default)
+ is
+ use type Thin.Int;
+ Win_Bits : Thin.Int := Thin.Int (Window_Bits);
+
+ procedure Check_Version;
+ -- Check the latest header types compatibility.
+
+ procedure Check_Version is
+ begin
+ if Version <= "1.1.4" then
+ Raise_Error
+ ("Inflate header type " & Header_Type'Image (Header)
+ & " incompatible with ZLib version " & Version);
+ end if;
+ end Check_Version;
+
+ begin
+ if Is_Open (Filter) then
+ raise Status_Error;
+ end if;
+
+ case Header is
+ when None =>
+ Check_Version;
+
+ -- Inflate data without headers determined
+ -- by negative Win_Bits.
+
+ Win_Bits := -Win_Bits;
+ when GZip =>
+ Check_Version;
+
+ -- Inflate gzip data defined by flag 16.
+
+ Win_Bits := Win_Bits + 16;
+ when Auto =>
+ Check_Version;
+
+ -- Inflate with automatic detection
+ -- of gzip or native header defined by flag 32.
+
+ Win_Bits := Win_Bits + 32;
+ when Default => null;
+ end case;
+
+ Filter.Strm := new Z_Stream;
+ Filter.Compression := False;
+ Filter.Stream_End := False;
+ Filter.Header := Header;
+
+ if Thin.Inflate_Init
+ (To_Thin_Access (Filter.Strm), Win_Bits) /= Thin.Z_OK
+ then
+ Raise_Error (Filter.Strm.all);
+ end if;
+ end Inflate_Init;
+
+ -------------
+ -- Is_Open --
+ -------------
+
+ function Is_Open (Filter : in Filter_Type) return Boolean is
+ begin
+ return Filter.Strm /= null;
+ end Is_Open;
+
+ -----------------
+ -- Raise_Error --
+ -----------------
+
+ procedure Raise_Error (Message : in String) is
+ begin
+ Ada.Exceptions.Raise_Exception (ZLib_Error'Identity, Message);
+ end Raise_Error;
+
+ procedure Raise_Error (Stream : in Z_Stream) is
+ begin
+ Raise_Error (Last_Error_Message (Stream));
+ end Raise_Error;
+
+ ----------
+ -- Read --
+ ----------
+
+ procedure Read
+ (Filter : in out Filter_Type;
+ Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode := No_Flush)
+ is
+ In_Last : Stream_Element_Offset;
+ Item_First : Ada.Streams.Stream_Element_Offset := Item'First;
+ V_Flush : Flush_Mode := Flush;
+
+ begin
+ pragma Assert (Rest_First in Buffer'First .. Buffer'Last + 1);
+ pragma Assert (Rest_Last in Buffer'First - 1 .. Buffer'Last);
+
+ loop
+ if Rest_Last = Buffer'First - 1 then
+ V_Flush := Finish;
+
+ elsif Rest_First > Rest_Last then
+ Read (Buffer, Rest_Last);
+ Rest_First := Buffer'First;
+
+ if Rest_Last < Buffer'First then
+ V_Flush := Finish;
+ end if;
+ end if;
+
+ Translate
+ (Filter => Filter,
+ In_Data => Buffer (Rest_First .. Rest_Last),
+ In_Last => In_Last,
+ Out_Data => Item (Item_First .. Item'Last),
+ Out_Last => Last,
+ Flush => V_Flush);
+
+ Rest_First := In_Last + 1;
+
+ exit when Stream_End (Filter)
+ or else Last = Item'Last
+ or else (Last >= Item'First and then Allow_Read_Some);
+
+ Item_First := Last + 1;
+ end loop;
+ end Read;
+
+ ----------------
+ -- Stream_End --
+ ----------------
+
+ function Stream_End (Filter : in Filter_Type) return Boolean is
+ begin
+ if Filter.Header = GZip and Filter.Compression then
+ return Filter.Stream_End
+ and then Filter.Offset = Footer_Array'Last + 1;
+ else
+ return Filter.Stream_End;
+ end if;
+ end Stream_End;
+
+ --------------
+ -- Total_In --
+ --------------
+
+ function Total_In (Filter : in Filter_Type) return Count is
+ begin
+ return Count (Thin.Total_In (To_Thin_Access (Filter.Strm).all));
+ end Total_In;
+
+ ---------------
+ -- Total_Out --
+ ---------------
+
+ function Total_Out (Filter : in Filter_Type) return Count is
+ begin
+ return Count (Thin.Total_Out (To_Thin_Access (Filter.Strm).all));
+ end Total_Out;
+
+ ---------------
+ -- Translate --
+ ---------------
+
+ procedure Translate
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode) is
+ begin
+ if Filter.Header = GZip and then Filter.Compression then
+ Translate_GZip
+ (Filter => Filter,
+ In_Data => In_Data,
+ In_Last => In_Last,
+ Out_Data => Out_Data,
+ Out_Last => Out_Last,
+ Flush => Flush);
+ else
+ Translate_Auto
+ (Filter => Filter,
+ In_Data => In_Data,
+ In_Last => In_Last,
+ Out_Data => Out_Data,
+ Out_Last => Out_Last,
+ Flush => Flush);
+ end if;
+ end Translate;
+
+ --------------------
+ -- Translate_Auto --
+ --------------------
+
+ procedure Translate_Auto
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode)
+ is
+ use type Thin.Int;
+ Code : Thin.Int;
+
+ begin
+ if not Is_Open (Filter) then
+ raise Status_Error;
+ end if;
+
+ if Out_Data'Length = 0 and then In_Data'Length = 0 then
+ raise Constraint_Error;
+ end if;
+
+ Set_Out (Filter.Strm.all, Out_Data'Address, Out_Data'Length);
+ Set_In (Filter.Strm.all, In_Data'Address, In_Data'Length);
+
+ Code := Flate (Filter.Compression).Step
+ (To_Thin_Access (Filter.Strm),
+ Thin.Int (Flush));
+
+ if Code = Thin.Z_STREAM_END then
+ Filter.Stream_End := True;
+ else
+ Check_Error (Filter.Strm.all, Code);
+ end if;
+
+ In_Last := In_Data'Last
+ - Stream_Element_Offset (Avail_In (Filter.Strm.all));
+ Out_Last := Out_Data'Last
+ - Stream_Element_Offset (Avail_Out (Filter.Strm.all));
+ end Translate_Auto;
+
+ --------------------
+ -- Translate_GZip --
+ --------------------
+
+ procedure Translate_GZip
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode)
+ is
+ Out_First : Stream_Element_Offset;
+
+ procedure Add_Data (Data : in Stream_Element_Array);
+ -- Add data to stream from the Filter.Offset till necessary,
+ -- used for add gzip headr/footer.
+
+ procedure Put_32
+ (Item : in out Stream_Element_Array;
+ Data : in Unsigned_32);
+ pragma Inline (Put_32);
+
+ --------------
+ -- Add_Data --
+ --------------
+
+ procedure Add_Data (Data : in Stream_Element_Array) is
+ Data_First : Stream_Element_Offset renames Filter.Offset;
+ Data_Last : Stream_Element_Offset;
+ Data_Len : Stream_Element_Offset; -- -1
+ Out_Len : Stream_Element_Offset; -- -1
+ begin
+ Out_First := Out_Last + 1;
+
+ if Data_First > Data'Last then
+ return;
+ end if;
+
+ Data_Len := Data'Last - Data_First;
+ Out_Len := Out_Data'Last - Out_First;
+
+ if Data_Len <= Out_Len then
+ Out_Last := Out_First + Data_Len;
+ Data_Last := Data'Last;
+ else
+ Out_Last := Out_Data'Last;
+ Data_Last := Data_First + Out_Len;
+ end if;
+
+ Out_Data (Out_First .. Out_Last) := Data (Data_First .. Data_Last);
+
+ Data_First := Data_Last + 1;
+ Out_First := Out_Last + 1;
+ end Add_Data;
+
+ ------------
+ -- Put_32 --
+ ------------
+
+ procedure Put_32
+ (Item : in out Stream_Element_Array;
+ Data : in Unsigned_32)
+ is
+ D : Unsigned_32 := Data;
+ begin
+ for J in Item'First .. Item'First + 3 loop
+ Item (J) := Stream_Element (D and 16#FF#);
+ D := Shift_Right (D, 8);
+ end loop;
+ end Put_32;
+
+ begin
+ Out_Last := Out_Data'First - 1;
+
+ if not Filter.Stream_End then
+ Add_Data (Simple_GZip_Header);
+
+ Translate_Auto
+ (Filter => Filter,
+ In_Data => In_Data,
+ In_Last => In_Last,
+ Out_Data => Out_Data (Out_First .. Out_Data'Last),
+ Out_Last => Out_Last,
+ Flush => Flush);
+
+ CRC32 (Filter.CRC, In_Data (In_Data'First .. In_Last));
+ end if;
+
+ if Filter.Stream_End and then Out_Last <= Out_Data'Last then
+ -- This detection method would work only when
+ -- Simple_GZip_Header'Last > Footer_Array'Last
+
+ if Filter.Offset = Simple_GZip_Header'Last + 1 then
+ Filter.Offset := Footer_Array'First;
+ end if;
+
+ declare
+ Footer : Footer_Array;
+ begin
+ Put_32 (Footer, Filter.CRC);
+ Put_32 (Footer (Footer'First + 4 .. Footer'Last),
+ Unsigned_32 (Total_In (Filter)));
+ Add_Data (Footer);
+ end;
+ end if;
+ end Translate_GZip;
+
+ -------------
+ -- Version --
+ -------------
+
+ function Version return String is
+ begin
+ return Interfaces.C.Strings.Value (Thin.zlibVersion);
+ end Version;
+
+ -----------
+ -- Write --
+ -----------
+
+ procedure Write
+ (Filter : in out Filter_Type;
+ Item : in Ada.Streams.Stream_Element_Array;
+ Flush : in Flush_Mode := No_Flush)
+ is
+ Buffer : Stream_Element_Array (1 .. Buffer_Size);
+ In_Last : Stream_Element_Offset;
+ Out_Last : Stream_Element_Offset;
+ In_First : Stream_Element_Offset := Item'First;
+ begin
+ if Item'Length = 0 and Flush = No_Flush then
+ return;
+ end if;
+
+ loop
+ Translate
+ (Filter => Filter,
+ In_Data => Item (In_First .. Item'Last),
+ In_Last => In_Last,
+ Out_Data => Buffer,
+ Out_Last => Out_Last,
+ Flush => Flush);
+
+ if Out_Last >= Buffer'First then
+ Write (Buffer (1 .. Out_Last));
+ end if;
+
+ exit when In_Last = Item'Last or Stream_End (Filter);
+
+ In_First := In_Last + 1;
+ end loop;
+ end Write;
+
+end ZLib;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.ads b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.ads
new file mode 100644
index 000000000..79ffc4095
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.ads
@@ -0,0 +1,328 @@
+------------------------------------------------------------------------------
+-- ZLib for Ada thick binding. --
+-- --
+-- Copyright (C) 2002-2004 Dmitriy Anisimkov --
+-- --
+-- This library is free software; you can redistribute it and/or modify --
+-- it under the terms of the GNU General Public License as published by --
+-- the Free Software Foundation; either version 2 of the License, or (at --
+-- your option) any later version. --
+-- --
+-- This library is distributed in the hope that it will be useful, but --
+-- WITHOUT ANY WARRANTY; without even the implied warranty of --
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
+-- General Public License for more details. --
+-- --
+-- You should have received a copy of the GNU General Public License --
+-- along with this library; if not, write to the Free Software Foundation, --
+-- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --
+-- --
+-- As a special exception, if other files instantiate generics from this --
+-- unit, or you link this unit with other files to produce an executable, --
+-- this unit does not by itself cause the resulting executable to be --
+-- covered by the GNU General Public License. This exception does not --
+-- however invalidate any other reasons why the executable file might be --
+-- covered by the GNU Public License. --
+------------------------------------------------------------------------------
+
+-- $Id: zlib.ads,v 1.26 2004/09/06 06:53:19 vagul Exp $
+
+with Ada.Streams;
+
+with Interfaces;
+
+package ZLib is
+
+ ZLib_Error : exception;
+ Status_Error : exception;
+
+ type Compression_Level is new Integer range -1 .. 9;
+
+ type Flush_Mode is private;
+
+ type Compression_Method is private;
+
+ type Window_Bits_Type is new Integer range 8 .. 15;
+
+ type Memory_Level_Type is new Integer range 1 .. 9;
+
+ type Unsigned_32 is new Interfaces.Unsigned_32;
+
+ type Strategy_Type is private;
+
+ type Header_Type is (None, Auto, Default, GZip);
+ -- Header type usage have a some limitation for inflate.
+ -- See comment for Inflate_Init.
+
+ subtype Count is Ada.Streams.Stream_Element_Count;
+
+ Default_Memory_Level : constant Memory_Level_Type := 8;
+ Default_Window_Bits : constant Window_Bits_Type := 15;
+
+ ----------------------------------
+ -- Compression method constants --
+ ----------------------------------
+
+ Deflated : constant Compression_Method;
+ -- Only one method allowed in this ZLib version
+
+ ---------------------------------
+ -- Compression level constants --
+ ---------------------------------
+
+ No_Compression : constant Compression_Level := 0;
+ Best_Speed : constant Compression_Level := 1;
+ Best_Compression : constant Compression_Level := 9;
+ Default_Compression : constant Compression_Level := -1;
+
+ --------------------------
+ -- Flush mode constants --
+ --------------------------
+
+ No_Flush : constant Flush_Mode;
+ -- Regular way for compression, no flush
+
+ Partial_Flush : constant Flush_Mode;
+ -- Will be removed, use Z_SYNC_FLUSH instead
+
+ Sync_Flush : constant Flush_Mode;
+ -- All pending output is flushed to the output buffer and the output
+ -- is aligned on a byte boundary, so that the decompressor can get all
+ -- input data available so far. (In particular avail_in is zero after the
+ -- call if enough output space has been provided before the call.)
+ -- Flushing may degrade compression for some compression algorithms and so
+ -- it should be used only when necessary.
+
+ Block_Flush : constant Flush_Mode;
+ -- Z_BLOCK requests that inflate() stop
+ -- if and when it get to the next deflate block boundary. When decoding the
+ -- zlib or gzip format, this will cause inflate() to return immediately
+ -- after the header and before the first block. When doing a raw inflate,
+ -- inflate() will go ahead and process the first block, and will return
+ -- when it gets to the end of that block, or when it runs out of data.
+
+ Full_Flush : constant Flush_Mode;
+ -- All output is flushed as with SYNC_FLUSH, and the compression state
+ -- is reset so that decompression can restart from this point if previous
+ -- compressed data has been damaged or if random access is desired. Using
+ -- Full_Flush too often can seriously degrade the compression.
+
+ Finish : constant Flush_Mode;
+ -- Just for tell the compressor that input data is complete.
+
+ ------------------------------------
+ -- Compression strategy constants --
+ ------------------------------------
+
+ -- RLE stategy could be used only in version 1.2.0 and later.
+
+ Filtered : constant Strategy_Type;
+ Huffman_Only : constant Strategy_Type;
+ RLE : constant Strategy_Type;
+ Default_Strategy : constant Strategy_Type;
+
+ Default_Buffer_Size : constant := 4096;
+
+ type Filter_Type is tagged limited private;
+ -- The filter is for compression and for decompression.
+ -- The usage of the type is depend of its initialization.
+
+ function Version return String;
+ pragma Inline (Version);
+ -- Return string representation of the ZLib version.
+
+ procedure Deflate_Init
+ (Filter : in out Filter_Type;
+ Level : in Compression_Level := Default_Compression;
+ Strategy : in Strategy_Type := Default_Strategy;
+ Method : in Compression_Method := Deflated;
+ Window_Bits : in Window_Bits_Type := Default_Window_Bits;
+ Memory_Level : in Memory_Level_Type := Default_Memory_Level;
+ Header : in Header_Type := Default);
+ -- Compressor initialization.
+ -- When Header parameter is Auto or Default, then default zlib header
+ -- would be provided for compressed data.
+ -- When Header is GZip, then gzip header would be set instead of
+ -- default header.
+ -- When Header is None, no header would be set for compressed data.
+
+ procedure Inflate_Init
+ (Filter : in out Filter_Type;
+ Window_Bits : in Window_Bits_Type := Default_Window_Bits;
+ Header : in Header_Type := Default);
+ -- Decompressor initialization.
+ -- Default header type mean that ZLib default header is expecting in the
+ -- input compressed stream.
+ -- Header type None mean that no header is expecting in the input stream.
+ -- GZip header type mean that GZip header is expecting in the
+ -- input compressed stream.
+ -- Auto header type mean that header type (GZip or Native) would be
+ -- detected automatically in the input stream.
+ -- Note that header types parameter values None, GZip and Auto are
+ -- supported for inflate routine only in ZLib versions 1.2.0.2 and later.
+ -- Deflate_Init is supporting all header types.
+
+ function Is_Open (Filter : in Filter_Type) return Boolean;
+ pragma Inline (Is_Open);
+ -- Is the filter opened for compression or decompression.
+
+ procedure Close
+ (Filter : in out Filter_Type;
+ Ignore_Error : in Boolean := False);
+ -- Closing the compression or decompressor.
+ -- If stream is closing before the complete and Ignore_Error is False,
+ -- The exception would be raised.
+
+ generic
+ with procedure Data_In
+ (Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset);
+ with procedure Data_Out
+ (Item : in Ada.Streams.Stream_Element_Array);
+ procedure Generic_Translate
+ (Filter : in out Filter_Type;
+ In_Buffer_Size : in Integer := Default_Buffer_Size;
+ Out_Buffer_Size : in Integer := Default_Buffer_Size);
+ -- Compress/decompress data fetch from Data_In routine and pass the result
+ -- to the Data_Out routine. User should provide Data_In and Data_Out
+ -- for compression/decompression data flow.
+ -- Compression or decompression depend on Filter initialization.
+
+ function Total_In (Filter : in Filter_Type) return Count;
+ pragma Inline (Total_In);
+ -- Returns total number of input bytes read so far
+
+ function Total_Out (Filter : in Filter_Type) return Count;
+ pragma Inline (Total_Out);
+ -- Returns total number of bytes output so far
+
+ function CRC32
+ (CRC : in Unsigned_32;
+ Data : in Ada.Streams.Stream_Element_Array)
+ return Unsigned_32;
+ pragma Inline (CRC32);
+ -- Compute CRC32, it could be necessary for make gzip format
+
+ procedure CRC32
+ (CRC : in out Unsigned_32;
+ Data : in Ada.Streams.Stream_Element_Array);
+ pragma Inline (CRC32);
+ -- Compute CRC32, it could be necessary for make gzip format
+
+ -------------------------------------------------
+ -- Below is more complex low level routines. --
+ -------------------------------------------------
+
+ procedure Translate
+ (Filter : in out Filter_Type;
+ In_Data : in Ada.Streams.Stream_Element_Array;
+ In_Last : out Ada.Streams.Stream_Element_Offset;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode);
+ -- Compress/decompress the In_Data buffer and place the result into
+ -- Out_Data. In_Last is the index of last element from In_Data accepted by
+ -- the Filter. Out_Last is the last element of the received data from
+ -- Filter. To tell the filter that incoming data are complete put the
+ -- Flush parameter to Finish.
+
+ function Stream_End (Filter : in Filter_Type) return Boolean;
+ pragma Inline (Stream_End);
+ -- Return the true when the stream is complete.
+
+ procedure Flush
+ (Filter : in out Filter_Type;
+ Out_Data : out Ada.Streams.Stream_Element_Array;
+ Out_Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode);
+ pragma Inline (Flush);
+ -- Flushing the data from the compressor.
+
+ generic
+ with procedure Write
+ (Item : in Ada.Streams.Stream_Element_Array);
+ -- User should provide this routine for accept
+ -- compressed/decompressed data.
+
+ Buffer_Size : in Ada.Streams.Stream_Element_Offset
+ := Default_Buffer_Size;
+ -- Buffer size for Write user routine.
+
+ procedure Write
+ (Filter : in out Filter_Type;
+ Item : in Ada.Streams.Stream_Element_Array;
+ Flush : in Flush_Mode := No_Flush);
+ -- Compress/Decompress data from Item to the generic parameter procedure
+ -- Write. Output buffer size could be set in Buffer_Size generic parameter.
+
+ generic
+ with procedure Read
+ (Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset);
+ -- User should provide data for compression/decompression
+ -- thru this routine.
+
+ Buffer : in out Ada.Streams.Stream_Element_Array;
+ -- Buffer for keep remaining data from the previous
+ -- back read.
+
+ Rest_First, Rest_Last : in out Ada.Streams.Stream_Element_Offset;
+ -- Rest_First have to be initialized to Buffer'Last + 1
+ -- Rest_Last have to be initialized to Buffer'Last
+ -- before usage.
+
+ Allow_Read_Some : in Boolean := False;
+ -- Is it allowed to return Last < Item'Last before end of data.
+
+ procedure Read
+ (Filter : in out Filter_Type;
+ Item : out Ada.Streams.Stream_Element_Array;
+ Last : out Ada.Streams.Stream_Element_Offset;
+ Flush : in Flush_Mode := No_Flush);
+ -- Compress/Decompress data from generic parameter procedure Read to the
+ -- Item. User should provide Buffer and initialized Rest_First, Rest_Last
+ -- indicators. If Allow_Read_Some is True, Read routines could return
+ -- Last < Item'Last only at end of stream.
+
+private
+
+ use Ada.Streams;
+
+ pragma Assert (Ada.Streams.Stream_Element'Size = 8);
+ pragma Assert (Ada.Streams.Stream_Element'Modulus = 2**8);
+
+ type Flush_Mode is new Integer range 0 .. 5;
+
+ type Compression_Method is new Integer range 8 .. 8;
+
+ type Strategy_Type is new Integer range 0 .. 3;
+
+ No_Flush : constant Flush_Mode := 0;
+ Partial_Flush : constant Flush_Mode := 1;
+ Sync_Flush : constant Flush_Mode := 2;
+ Full_Flush : constant Flush_Mode := 3;
+ Finish : constant Flush_Mode := 4;
+ Block_Flush : constant Flush_Mode := 5;
+
+ Filtered : constant Strategy_Type := 1;
+ Huffman_Only : constant Strategy_Type := 2;
+ RLE : constant Strategy_Type := 3;
+ Default_Strategy : constant Strategy_Type := 0;
+
+ Deflated : constant Compression_Method := 8;
+
+ type Z_Stream;
+
+ type Z_Stream_Access is access all Z_Stream;
+
+ type Filter_Type is tagged limited record
+ Strm : Z_Stream_Access;
+ Compression : Boolean;
+ Stream_End : Boolean;
+ Header : Header_Type;
+ CRC : Unsigned_32;
+ Offset : Stream_Element_Offset;
+ -- Offset for gzip header/footer output.
+ end record;
+
+end ZLib;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.gpr b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.gpr
new file mode 100644
index 000000000..296b22aa9
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/ada/zlib.gpr
@@ -0,0 +1,20 @@
+project Zlib is
+
+ for Languages use ("Ada");
+ for Source_Dirs use (".");
+ for Object_Dir use ".";
+ for Main use ("test.adb", "mtest.adb", "read.adb", "buffer_demo");
+
+ package Compiler is
+ for Default_Switches ("ada") use ("-gnatwcfilopru", "-gnatVcdfimorst", "-gnatyabcefhiklmnoprst");
+ end Compiler;
+
+ package Linker is
+ for Default_Switches ("ada") use ("-lz");
+ end Linker;
+
+ package Builder is
+ for Default_Switches ("ada") use ("-s", "-gnatQ");
+ end Builder;
+
+end Zlib;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/amd64/amd64-match.S b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/amd64/amd64-match.S
new file mode 100644
index 000000000..81d4a1c94
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/amd64/amd64-match.S
@@ -0,0 +1,452 @@
+/*
+ * match.S -- optimized version of longest_match()
+ * based on the similar work by Gilles Vollant, and Brian Raiter, written 1998
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the BSD License. Use by owners of Che Guevarra
+ * parafernalia is prohibited, where possible, and highly discouraged
+ * elsewhere.
+ */
+
+#ifndef NO_UNDERLINE
+# define match_init _match_init
+# define longest_match _longest_match
+#endif
+
+#define scanend ebx
+#define scanendw bx
+#define chainlenwmask edx /* high word: current chain len low word: s->wmask */
+#define curmatch rsi
+#define curmatchd esi
+#define windowbestlen r8
+#define scanalign r9
+#define scanalignd r9d
+#define window r10
+#define bestlen r11
+#define bestlend r11d
+#define scanstart r12d
+#define scanstartw r12w
+#define scan r13
+#define nicematch r14d
+#define limit r15
+#define limitd r15d
+#define prev rcx
+
+/*
+ * The 258 is a "magic number, not a parameter -- changing it
+ * breaks the hell loose
+ */
+#define MAX_MATCH (258)
+#define MIN_MATCH (3)
+#define MIN_LOOKAHEAD (MAX_MATCH + MIN_MATCH + 1)
+#define MAX_MATCH_8 ((MAX_MATCH + 7) & ~7)
+
+/* stack frame offsets */
+#define LocalVarsSize (112)
+#define _chainlenwmask ( 8-LocalVarsSize)(%rsp)
+#define _windowbestlen (16-LocalVarsSize)(%rsp)
+#define save_r14 (24-LocalVarsSize)(%rsp)
+#define save_rsi (32-LocalVarsSize)(%rsp)
+#define save_rbx (40-LocalVarsSize)(%rsp)
+#define save_r12 (56-LocalVarsSize)(%rsp)
+#define save_r13 (64-LocalVarsSize)(%rsp)
+#define save_r15 (80-LocalVarsSize)(%rsp)
+
+
+.globl match_init, longest_match
+
+/*
+ * On AMD64 the first argument of a function (in our case -- the pointer to
+ * deflate_state structure) is passed in %rdi, hence our offsets below are
+ * all off of that.
+ */
+
+/* you can check the structure offset by running
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "deflate.h"
+
+void print_depl()
+{
+deflate_state ds;
+deflate_state *s=&ds;
+printf("size pointer=%u\n",(int)sizeof(void*));
+
+printf("#define dsWSize (%3u)(%%rdi)\n",(int)(((char*)&(s->w_size))-((char*)s)));
+printf("#define dsWMask (%3u)(%%rdi)\n",(int)(((char*)&(s->w_mask))-((char*)s)));
+printf("#define dsWindow (%3u)(%%rdi)\n",(int)(((char*)&(s->window))-((char*)s)));
+printf("#define dsPrev (%3u)(%%rdi)\n",(int)(((char*)&(s->prev))-((char*)s)));
+printf("#define dsMatchLen (%3u)(%%rdi)\n",(int)(((char*)&(s->match_length))-((char*)s)));
+printf("#define dsPrevMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_match))-((char*)s)));
+printf("#define dsStrStart (%3u)(%%rdi)\n",(int)(((char*)&(s->strstart))-((char*)s)));
+printf("#define dsMatchStart (%3u)(%%rdi)\n",(int)(((char*)&(s->match_start))-((char*)s)));
+printf("#define dsLookahead (%3u)(%%rdi)\n",(int)(((char*)&(s->lookahead))-((char*)s)));
+printf("#define dsPrevLen (%3u)(%%rdi)\n",(int)(((char*)&(s->prev_length))-((char*)s)));
+printf("#define dsMaxChainLen (%3u)(%%rdi)\n",(int)(((char*)&(s->max_chain_length))-((char*)s)));
+printf("#define dsGoodMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->good_match))-((char*)s)));
+printf("#define dsNiceMatch (%3u)(%%rdi)\n",(int)(((char*)&(s->nice_match))-((char*)s)));
+}
+
+*/
+
+
+/*
+ to compile for XCode 3.2 on MacOSX x86_64
+ - run "gcc -g -c -DXCODE_MAC_X64_STRUCTURE amd64-match.S"
+ */
+
+
+#ifndef CURRENT_LINX_XCODE_MAC_X64_STRUCTURE
+#define dsWSize ( 68)(%rdi)
+#define dsWMask ( 76)(%rdi)
+#define dsWindow ( 80)(%rdi)
+#define dsPrev ( 96)(%rdi)
+#define dsMatchLen (144)(%rdi)
+#define dsPrevMatch (148)(%rdi)
+#define dsStrStart (156)(%rdi)
+#define dsMatchStart (160)(%rdi)
+#define dsLookahead (164)(%rdi)
+#define dsPrevLen (168)(%rdi)
+#define dsMaxChainLen (172)(%rdi)
+#define dsGoodMatch (188)(%rdi)
+#define dsNiceMatch (192)(%rdi)
+
+#else
+
+#ifndef STRUCT_OFFSET
+# define STRUCT_OFFSET (0)
+#endif
+
+
+#define dsWSize ( 56 + STRUCT_OFFSET)(%rdi)
+#define dsWMask ( 64 + STRUCT_OFFSET)(%rdi)
+#define dsWindow ( 72 + STRUCT_OFFSET)(%rdi)
+#define dsPrev ( 88 + STRUCT_OFFSET)(%rdi)
+#define dsMatchLen (136 + STRUCT_OFFSET)(%rdi)
+#define dsPrevMatch (140 + STRUCT_OFFSET)(%rdi)
+#define dsStrStart (148 + STRUCT_OFFSET)(%rdi)
+#define dsMatchStart (152 + STRUCT_OFFSET)(%rdi)
+#define dsLookahead (156 + STRUCT_OFFSET)(%rdi)
+#define dsPrevLen (160 + STRUCT_OFFSET)(%rdi)
+#define dsMaxChainLen (164 + STRUCT_OFFSET)(%rdi)
+#define dsGoodMatch (180 + STRUCT_OFFSET)(%rdi)
+#define dsNiceMatch (184 + STRUCT_OFFSET)(%rdi)
+
+#endif
+
+
+
+
+.text
+
+/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
+
+longest_match:
+/*
+ * Retrieve the function arguments. %curmatch will hold cur_match
+ * throughout the entire function (passed via rsi on amd64).
+ * rdi will hold the pointer to the deflate_state (first arg on amd64)
+ */
+ mov %rsi, save_rsi
+ mov %rbx, save_rbx
+ mov %r12, save_r12
+ mov %r13, save_r13
+ mov %r14, save_r14
+ mov %r15, save_r15
+
+/* uInt wmask = s->w_mask; */
+/* unsigned chain_length = s->max_chain_length; */
+/* if (s->prev_length >= s->good_match) { */
+/* chain_length >>= 2; */
+/* } */
+
+ movl dsPrevLen, %eax
+ movl dsGoodMatch, %ebx
+ cmpl %ebx, %eax
+ movl dsWMask, %eax
+ movl dsMaxChainLen, %chainlenwmask
+ jl LastMatchGood
+ shrl $2, %chainlenwmask
+LastMatchGood:
+
+/* chainlen is decremented once beforehand so that the function can */
+/* use the sign flag instead of the zero flag for the exit test. */
+/* It is then shifted into the high word, to make room for the wmask */
+/* value, which it will always accompany. */
+
+ decl %chainlenwmask
+ shll $16, %chainlenwmask
+ orl %eax, %chainlenwmask
+
+/* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; */
+
+ movl dsNiceMatch, %eax
+ movl dsLookahead, %ebx
+ cmpl %eax, %ebx
+ jl LookaheadLess
+ movl %eax, %ebx
+LookaheadLess: movl %ebx, %nicematch
+
+/* register Bytef *scan = s->window + s->strstart; */
+
+ mov dsWindow, %window
+ movl dsStrStart, %limitd
+ lea (%limit, %window), %scan
+
+/* Determine how many bytes the scan ptr is off from being */
+/* dword-aligned. */
+
+ mov %scan, %scanalign
+ negl %scanalignd
+ andl $3, %scanalignd
+
+/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */
+/* s->strstart - (IPos)MAX_DIST(s) : NIL; */
+
+ movl dsWSize, %eax
+ subl $MIN_LOOKAHEAD, %eax
+ xorl %ecx, %ecx
+ subl %eax, %limitd
+ cmovng %ecx, %limitd
+
+/* int best_len = s->prev_length; */
+
+ movl dsPrevLen, %bestlend
+
+/* Store the sum of s->window + best_len in %windowbestlen locally, and in memory. */
+
+ lea (%window, %bestlen), %windowbestlen
+ mov %windowbestlen, _windowbestlen
+
+/* register ush scan_start = *(ushf*)scan; */
+/* register ush scan_end = *(ushf*)(scan+best_len-1); */
+/* Posf *prev = s->prev; */
+
+ movzwl (%scan), %scanstart
+ movzwl -1(%scan, %bestlen), %scanend
+ mov dsPrev, %prev
+
+/* Jump into the main loop. */
+
+ movl %chainlenwmask, _chainlenwmask
+ jmp LoopEntry
+
+.balign 16
+
+/* do {
+ * match = s->window + cur_match;
+ * if (*(ushf*)(match+best_len-1) != scan_end ||
+ * *(ushf*)match != scan_start) continue;
+ * [...]
+ * } while ((cur_match = prev[cur_match & wmask]) > limit
+ * && --chain_length != 0);
+ *
+ * Here is the inner loop of the function. The function will spend the
+ * majority of its time in this loop, and majority of that time will
+ * be spent in the first ten instructions.
+ */
+LookupLoop:
+ andl %chainlenwmask, %curmatchd
+ movzwl (%prev, %curmatch, 2), %curmatchd
+ cmpl %limitd, %curmatchd
+ jbe LeaveNow
+ subl $0x00010000, %chainlenwmask
+ js LeaveNow
+LoopEntry: cmpw -1(%windowbestlen, %curmatch), %scanendw
+ jne LookupLoop
+ cmpw %scanstartw, (%window, %curmatch)
+ jne LookupLoop
+
+/* Store the current value of chainlen. */
+ movl %chainlenwmask, _chainlenwmask
+
+/* %scan is the string under scrutiny, and %prev to the string we */
+/* are hoping to match it up with. In actuality, %esi and %edi are */
+/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */
+/* initialized to -(MAX_MATCH_8 - scanalign). */
+
+ mov $(-MAX_MATCH_8), %rdx
+ lea (%curmatch, %window), %windowbestlen
+ lea MAX_MATCH_8(%windowbestlen, %scanalign), %windowbestlen
+ lea MAX_MATCH_8(%scan, %scanalign), %prev
+
+/* the prefetching below makes very little difference... */
+ prefetcht1 (%windowbestlen, %rdx)
+ prefetcht1 (%prev, %rdx)
+
+/*
+ * Test the strings for equality, 8 bytes at a time. At the end,
+ * adjust %rdx so that it is offset to the exact byte that mismatched.
+ *
+ * It should be confessed that this loop usually does not represent
+ * much of the total running time. Replacing it with a more
+ * straightforward "rep cmpsb" would not drastically degrade
+ * performance -- unrolling it, for example, makes no difference.
+ */
+
+#undef USE_SSE /* works, but is 6-7% slower, than non-SSE... */
+
+LoopCmps:
+#ifdef USE_SSE
+ /* Preload the SSE registers */
+ movdqu (%windowbestlen, %rdx), %xmm1
+ movdqu (%prev, %rdx), %xmm2
+ pcmpeqb %xmm2, %xmm1
+ movdqu 16(%windowbestlen, %rdx), %xmm3
+ movdqu 16(%prev, %rdx), %xmm4
+ pcmpeqb %xmm4, %xmm3
+ movdqu 32(%windowbestlen, %rdx), %xmm5
+ movdqu 32(%prev, %rdx), %xmm6
+ pcmpeqb %xmm6, %xmm5
+ movdqu 48(%windowbestlen, %rdx), %xmm7
+ movdqu 48(%prev, %rdx), %xmm8
+ pcmpeqb %xmm8, %xmm7
+
+ /* Check the comparisions' results */
+ pmovmskb %xmm1, %rax
+ notw %ax
+ bsfw %ax, %ax
+ jnz LeaveLoopCmps
+
+ /* this is the only iteration of the loop with a possibility of having
+ incremented rdx by 0x108 (each loop iteration add 16*4 = 0x40
+ and (0x40*4)+8=0x108 */
+ add $8, %rdx
+ jz LenMaximum
+ add $8, %rdx
+
+
+ pmovmskb %xmm3, %rax
+ notw %ax
+ bsfw %ax, %ax
+ jnz LeaveLoopCmps
+
+
+ add $16, %rdx
+
+
+ pmovmskb %xmm5, %rax
+ notw %ax
+ bsfw %ax, %ax
+ jnz LeaveLoopCmps
+
+ add $16, %rdx
+
+
+ pmovmskb %xmm7, %rax
+ notw %ax
+ bsfw %ax, %ax
+ jnz LeaveLoopCmps
+
+ add $16, %rdx
+
+ jmp LoopCmps
+LeaveLoopCmps: add %rax, %rdx
+#else
+ mov (%windowbestlen, %rdx), %rax
+ xor (%prev, %rdx), %rax
+ jnz LeaveLoopCmps
+
+ mov 8(%windowbestlen, %rdx), %rax
+ xor 8(%prev, %rdx), %rax
+ jnz LeaveLoopCmps8
+
+ mov 16(%windowbestlen, %rdx), %rax
+ xor 16(%prev, %rdx), %rax
+ jnz LeaveLoopCmps16
+
+ add $24, %rdx
+ jnz LoopCmps
+ jmp LenMaximum
+# if 0
+/*
+ * This three-liner is tantalizingly simple, but bsf is a slow instruction,
+ * and the complicated alternative down below is quite a bit faster. Sad...
+ */
+
+LeaveLoopCmps: bsf %rax, %rax /* find the first non-zero bit */
+ shrl $3, %eax /* divide by 8 to get the byte */
+ add %rax, %rdx
+# else
+LeaveLoopCmps16:
+ add $8, %rdx
+LeaveLoopCmps8:
+ add $8, %rdx
+LeaveLoopCmps: testl $0xFFFFFFFF, %eax /* Check the first 4 bytes */
+ jnz Check16
+ add $4, %rdx
+ shr $32, %rax
+Check16: testw $0xFFFF, %ax
+ jnz LenLower
+ add $2, %rdx
+ shrl $16, %eax
+LenLower: subb $1, %al
+ adc $0, %rdx
+# endif
+#endif
+
+/* Calculate the length of the match. If it is longer than MAX_MATCH, */
+/* then automatically accept it as the best possible match and leave. */
+
+ lea (%prev, %rdx), %rax
+ sub %scan, %rax
+ cmpl $MAX_MATCH, %eax
+ jge LenMaximum
+
+/* If the length of the match is not longer than the best match we */
+/* have so far, then forget it and return to the lookup loop. */
+
+ cmpl %bestlend, %eax
+ jg LongerMatch
+ mov _windowbestlen, %windowbestlen
+ mov dsPrev, %prev
+ movl _chainlenwmask, %edx
+ jmp LookupLoop
+
+/* s->match_start = cur_match; */
+/* best_len = len; */
+/* if (len >= nice_match) break; */
+/* scan_end = *(ushf*)(scan+best_len-1); */
+
+LongerMatch:
+ movl %eax, %bestlend
+ movl %curmatchd, dsMatchStart
+ cmpl %nicematch, %eax
+ jge LeaveNow
+
+ lea (%window, %bestlen), %windowbestlen
+ mov %windowbestlen, _windowbestlen
+
+ movzwl -1(%scan, %rax), %scanend
+ mov dsPrev, %prev
+ movl _chainlenwmask, %chainlenwmask
+ jmp LookupLoop
+
+/* Accept the current string, with the maximum possible length. */
+
+LenMaximum:
+ movl $MAX_MATCH, %bestlend
+ movl %curmatchd, dsMatchStart
+
+/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */
+/* return s->lookahead; */
+
+LeaveNow:
+ movl dsLookahead, %eax
+ cmpl %eax, %bestlend
+ cmovngl %bestlend, %eax
+LookaheadRet:
+
+/* Restore the registers and return from whence we came. */
+
+ mov save_rsi, %rsi
+ mov save_rbx, %rbx
+ mov save_r12, %r12
+ mov save_r13, %r13
+ mov save_r14, %r14
+ mov save_r15, %r15
+
+ ret
+
+match_init: ret
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/README.686 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/README.686
new file mode 100644
index 000000000..a0bf3bea4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/README.686
@@ -0,0 +1,51 @@
+This is a patched version of zlib, modified to use
+Pentium-Pro-optimized assembly code in the deflation algorithm. The
+files changed/added by this patch are:
+
+README.686
+match.S
+
+The speedup that this patch provides varies, depending on whether the
+compiler used to build the original version of zlib falls afoul of the
+PPro's speed traps. My own tests show a speedup of around 10-20% at
+the default compression level, and 20-30% using -9, against a version
+compiled using gcc 2.7.2.3. Your mileage may vary.
+
+Note that this code has been tailored for the PPro/PII in particular,
+and will not perform particuarly well on a Pentium.
+
+If you are using an assembler other than GNU as, you will have to
+translate match.S to use your assembler's syntax. (Have fun.)
+
+Brian Raiter
+breadbox@muppetlabs.com
+April, 1998
+
+
+Added for zlib 1.1.3:
+
+The patches come from
+http://www.muppetlabs.com/~breadbox/software/assembly.html
+
+To compile zlib with this asm file, copy match.S to the zlib directory
+then do:
+
+CFLAGS="-O3 -DASMV" ./configure
+make OBJA=match.o
+
+
+Update:
+
+I've been ignoring these assembly routines for years, believing that
+gcc's generated code had caught up with it sometime around gcc 2.95
+and the major rearchitecting of the Pentium 4. However, I recently
+learned that, despite what I believed, this code still has some life
+in it. On the Pentium 4 and AMD64 chips, it continues to run about 8%
+faster than the code produced by gcc 4.1.
+
+In acknowledgement of its continuing usefulness, I've altered the
+license to match that of the rest of zlib. Share and Enjoy!
+
+Brian Raiter
+breadbox@muppetlabs.com
+April, 2007
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/match.S b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/match.S
new file mode 100644
index 000000000..fa4210927
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/asm686/match.S
@@ -0,0 +1,357 @@
+/* match.S -- x86 assembly version of the zlib longest_match() function.
+ * Optimized for the Intel 686 chips (PPro and later).
+ *
+ * Copyright (C) 1998, 2007 Brian Raiter <breadbox@muppetlabs.com>
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the author be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ */
+
+#ifndef NO_UNDERLINE
+#define match_init _match_init
+#define longest_match _longest_match
+#endif
+
+#define MAX_MATCH (258)
+#define MIN_MATCH (3)
+#define MIN_LOOKAHEAD (MAX_MATCH + MIN_MATCH + 1)
+#define MAX_MATCH_8 ((MAX_MATCH + 7) & ~7)
+
+/* stack frame offsets */
+
+#define chainlenwmask 0 /* high word: current chain len */
+ /* low word: s->wmask */
+#define window 4 /* local copy of s->window */
+#define windowbestlen 8 /* s->window + bestlen */
+#define scanstart 16 /* first two bytes of string */
+#define scanend 12 /* last two bytes of string */
+#define scanalign 20 /* dword-misalignment of string */
+#define nicematch 24 /* a good enough match size */
+#define bestlen 28 /* size of best match so far */
+#define scan 32 /* ptr to string wanting match */
+
+#define LocalVarsSize (36)
+/* saved ebx 36 */
+/* saved edi 40 */
+/* saved esi 44 */
+/* saved ebp 48 */
+/* return address 52 */
+#define deflatestate 56 /* the function arguments */
+#define curmatch 60
+
+/* All the +zlib1222add offsets are due to the addition of fields
+ * in zlib in the deflate_state structure since the asm code was first written
+ * (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
+ * (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
+ * if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
+ */
+
+#define zlib1222add (8)
+
+#define dsWSize (36+zlib1222add)
+#define dsWMask (44+zlib1222add)
+#define dsWindow (48+zlib1222add)
+#define dsPrev (56+zlib1222add)
+#define dsMatchLen (88+zlib1222add)
+#define dsPrevMatch (92+zlib1222add)
+#define dsStrStart (100+zlib1222add)
+#define dsMatchStart (104+zlib1222add)
+#define dsLookahead (108+zlib1222add)
+#define dsPrevLen (112+zlib1222add)
+#define dsMaxChainLen (116+zlib1222add)
+#define dsGoodMatch (132+zlib1222add)
+#define dsNiceMatch (136+zlib1222add)
+
+
+.file "match.S"
+
+.globl match_init, longest_match
+
+.text
+
+/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
+.cfi_sections .debug_frame
+
+longest_match:
+
+.cfi_startproc
+/* Save registers that the compiler may be using, and adjust %esp to */
+/* make room for our stack frame. */
+
+ pushl %ebp
+ .cfi_def_cfa_offset 8
+ .cfi_offset ebp, -8
+ pushl %edi
+ .cfi_def_cfa_offset 12
+ pushl %esi
+ .cfi_def_cfa_offset 16
+ pushl %ebx
+ .cfi_def_cfa_offset 20
+ subl $LocalVarsSize, %esp
+ .cfi_def_cfa_offset LocalVarsSize+20
+
+/* Retrieve the function arguments. %ecx will hold cur_match */
+/* throughout the entire function. %edx will hold the pointer to the */
+/* deflate_state structure during the function's setup (before */
+/* entering the main loop). */
+
+ movl deflatestate(%esp), %edx
+ movl curmatch(%esp), %ecx
+
+/* uInt wmask = s->w_mask; */
+/* unsigned chain_length = s->max_chain_length; */
+/* if (s->prev_length >= s->good_match) { */
+/* chain_length >>= 2; */
+/* } */
+
+ movl dsPrevLen(%edx), %eax
+ movl dsGoodMatch(%edx), %ebx
+ cmpl %ebx, %eax
+ movl dsWMask(%edx), %eax
+ movl dsMaxChainLen(%edx), %ebx
+ jl LastMatchGood
+ shrl $2, %ebx
+LastMatchGood:
+
+/* chainlen is decremented once beforehand so that the function can */
+/* use the sign flag instead of the zero flag for the exit test. */
+/* It is then shifted into the high word, to make room for the wmask */
+/* value, which it will always accompany. */
+
+ decl %ebx
+ shll $16, %ebx
+ orl %eax, %ebx
+ movl %ebx, chainlenwmask(%esp)
+
+/* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; */
+
+ movl dsNiceMatch(%edx), %eax
+ movl dsLookahead(%edx), %ebx
+ cmpl %eax, %ebx
+ jl LookaheadLess
+ movl %eax, %ebx
+LookaheadLess: movl %ebx, nicematch(%esp)
+
+/* register Bytef *scan = s->window + s->strstart; */
+
+ movl dsWindow(%edx), %esi
+ movl %esi, window(%esp)
+ movl dsStrStart(%edx), %ebp
+ lea (%esi,%ebp), %edi
+ movl %edi, scan(%esp)
+
+/* Determine how many bytes the scan ptr is off from being */
+/* dword-aligned. */
+
+ movl %edi, %eax
+ negl %eax
+ andl $3, %eax
+ movl %eax, scanalign(%esp)
+
+/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */
+/* s->strstart - (IPos)MAX_DIST(s) : NIL; */
+
+ movl dsWSize(%edx), %eax
+ subl $MIN_LOOKAHEAD, %eax
+ subl %eax, %ebp
+ jg LimitPositive
+ xorl %ebp, %ebp
+LimitPositive:
+
+/* int best_len = s->prev_length; */
+
+ movl dsPrevLen(%edx), %eax
+ movl %eax, bestlen(%esp)
+
+/* Store the sum of s->window + best_len in %esi locally, and in %esi. */
+
+ addl %eax, %esi
+ movl %esi, windowbestlen(%esp)
+
+/* register ush scan_start = *(ushf*)scan; */
+/* register ush scan_end = *(ushf*)(scan+best_len-1); */
+/* Posf *prev = s->prev; */
+
+ movzwl (%edi), %ebx
+ movl %ebx, scanstart(%esp)
+ movzwl -1(%edi,%eax), %ebx
+ movl %ebx, scanend(%esp)
+ movl dsPrev(%edx), %edi
+
+/* Jump into the main loop. */
+
+ movl chainlenwmask(%esp), %edx
+ jmp LoopEntry
+
+.balign 16
+
+/* do {
+ * match = s->window + cur_match;
+ * if (*(ushf*)(match+best_len-1) != scan_end ||
+ * *(ushf*)match != scan_start) continue;
+ * [...]
+ * } while ((cur_match = prev[cur_match & wmask]) > limit
+ * && --chain_length != 0);
+ *
+ * Here is the inner loop of the function. The function will spend the
+ * majority of its time in this loop, and majority of that time will
+ * be spent in the first ten instructions.
+ *
+ * Within this loop:
+ * %ebx = scanend
+ * %ecx = curmatch
+ * %edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
+ * %esi = windowbestlen - i.e., (window + bestlen)
+ * %edi = prev
+ * %ebp = limit
+ */
+LookupLoop:
+ andl %edx, %ecx
+ movzwl (%edi,%ecx,2), %ecx
+ cmpl %ebp, %ecx
+ jbe LeaveNow
+ subl $0x00010000, %edx
+ js LeaveNow
+LoopEntry: movzwl -1(%esi,%ecx), %eax
+ cmpl %ebx, %eax
+ jnz LookupLoop
+ movl window(%esp), %eax
+ movzwl (%eax,%ecx), %eax
+ cmpl scanstart(%esp), %eax
+ jnz LookupLoop
+
+/* Store the current value of chainlen. */
+
+ movl %edx, chainlenwmask(%esp)
+
+/* Point %edi to the string under scrutiny, and %esi to the string we */
+/* are hoping to match it up with. In actuality, %esi and %edi are */
+/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */
+/* initialized to -(MAX_MATCH_8 - scanalign). */
+
+ movl window(%esp), %esi
+ movl scan(%esp), %edi
+ addl %ecx, %esi
+ movl scanalign(%esp), %eax
+ movl $(-MAX_MATCH_8), %edx
+ lea MAX_MATCH_8(%edi,%eax), %edi
+ lea MAX_MATCH_8(%esi,%eax), %esi
+
+/* Test the strings for equality, 8 bytes at a time. At the end,
+ * adjust %edx so that it is offset to the exact byte that mismatched.
+ *
+ * We already know at this point that the first three bytes of the
+ * strings match each other, and they can be safely passed over before
+ * starting the compare loop. So what this code does is skip over 0-3
+ * bytes, as much as necessary in order to dword-align the %edi
+ * pointer. (%esi will still be misaligned three times out of four.)
+ *
+ * It should be confessed that this loop usually does not represent
+ * much of the total running time. Replacing it with a more
+ * straightforward "rep cmpsb" would not drastically degrade
+ * performance.
+ */
+LoopCmps:
+ movl (%esi,%edx), %eax
+ xorl (%edi,%edx), %eax
+ jnz LeaveLoopCmps
+ movl 4(%esi,%edx), %eax
+ xorl 4(%edi,%edx), %eax
+ jnz LeaveLoopCmps4
+ addl $8, %edx
+ jnz LoopCmps
+ jmp LenMaximum
+LeaveLoopCmps4: addl $4, %edx
+LeaveLoopCmps: testl $0x0000FFFF, %eax
+ jnz LenLower
+ addl $2, %edx
+ shrl $16, %eax
+LenLower: subb $1, %al
+ adcl $0, %edx
+
+/* Calculate the length of the match. If it is longer than MAX_MATCH, */
+/* then automatically accept it as the best possible match and leave. */
+
+ lea (%edi,%edx), %eax
+ movl scan(%esp), %edi
+ subl %edi, %eax
+ cmpl $MAX_MATCH, %eax
+ jge LenMaximum
+
+/* If the length of the match is not longer than the best match we */
+/* have so far, then forget it and return to the lookup loop. */
+
+ movl deflatestate(%esp), %edx
+ movl bestlen(%esp), %ebx
+ cmpl %ebx, %eax
+ jg LongerMatch
+ movl windowbestlen(%esp), %esi
+ movl dsPrev(%edx), %edi
+ movl scanend(%esp), %ebx
+ movl chainlenwmask(%esp), %edx
+ jmp LookupLoop
+
+/* s->match_start = cur_match; */
+/* best_len = len; */
+/* if (len >= nice_match) break; */
+/* scan_end = *(ushf*)(scan+best_len-1); */
+
+LongerMatch: movl nicematch(%esp), %ebx
+ movl %eax, bestlen(%esp)
+ movl %ecx, dsMatchStart(%edx)
+ cmpl %ebx, %eax
+ jge LeaveNow
+ movl window(%esp), %esi
+ addl %eax, %esi
+ movl %esi, windowbestlen(%esp)
+ movzwl -1(%edi,%eax), %ebx
+ movl dsPrev(%edx), %edi
+ movl %ebx, scanend(%esp)
+ movl chainlenwmask(%esp), %edx
+ jmp LookupLoop
+
+/* Accept the current string, with the maximum possible length. */
+
+LenMaximum: movl deflatestate(%esp), %edx
+ movl $MAX_MATCH, bestlen(%esp)
+ movl %ecx, dsMatchStart(%edx)
+
+/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */
+/* return s->lookahead; */
+
+LeaveNow:
+ movl deflatestate(%esp), %edx
+ movl bestlen(%esp), %ebx
+ movl dsLookahead(%edx), %eax
+ cmpl %eax, %ebx
+ jg LookaheadRet
+ movl %ebx, %eax
+LookaheadRet:
+
+/* Restore the stack and return from whence we came. */
+
+ addl $LocalVarsSize, %esp
+ .cfi_def_cfa_offset 20
+ popl %ebx
+ .cfi_def_cfa_offset 16
+ popl %esi
+ .cfi_def_cfa_offset 12
+ popl %edi
+ .cfi_def_cfa_offset 8
+ popl %ebp
+ .cfi_def_cfa_offset 4
+.cfi_endproc
+match_init: ret
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/Makefile
new file mode 100644
index 000000000..9be80bafe
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/Makefile
@@ -0,0 +1,8 @@
+blast: blast.c blast.h
+ cc -DTEST -o blast blast.c
+
+test: blast
+ blast < test.pk | cmp - test.txt
+
+clean:
+ rm -f blast blast.o
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/README
new file mode 100644
index 000000000..e3a60b3f5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/README
@@ -0,0 +1,4 @@
+Read blast.h for purpose and usage.
+
+Mark Adler
+madler@alumni.caltech.edu
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.c
new file mode 100644
index 000000000..e6e659073
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.c
@@ -0,0 +1,466 @@
+/* blast.c
+ * Copyright (C) 2003, 2012, 2013 Mark Adler
+ * For conditions of distribution and use, see copyright notice in blast.h
+ * version 1.3, 24 Aug 2013
+ *
+ * blast.c decompresses data compressed by the PKWare Compression Library.
+ * This function provides functionality similar to the explode() function of
+ * the PKWare library, hence the name "blast".
+ *
+ * This decompressor is based on the excellent format description provided by
+ * Ben Rudiak-Gould in comp.compression on August 13, 2001. Interestingly, the
+ * example Ben provided in the post is incorrect. The distance 110001 should
+ * instead be 111000. When corrected, the example byte stream becomes:
+ *
+ * 00 04 82 24 25 8f 80 7f
+ *
+ * which decompresses to "AIAIAIAIAIAIA" (without the quotes).
+ */
+
+/*
+ * Change history:
+ *
+ * 1.0 12 Feb 2003 - First version
+ * 1.1 16 Feb 2003 - Fixed distance check for > 4 GB uncompressed data
+ * 1.2 24 Oct 2012 - Add note about using binary mode in stdio
+ * - Fix comparisons of differently signed integers
+ * 1.3 24 Aug 2013 - Return unused input from blast()
+ * - Fix test code to correctly report unused input
+ * - Enable the provision of initial input to blast()
+ */
+
+#include <stddef.h> /* for NULL */
+#include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */
+#include "blast.h" /* prototype for blast() */
+
+#define local static /* for local function definitions */
+#define MAXBITS 13 /* maximum code length */
+#define MAXWIN 4096 /* maximum window size */
+
+/* input and output state */
+struct state {
+ /* input state */
+ blast_in infun; /* input function provided by user */
+ void *inhow; /* opaque information passed to infun() */
+ unsigned char *in; /* next input location */
+ unsigned left; /* available input at in */
+ int bitbuf; /* bit buffer */
+ int bitcnt; /* number of bits in bit buffer */
+
+ /* input limit error return state for bits() and decode() */
+ jmp_buf env;
+
+ /* output state */
+ blast_out outfun; /* output function provided by user */
+ void *outhow; /* opaque information passed to outfun() */
+ unsigned next; /* index of next write location in out[] */
+ int first; /* true to check distances (for first 4K) */
+ unsigned char out[MAXWIN]; /* output buffer and sliding window */
+};
+
+/*
+ * Return need bits from the input stream. This always leaves less than
+ * eight bits in the buffer. bits() works properly for need == 0.
+ *
+ * Format notes:
+ *
+ * - Bits are stored in bytes from the least significant bit to the most
+ * significant bit. Therefore bits are dropped from the bottom of the bit
+ * buffer, using shift right, and new bytes are appended to the top of the
+ * bit buffer, using shift left.
+ */
+local int bits(struct state *s, int need)
+{
+ int val; /* bit accumulator */
+
+ /* load at least need bits into val */
+ val = s->bitbuf;
+ while (s->bitcnt < need) {
+ if (s->left == 0) {
+ s->left = s->infun(s->inhow, &(s->in));
+ if (s->left == 0) longjmp(s->env, 1); /* out of input */
+ }
+ val |= (int)(*(s->in)++) << s->bitcnt; /* load eight bits */
+ s->left--;
+ s->bitcnt += 8;
+ }
+
+ /* drop need bits and update buffer, always zero to seven bits left */
+ s->bitbuf = val >> need;
+ s->bitcnt -= need;
+
+ /* return need bits, zeroing the bits above that */
+ return val & ((1 << need) - 1);
+}
+
+/*
+ * Huffman code decoding tables. count[1..MAXBITS] is the number of symbols of
+ * each length, which for a canonical code are stepped through in order.
+ * symbol[] are the symbol values in canonical order, where the number of
+ * entries is the sum of the counts in count[]. The decoding process can be
+ * seen in the function decode() below.
+ */
+struct huffman {
+ short *count; /* number of symbols of each length */
+ short *symbol; /* canonically ordered symbols */
+};
+
+/*
+ * Decode a code from the stream s using huffman table h. Return the symbol or
+ * a negative value if there is an error. If all of the lengths are zero, i.e.
+ * an empty code, or if the code is incomplete and an invalid code is received,
+ * then -9 is returned after reading MAXBITS bits.
+ *
+ * Format notes:
+ *
+ * - The codes as stored in the compressed data are bit-reversed relative to
+ * a simple integer ordering of codes of the same lengths. Hence below the
+ * bits are pulled from the compressed data one at a time and used to
+ * build the code value reversed from what is in the stream in order to
+ * permit simple integer comparisons for decoding.
+ *
+ * - The first code for the shortest length is all ones. Subsequent codes of
+ * the same length are simply integer decrements of the previous code. When
+ * moving up a length, a one bit is appended to the code. For a complete
+ * code, the last code of the longest length will be all zeros. To support
+ * this ordering, the bits pulled during decoding are inverted to apply the
+ * more "natural" ordering starting with all zeros and incrementing.
+ */
+local int decode(struct state *s, struct huffman *h)
+{
+ int len; /* current number of bits in code */
+ int code; /* len bits being decoded */
+ int first; /* first code of length len */
+ int count; /* number of codes of length len */
+ int index; /* index of first code of length len in symbol table */
+ int bitbuf; /* bits from stream */
+ int left; /* bits left in next or left to process */
+ short *next; /* next number of codes */
+
+ bitbuf = s->bitbuf;
+ left = s->bitcnt;
+ code = first = index = 0;
+ len = 1;
+ next = h->count + 1;
+ while (1) {
+ while (left--) {
+ code |= (bitbuf & 1) ^ 1; /* invert code */
+ bitbuf >>= 1;
+ count = *next++;
+ if (code < first + count) { /* if length len, return symbol */
+ s->bitbuf = bitbuf;
+ s->bitcnt = (s->bitcnt - len) & 7;
+ return h->symbol[index + (code - first)];
+ }
+ index += count; /* else update for next length */
+ first += count;
+ first <<= 1;
+ code <<= 1;
+ len++;
+ }
+ left = (MAXBITS+1) - len;
+ if (left == 0) break;
+ if (s->left == 0) {
+ s->left = s->infun(s->inhow, &(s->in));
+ if (s->left == 0) longjmp(s->env, 1); /* out of input */
+ }
+ bitbuf = *(s->in)++;
+ s->left--;
+ if (left > 8) left = 8;
+ }
+ return -9; /* ran out of codes */
+}
+
+/*
+ * Given a list of repeated code lengths rep[0..n-1], where each byte is a
+ * count (high four bits + 1) and a code length (low four bits), generate the
+ * list of code lengths. This compaction reduces the size of the object code.
+ * Then given the list of code lengths length[0..n-1] representing a canonical
+ * Huffman code for n symbols, construct the tables required to decode those
+ * codes. Those tables are the number of codes of each length, and the symbols
+ * sorted by length, retaining their original order within each length. The
+ * return value is zero for a complete code set, negative for an over-
+ * subscribed code set, and positive for an incomplete code set. The tables
+ * can be used if the return value is zero or positive, but they cannot be used
+ * if the return value is negative. If the return value is zero, it is not
+ * possible for decode() using that table to return an error--any stream of
+ * enough bits will resolve to a symbol. If the return value is positive, then
+ * it is possible for decode() using that table to return an error for received
+ * codes past the end of the incomplete lengths.
+ */
+local int construct(struct huffman *h, const unsigned char *rep, int n)
+{
+ int symbol; /* current symbol when stepping through length[] */
+ int len; /* current length when stepping through h->count[] */
+ int left; /* number of possible codes left of current length */
+ short offs[MAXBITS+1]; /* offsets in symbol table for each length */
+ short length[256]; /* code lengths */
+
+ /* convert compact repeat counts into symbol bit length list */
+ symbol = 0;
+ do {
+ len = *rep++;
+ left = (len >> 4) + 1;
+ len &= 15;
+ do {
+ length[symbol++] = len;
+ } while (--left);
+ } while (--n);
+ n = symbol;
+
+ /* count number of codes of each length */
+ for (len = 0; len <= MAXBITS; len++)
+ h->count[len] = 0;
+ for (symbol = 0; symbol < n; symbol++)
+ (h->count[length[symbol]])++; /* assumes lengths are within bounds */
+ if (h->count[0] == n) /* no codes! */
+ return 0; /* complete, but decode() will fail */
+
+ /* check for an over-subscribed or incomplete set of lengths */
+ left = 1; /* one possible code of zero length */
+ for (len = 1; len <= MAXBITS; len++) {
+ left <<= 1; /* one more bit, double codes left */
+ left -= h->count[len]; /* deduct count from possible codes */
+ if (left < 0) return left; /* over-subscribed--return negative */
+ } /* left > 0 means incomplete */
+
+ /* generate offsets into symbol table for each length for sorting */
+ offs[1] = 0;
+ for (len = 1; len < MAXBITS; len++)
+ offs[len + 1] = offs[len] + h->count[len];
+
+ /*
+ * put symbols in table sorted by length, by symbol order within each
+ * length
+ */
+ for (symbol = 0; symbol < n; symbol++)
+ if (length[symbol] != 0)
+ h->symbol[offs[length[symbol]]++] = symbol;
+
+ /* return zero for complete set, positive for incomplete set */
+ return left;
+}
+
+/*
+ * Decode PKWare Compression Library stream.
+ *
+ * Format notes:
+ *
+ * - First byte is 0 if literals are uncoded or 1 if they are coded. Second
+ * byte is 4, 5, or 6 for the number of extra bits in the distance code.
+ * This is the base-2 logarithm of the dictionary size minus six.
+ *
+ * - Compressed data is a combination of literals and length/distance pairs
+ * terminated by an end code. Literals are either Huffman coded or
+ * uncoded bytes. A length/distance pair is a coded length followed by a
+ * coded distance to represent a string that occurs earlier in the
+ * uncompressed data that occurs again at the current location.
+ *
+ * - A bit preceding a literal or length/distance pair indicates which comes
+ * next, 0 for literals, 1 for length/distance.
+ *
+ * - If literals are uncoded, then the next eight bits are the literal, in the
+ * normal bit order in the stream, i.e. no bit-reversal is needed. Similarly,
+ * no bit reversal is needed for either the length extra bits or the distance
+ * extra bits.
+ *
+ * - Literal bytes are simply written to the output. A length/distance pair is
+ * an instruction to copy previously uncompressed bytes to the output. The
+ * copy is from distance bytes back in the output stream, copying for length
+ * bytes.
+ *
+ * - Distances pointing before the beginning of the output data are not
+ * permitted.
+ *
+ * - Overlapped copies, where the length is greater than the distance, are
+ * allowed and common. For example, a distance of one and a length of 518
+ * simply copies the last byte 518 times. A distance of four and a length of
+ * twelve copies the last four bytes three times. A simple forward copy
+ * ignoring whether the length is greater than the distance or not implements
+ * this correctly.
+ */
+local int decomp(struct state *s)
+{
+ int lit; /* true if literals are coded */
+ int dict; /* log2(dictionary size) - 6 */
+ int symbol; /* decoded symbol, extra bits for distance */
+ int len; /* length for copy */
+ unsigned dist; /* distance for copy */
+ int copy; /* copy counter */
+ unsigned char *from, *to; /* copy pointers */
+ static int virgin = 1; /* build tables once */
+ static short litcnt[MAXBITS+1], litsym[256]; /* litcode memory */
+ static short lencnt[MAXBITS+1], lensym[16]; /* lencode memory */
+ static short distcnt[MAXBITS+1], distsym[64]; /* distcode memory */
+ static struct huffman litcode = {litcnt, litsym}; /* length code */
+ static struct huffman lencode = {lencnt, lensym}; /* length code */
+ static struct huffman distcode = {distcnt, distsym};/* distance code */
+ /* bit lengths of literal codes */
+ static const unsigned char litlen[] = {
+ 11, 124, 8, 7, 28, 7, 188, 13, 76, 4, 10, 8, 12, 10, 12, 10, 8, 23, 8,
+ 9, 7, 6, 7, 8, 7, 6, 55, 8, 23, 24, 12, 11, 7, 9, 11, 12, 6, 7, 22, 5,
+ 7, 24, 6, 11, 9, 6, 7, 22, 7, 11, 38, 7, 9, 8, 25, 11, 8, 11, 9, 12,
+ 8, 12, 5, 38, 5, 38, 5, 11, 7, 5, 6, 21, 6, 10, 53, 8, 7, 24, 10, 27,
+ 44, 253, 253, 253, 252, 252, 252, 13, 12, 45, 12, 45, 12, 61, 12, 45,
+ 44, 173};
+ /* bit lengths of length codes 0..15 */
+ static const unsigned char lenlen[] = {2, 35, 36, 53, 38, 23};
+ /* bit lengths of distance codes 0..63 */
+ static const unsigned char distlen[] = {2, 20, 53, 230, 247, 151, 248};
+ static const short base[16] = { /* base for length codes */
+ 3, 2, 4, 5, 6, 7, 8, 9, 10, 12, 16, 24, 40, 72, 136, 264};
+ static const char extra[16] = { /* extra bits for length codes */
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8};
+
+ /* set up decoding tables (once--might not be thread-safe) */
+ if (virgin) {
+ construct(&litcode, litlen, sizeof(litlen));
+ construct(&lencode, lenlen, sizeof(lenlen));
+ construct(&distcode, distlen, sizeof(distlen));
+ virgin = 0;
+ }
+
+ /* read header */
+ lit = bits(s, 8);
+ if (lit > 1) return -1;
+ dict = bits(s, 8);
+ if (dict < 4 || dict > 6) return -2;
+
+ /* decode literals and length/distance pairs */
+ do {
+ if (bits(s, 1)) {
+ /* get length */
+ symbol = decode(s, &lencode);
+ len = base[symbol] + bits(s, extra[symbol]);
+ if (len == 519) break; /* end code */
+
+ /* get distance */
+ symbol = len == 2 ? 2 : dict;
+ dist = decode(s, &distcode) << symbol;
+ dist += bits(s, symbol);
+ dist++;
+ if (s->first && dist > s->next)
+ return -3; /* distance too far back */
+
+ /* copy length bytes from distance bytes back */
+ do {
+ to = s->out + s->next;
+ from = to - dist;
+ copy = MAXWIN;
+ if (s->next < dist) {
+ from += copy;
+ copy = dist;
+ }
+ copy -= s->next;
+ if (copy > len) copy = len;
+ len -= copy;
+ s->next += copy;
+ do {
+ *to++ = *from++;
+ } while (--copy);
+ if (s->next == MAXWIN) {
+ if (s->outfun(s->outhow, s->out, s->next)) return 1;
+ s->next = 0;
+ s->first = 0;
+ }
+ } while (len != 0);
+ }
+ else {
+ /* get literal and write it */
+ symbol = lit ? decode(s, &litcode) : bits(s, 8);
+ s->out[s->next++] = symbol;
+ if (s->next == MAXWIN) {
+ if (s->outfun(s->outhow, s->out, s->next)) return 1;
+ s->next = 0;
+ s->first = 0;
+ }
+ }
+ } while (1);
+ return 0;
+}
+
+/* See comments in blast.h */
+int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow,
+ unsigned *left, unsigned char **in)
+{
+ struct state s; /* input/output state */
+ int err; /* return value */
+
+ /* initialize input state */
+ s.infun = infun;
+ s.inhow = inhow;
+ if (left != NULL && *left) {
+ s.left = *left;
+ s.in = *in;
+ }
+ else
+ s.left = 0;
+ s.bitbuf = 0;
+ s.bitcnt = 0;
+
+ /* initialize output state */
+ s.outfun = outfun;
+ s.outhow = outhow;
+ s.next = 0;
+ s.first = 1;
+
+ /* return if bits() or decode() tries to read past available input */
+ if (setjmp(s.env) != 0) /* if came back here via longjmp(), */
+ err = 2; /* then skip decomp(), return error */
+ else
+ err = decomp(&s); /* decompress */
+
+ /* return unused input */
+ if (left != NULL)
+ *left = s.left;
+ if (in != NULL)
+ *in = s.left ? s.in : NULL;
+
+ /* write any leftover output and update the error code if needed */
+ if (err != 1 && s.next && s.outfun(s.outhow, s.out, s.next) && err == 0)
+ err = 1;
+ return err;
+}
+
+#ifdef TEST
+/* Example of how to use blast() */
+#include <stdio.h>
+#include <stdlib.h>
+
+#define CHUNK 16384
+
+local unsigned inf(void *how, unsigned char **buf)
+{
+ static unsigned char hold[CHUNK];
+
+ *buf = hold;
+ return fread(hold, 1, CHUNK, (FILE *)how);
+}
+
+local int outf(void *how, unsigned char *buf, unsigned len)
+{
+ return fwrite(buf, 1, len, (FILE *)how) != len;
+}
+
+/* Decompress a PKWare Compression Library stream from stdin to stdout */
+int main(void)
+{
+ int ret;
+ unsigned left;
+
+ /* decompress to stdout */
+ left = 0;
+ ret = blast(inf, stdin, outf, stdout, &left, NULL);
+ if (ret != 0)
+ fprintf(stderr, "blast error: %d\n", ret);
+
+ /* count any leftover bytes */
+ while (getchar() != EOF)
+ left++;
+ if (left)
+ fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
+
+ /* return blast() error code */
+ return ret;
+}
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.h
new file mode 100644
index 000000000..6cf65eda1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/blast.h
@@ -0,0 +1,83 @@
+/* blast.h -- interface for blast.c
+ Copyright (C) 2003, 2012, 2013 Mark Adler
+ version 1.3, 24 Aug 2013
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Mark Adler madler@alumni.caltech.edu
+ */
+
+
+/*
+ * blast() decompresses the PKWare Data Compression Library (DCL) compressed
+ * format. It provides the same functionality as the explode() function in
+ * that library. (Note: PKWare overused the "implode" verb, and the format
+ * used by their library implode() function is completely different and
+ * incompatible with the implode compression method supported by PKZIP.)
+ *
+ * The binary mode for stdio functions should be used to assure that the
+ * compressed data is not corrupted when read or written. For example:
+ * fopen(..., "rb") and fopen(..., "wb").
+ */
+
+
+typedef unsigned (*blast_in)(void *how, unsigned char **buf);
+typedef int (*blast_out)(void *how, unsigned char *buf, unsigned len);
+/* Definitions for input/output functions passed to blast(). See below for
+ * what the provided functions need to do.
+ */
+
+
+int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow,
+ unsigned *left, unsigned char **in);
+/* Decompress input to output using the provided infun() and outfun() calls.
+ * On success, the return value of blast() is zero. If there is an error in
+ * the source data, i.e. it is not in the proper format, then a negative value
+ * is returned. If there is not enough input available or there is not enough
+ * output space, then a positive error is returned.
+ *
+ * The input function is invoked: len = infun(how, &buf), where buf is set by
+ * infun() to point to the input buffer, and infun() returns the number of
+ * available bytes there. If infun() returns zero, then blast() returns with
+ * an input error. (blast() only asks for input if it needs it.) inhow is for
+ * use by the application to pass an input descriptor to infun(), if desired.
+ *
+ * If left and in are not NULL and *left is not zero when blast() is called,
+ * then the *left bytes are *in are consumed for input before infun() is used.
+ *
+ * The output function is invoked: err = outfun(how, buf, len), where the bytes
+ * to be written are buf[0..len-1]. If err is not zero, then blast() returns
+ * with an output error. outfun() is always called with len <= 4096. outhow
+ * is for use by the application to pass an output descriptor to outfun(), if
+ * desired.
+ *
+ * If there is any unused input, *left is set to the number of bytes that were
+ * read and *in points to them. Otherwise *left is set to zero and *in is set
+ * to NULL. If left or in are NULL, then they are not set.
+ *
+ * The return codes are:
+ *
+ * 2: ran out of input before completing decompression
+ * 1: output error before completing decompression
+ * 0: successful decompression
+ * -1: literal flag not zero or one
+ * -2: dictionary size not in 4..6
+ * -3: distance is too far back
+ *
+ * At the bottom of blast.c is an example program that uses blast() that can be
+ * compiled to produce a command-line decompression filter by defining TEST.
+ */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.pk b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.pk
new file mode 100644
index 000000000..be10b2bbb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.pk
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.txt
new file mode 100644
index 000000000..bfdf1c5dc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/blast/test.txt
@@ -0,0 +1 @@
+AIAIAIAIAIAIA \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLib.pas b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLib.pas
new file mode 100644
index 000000000..060e19911
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLib.pas
@@ -0,0 +1,557 @@
+{*******************************************************}
+{ }
+{ Borland Delphi Supplemental Components }
+{ ZLIB Data Compression Interface Unit }
+{ }
+{ Copyright (c) 1997,99 Borland Corporation }
+{ }
+{*******************************************************}
+
+{ Updated for zlib 1.2.x by Cosmin Truta <cosmint@cs.ubbcluj.ro> }
+
+unit ZLib;
+
+interface
+
+uses SysUtils, Classes;
+
+type
+ TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer; cdecl;
+ TFree = procedure (AppData, Block: Pointer); cdecl;
+
+ // Internal structure. Ignore.
+ TZStreamRec = packed record
+ next_in: PChar; // next input byte
+ avail_in: Integer; // number of bytes available at next_in
+ total_in: Longint; // total nb of input bytes read so far
+
+ next_out: PChar; // next output byte should be put here
+ avail_out: Integer; // remaining free space at next_out
+ total_out: Longint; // total nb of bytes output so far
+
+ msg: PChar; // last error message, NULL if no error
+ internal: Pointer; // not visible by applications
+
+ zalloc: TAlloc; // used to allocate the internal state
+ zfree: TFree; // used to free the internal state
+ AppData: Pointer; // private data object passed to zalloc and zfree
+
+ data_type: Integer; // best guess about the data type: ascii or binary
+ adler: Longint; // adler32 value of the uncompressed data
+ reserved: Longint; // reserved for future use
+ end;
+
+ // Abstract ancestor class
+ TCustomZlibStream = class(TStream)
+ private
+ FStrm: TStream;
+ FStrmPos: Integer;
+ FOnProgress: TNotifyEvent;
+ FZRec: TZStreamRec;
+ FBuffer: array [Word] of Char;
+ protected
+ procedure Progress(Sender: TObject); dynamic;
+ property OnProgress: TNotifyEvent read FOnProgress write FOnProgress;
+ constructor Create(Strm: TStream);
+ end;
+
+{ TCompressionStream compresses data on the fly as data is written to it, and
+ stores the compressed data to another stream.
+
+ TCompressionStream is write-only and strictly sequential. Reading from the
+ stream will raise an exception. Using Seek to move the stream pointer
+ will raise an exception.
+
+ Output data is cached internally, written to the output stream only when
+ the internal output buffer is full. All pending output data is flushed
+ when the stream is destroyed.
+
+ The Position property returns the number of uncompressed bytes of
+ data that have been written to the stream so far.
+
+ CompressionRate returns the on-the-fly percentage by which the original
+ data has been compressed: (1 - (CompressedBytes / UncompressedBytes)) * 100
+ If raw data size = 100 and compressed data size = 25, the CompressionRate
+ is 75%
+
+ The OnProgress event is called each time the output buffer is filled and
+ written to the output stream. This is useful for updating a progress
+ indicator when you are writing a large chunk of data to the compression
+ stream in a single call.}
+
+
+ TCompressionLevel = (clNone, clFastest, clDefault, clMax);
+
+ TCompressionStream = class(TCustomZlibStream)
+ private
+ function GetCompressionRate: Single;
+ public
+ constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream);
+ destructor Destroy; override;
+ function Read(var Buffer; Count: Longint): Longint; override;
+ function Write(const Buffer; Count: Longint): Longint; override;
+ function Seek(Offset: Longint; Origin: Word): Longint; override;
+ property CompressionRate: Single read GetCompressionRate;
+ property OnProgress;
+ end;
+
+{ TDecompressionStream decompresses data on the fly as data is read from it.
+
+ Compressed data comes from a separate source stream. TDecompressionStream
+ is read-only and unidirectional; you can seek forward in the stream, but not
+ backwards. The special case of setting the stream position to zero is
+ allowed. Seeking forward decompresses data until the requested position in
+ the uncompressed data has been reached. Seeking backwards, seeking relative
+ to the end of the stream, requesting the size of the stream, and writing to
+ the stream will raise an exception.
+
+ The Position property returns the number of bytes of uncompressed data that
+ have been read from the stream so far.
+
+ The OnProgress event is called each time the internal input buffer of
+ compressed data is exhausted and the next block is read from the input stream.
+ This is useful for updating a progress indicator when you are reading a
+ large chunk of data from the decompression stream in a single call.}
+
+ TDecompressionStream = class(TCustomZlibStream)
+ public
+ constructor Create(Source: TStream);
+ destructor Destroy; override;
+ function Read(var Buffer; Count: Longint): Longint; override;
+ function Write(const Buffer; Count: Longint): Longint; override;
+ function Seek(Offset: Longint; Origin: Word): Longint; override;
+ property OnProgress;
+ end;
+
+
+
+{ CompressBuf compresses data, buffer to buffer, in one call.
+ In: InBuf = ptr to compressed data
+ InBytes = number of bytes in InBuf
+ Out: OutBuf = ptr to newly allocated buffer containing decompressed data
+ OutBytes = number of bytes in OutBuf }
+procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
+ out OutBuf: Pointer; out OutBytes: Integer);
+
+
+{ DecompressBuf decompresses data, buffer to buffer, in one call.
+ In: InBuf = ptr to compressed data
+ InBytes = number of bytes in InBuf
+ OutEstimate = zero, or est. size of the decompressed data
+ Out: OutBuf = ptr to newly allocated buffer containing decompressed data
+ OutBytes = number of bytes in OutBuf }
+procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
+ OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
+
+{ DecompressToUserBuf decompresses data, buffer to buffer, in one call.
+ In: InBuf = ptr to compressed data
+ InBytes = number of bytes in InBuf
+ Out: OutBuf = ptr to user-allocated buffer to contain decompressed data
+ BufSize = number of bytes in OutBuf }
+procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
+ const OutBuf: Pointer; BufSize: Integer);
+
+const
+ zlib_version = '1.2.11';
+
+type
+ EZlibError = class(Exception);
+ ECompressionError = class(EZlibError);
+ EDecompressionError = class(EZlibError);
+
+implementation
+
+uses ZLibConst;
+
+const
+ Z_NO_FLUSH = 0;
+ Z_PARTIAL_FLUSH = 1;
+ Z_SYNC_FLUSH = 2;
+ Z_FULL_FLUSH = 3;
+ Z_FINISH = 4;
+
+ Z_OK = 0;
+ Z_STREAM_END = 1;
+ Z_NEED_DICT = 2;
+ Z_ERRNO = (-1);
+ Z_STREAM_ERROR = (-2);
+ Z_DATA_ERROR = (-3);
+ Z_MEM_ERROR = (-4);
+ Z_BUF_ERROR = (-5);
+ Z_VERSION_ERROR = (-6);
+
+ Z_NO_COMPRESSION = 0;
+ Z_BEST_SPEED = 1;
+ Z_BEST_COMPRESSION = 9;
+ Z_DEFAULT_COMPRESSION = (-1);
+
+ Z_FILTERED = 1;
+ Z_HUFFMAN_ONLY = 2;
+ Z_RLE = 3;
+ Z_DEFAULT_STRATEGY = 0;
+
+ Z_BINARY = 0;
+ Z_ASCII = 1;
+ Z_UNKNOWN = 2;
+
+ Z_DEFLATED = 8;
+
+
+{$L adler32.obj}
+{$L compress.obj}
+{$L crc32.obj}
+{$L deflate.obj}
+{$L infback.obj}
+{$L inffast.obj}
+{$L inflate.obj}
+{$L inftrees.obj}
+{$L trees.obj}
+{$L uncompr.obj}
+{$L zutil.obj}
+
+procedure adler32; external;
+procedure compressBound; external;
+procedure crc32; external;
+procedure deflateInit2_; external;
+procedure deflateParams; external;
+
+function _malloc(Size: Integer): Pointer; cdecl;
+begin
+ Result := AllocMem(Size);
+end;
+
+procedure _free(Block: Pointer); cdecl;
+begin
+ FreeMem(Block);
+end;
+
+procedure _memset(P: Pointer; B: Byte; count: Integer); cdecl;
+begin
+ FillChar(P^, count, B);
+end;
+
+procedure _memcpy(dest, source: Pointer; count: Integer); cdecl;
+begin
+ Move(source^, dest^, count);
+end;
+
+
+
+// deflate compresses data
+function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar;
+ recsize: Integer): Integer; external;
+function deflate(var strm: TZStreamRec; flush: Integer): Integer; external;
+function deflateEnd(var strm: TZStreamRec): Integer; external;
+
+// inflate decompresses data
+function inflateInit_(var strm: TZStreamRec; version: PChar;
+ recsize: Integer): Integer; external;
+function inflate(var strm: TZStreamRec; flush: Integer): Integer; external;
+function inflateEnd(var strm: TZStreamRec): Integer; external;
+function inflateReset(var strm: TZStreamRec): Integer; external;
+
+
+function zlibAllocMem(AppData: Pointer; Items, Size: Integer): Pointer; cdecl;
+begin
+// GetMem(Result, Items*Size);
+ Result := AllocMem(Items * Size);
+end;
+
+procedure zlibFreeMem(AppData, Block: Pointer); cdecl;
+begin
+ FreeMem(Block);
+end;
+
+{function zlibCheck(code: Integer): Integer;
+begin
+ Result := code;
+ if code < 0 then
+ raise EZlibError.Create('error'); //!!
+end;}
+
+function CCheck(code: Integer): Integer;
+begin
+ Result := code;
+ if code < 0 then
+ raise ECompressionError.Create('error'); //!!
+end;
+
+function DCheck(code: Integer): Integer;
+begin
+ Result := code;
+ if code < 0 then
+ raise EDecompressionError.Create('error'); //!!
+end;
+
+procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
+ out OutBuf: Pointer; out OutBytes: Integer);
+var
+ strm: TZStreamRec;
+ P: Pointer;
+begin
+ FillChar(strm, sizeof(strm), 0);
+ strm.zalloc := zlibAllocMem;
+ strm.zfree := zlibFreeMem;
+ OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255;
+ GetMem(OutBuf, OutBytes);
+ try
+ strm.next_in := InBuf;
+ strm.avail_in := InBytes;
+ strm.next_out := OutBuf;
+ strm.avail_out := OutBytes;
+ CCheck(deflateInit_(strm, Z_BEST_COMPRESSION, zlib_version, sizeof(strm)));
+ try
+ while CCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do
+ begin
+ P := OutBuf;
+ Inc(OutBytes, 256);
+ ReallocMem(OutBuf, OutBytes);
+ strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
+ strm.avail_out := 256;
+ end;
+ finally
+ CCheck(deflateEnd(strm));
+ end;
+ ReallocMem(OutBuf, strm.total_out);
+ OutBytes := strm.total_out;
+ except
+ FreeMem(OutBuf);
+ raise
+ end;
+end;
+
+
+procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
+ OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
+var
+ strm: TZStreamRec;
+ P: Pointer;
+ BufInc: Integer;
+begin
+ FillChar(strm, sizeof(strm), 0);
+ strm.zalloc := zlibAllocMem;
+ strm.zfree := zlibFreeMem;
+ BufInc := (InBytes + 255) and not 255;
+ if OutEstimate = 0 then
+ OutBytes := BufInc
+ else
+ OutBytes := OutEstimate;
+ GetMem(OutBuf, OutBytes);
+ try
+ strm.next_in := InBuf;
+ strm.avail_in := InBytes;
+ strm.next_out := OutBuf;
+ strm.avail_out := OutBytes;
+ DCheck(inflateInit_(strm, zlib_version, sizeof(strm)));
+ try
+ while DCheck(inflate(strm, Z_NO_FLUSH)) <> Z_STREAM_END do
+ begin
+ P := OutBuf;
+ Inc(OutBytes, BufInc);
+ ReallocMem(OutBuf, OutBytes);
+ strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
+ strm.avail_out := BufInc;
+ end;
+ finally
+ DCheck(inflateEnd(strm));
+ end;
+ ReallocMem(OutBuf, strm.total_out);
+ OutBytes := strm.total_out;
+ except
+ FreeMem(OutBuf);
+ raise
+ end;
+end;
+
+procedure DecompressToUserBuf(const InBuf: Pointer; InBytes: Integer;
+ const OutBuf: Pointer; BufSize: Integer);
+var
+ strm: TZStreamRec;
+begin
+ FillChar(strm, sizeof(strm), 0);
+ strm.zalloc := zlibAllocMem;
+ strm.zfree := zlibFreeMem;
+ strm.next_in := InBuf;
+ strm.avail_in := InBytes;
+ strm.next_out := OutBuf;
+ strm.avail_out := BufSize;
+ DCheck(inflateInit_(strm, zlib_version, sizeof(strm)));
+ try
+ if DCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END then
+ raise EZlibError.CreateRes(@sTargetBufferTooSmall);
+ finally
+ DCheck(inflateEnd(strm));
+ end;
+end;
+
+// TCustomZlibStream
+
+constructor TCustomZLibStream.Create(Strm: TStream);
+begin
+ inherited Create;
+ FStrm := Strm;
+ FStrmPos := Strm.Position;
+ FZRec.zalloc := zlibAllocMem;
+ FZRec.zfree := zlibFreeMem;
+end;
+
+procedure TCustomZLibStream.Progress(Sender: TObject);
+begin
+ if Assigned(FOnProgress) then FOnProgress(Sender);
+end;
+
+
+// TCompressionStream
+
+constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
+ Dest: TStream);
+const
+ Levels: array [TCompressionLevel] of ShortInt =
+ (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
+begin
+ inherited Create(Dest);
+ FZRec.next_out := FBuffer;
+ FZRec.avail_out := sizeof(FBuffer);
+ CCheck(deflateInit_(FZRec, Levels[CompressionLevel], zlib_version, sizeof(FZRec)));
+end;
+
+destructor TCompressionStream.Destroy;
+begin
+ FZRec.next_in := nil;
+ FZRec.avail_in := 0;
+ try
+ if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
+ while (CCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END)
+ and (FZRec.avail_out = 0) do
+ begin
+ FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
+ FZRec.next_out := FBuffer;
+ FZRec.avail_out := sizeof(FBuffer);
+ end;
+ if FZRec.avail_out < sizeof(FBuffer) then
+ FStrm.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out);
+ finally
+ deflateEnd(FZRec);
+ end;
+ inherited Destroy;
+end;
+
+function TCompressionStream.Read(var Buffer; Count: Longint): Longint;
+begin
+ raise ECompressionError.CreateRes(@sInvalidStreamOp);
+end;
+
+function TCompressionStream.Write(const Buffer; Count: Longint): Longint;
+begin
+ FZRec.next_in := @Buffer;
+ FZRec.avail_in := Count;
+ if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
+ while (FZRec.avail_in > 0) do
+ begin
+ CCheck(deflate(FZRec, 0));
+ if FZRec.avail_out = 0 then
+ begin
+ FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
+ FZRec.next_out := FBuffer;
+ FZRec.avail_out := sizeof(FBuffer);
+ FStrmPos := FStrm.Position;
+ Progress(Self);
+ end;
+ end;
+ Result := Count;
+end;
+
+function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
+begin
+ if (Offset = 0) and (Origin = soFromCurrent) then
+ Result := FZRec.total_in
+ else
+ raise ECompressionError.CreateRes(@sInvalidStreamOp);
+end;
+
+function TCompressionStream.GetCompressionRate: Single;
+begin
+ if FZRec.total_in = 0 then
+ Result := 0
+ else
+ Result := (1.0 - (FZRec.total_out / FZRec.total_in)) * 100.0;
+end;
+
+
+// TDecompressionStream
+
+constructor TDecompressionStream.Create(Source: TStream);
+begin
+ inherited Create(Source);
+ FZRec.next_in := FBuffer;
+ FZRec.avail_in := 0;
+ DCheck(inflateInit_(FZRec, zlib_version, sizeof(FZRec)));
+end;
+
+destructor TDecompressionStream.Destroy;
+begin
+ FStrm.Seek(-FZRec.avail_in, 1);
+ inflateEnd(FZRec);
+ inherited Destroy;
+end;
+
+function TDecompressionStream.Read(var Buffer; Count: Longint): Longint;
+begin
+ FZRec.next_out := @Buffer;
+ FZRec.avail_out := Count;
+ if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
+ while (FZRec.avail_out > 0) do
+ begin
+ if FZRec.avail_in = 0 then
+ begin
+ FZRec.avail_in := FStrm.Read(FBuffer, sizeof(FBuffer));
+ if FZRec.avail_in = 0 then
+ begin
+ Result := Count - FZRec.avail_out;
+ Exit;
+ end;
+ FZRec.next_in := FBuffer;
+ FStrmPos := FStrm.Position;
+ Progress(Self);
+ end;
+ CCheck(inflate(FZRec, 0));
+ end;
+ Result := Count;
+end;
+
+function TDecompressionStream.Write(const Buffer; Count: Longint): Longint;
+begin
+ raise EDecompressionError.CreateRes(@sInvalidStreamOp);
+end;
+
+function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
+var
+ I: Integer;
+ Buf: array [0..4095] of Char;
+begin
+ if (Offset = 0) and (Origin = soFromBeginning) then
+ begin
+ DCheck(inflateReset(FZRec));
+ FZRec.next_in := FBuffer;
+ FZRec.avail_in := 0;
+ FStrm.Position := 0;
+ FStrmPos := 0;
+ end
+ else if ( (Offset >= 0) and (Origin = soFromCurrent)) or
+ ( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then
+ begin
+ if Origin = soFromBeginning then Dec(Offset, FZRec.total_out);
+ if Offset > 0 then
+ begin
+ for I := 1 to Offset div sizeof(Buf) do
+ ReadBuffer(Buf, sizeof(Buf));
+ ReadBuffer(Buf, Offset mod sizeof(Buf));
+ end;
+ end
+ else
+ raise EDecompressionError.CreateRes(@sInvalidStreamOp);
+ Result := FZRec.total_out;
+end;
+
+
+end.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLibConst.pas b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLibConst.pas
new file mode 100644
index 000000000..cdfe13671
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/ZLibConst.pas
@@ -0,0 +1,11 @@
+unit ZLibConst;
+
+interface
+
+resourcestring
+ sTargetBufferTooSmall = 'ZLib error: target buffer may be too small';
+ sInvalidStreamOp = 'Invalid stream operation';
+
+implementation
+
+end.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/readme.txt
new file mode 100644
index 000000000..2dc9a8bba
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/readme.txt
@@ -0,0 +1,76 @@
+
+Overview
+========
+
+This directory contains an update to the ZLib interface unit,
+distributed by Borland as a Delphi supplemental component.
+
+The original ZLib unit is Copyright (c) 1997,99 Borland Corp.,
+and is based on zlib version 1.0.4. There are a series of bugs
+and security problems associated with that old zlib version, and
+we recommend the users to update their ZLib unit.
+
+
+Summary of modifications
+========================
+
+- Improved makefile, adapted to zlib version 1.2.1.
+
+- Some field types from TZStreamRec are changed from Integer to
+ Longint, for consistency with the zlib.h header, and for 64-bit
+ readiness.
+
+- The zlib_version constant is updated.
+
+- The new Z_RLE strategy has its corresponding symbolic constant.
+
+- The allocation and deallocation functions and function types
+ (TAlloc, TFree, zlibAllocMem and zlibFreeMem) are now cdecl,
+ and _malloc and _free are added as C RTL stubs. As a result,
+ the original C sources of zlib can be compiled out of the box,
+ and linked to the ZLib unit.
+
+
+Suggestions for improvements
+============================
+
+Currently, the ZLib unit provides only a limited wrapper around
+the zlib library, and much of the original zlib functionality is
+missing. Handling compressed file formats like ZIP/GZIP or PNG
+cannot be implemented without having this functionality.
+Applications that handle these formats are either using their own,
+duplicated code, or not using the ZLib unit at all.
+
+Here are a few suggestions:
+
+- Checksum class wrappers around adler32() and crc32(), similar
+ to the Java classes that implement the java.util.zip.Checksum
+ interface.
+
+- The ability to read and write raw deflate streams, without the
+ zlib stream header and trailer. Raw deflate streams are used
+ in the ZIP file format.
+
+- The ability to read and write gzip streams, used in the GZIP
+ file format, and normally produced by the gzip program.
+
+- The ability to select a different compression strategy, useful
+ to PNG and MNG image compression, and to multimedia compression
+ in general. Besides the compression level
+
+ TCompressionLevel = (clNone, clFastest, clDefault, clMax);
+
+ which, in fact, could have used the 'z' prefix and avoided
+ TColor-like symbols
+
+ TCompressionLevel = (zcNone, zcFastest, zcDefault, zcMax);
+
+ there could be a compression strategy
+
+ TCompressionStrategy = (zsDefault, zsFiltered, zsHuffmanOnly, zsRle);
+
+- ZIP and GZIP stream handling via TStreams.
+
+
+--
+Cosmin Truta <cosmint@cs.ubbcluj.ro>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/zlibd32.mak b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/zlibd32.mak
new file mode 100644
index 000000000..9bb00b7cc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/delphi/zlibd32.mak
@@ -0,0 +1,99 @@
+# Makefile for zlib
+# For use with Delphi and C++ Builder under Win32
+# Updated for zlib 1.2.x by Cosmin Truta
+
+# ------------ Borland C++ ------------
+
+# This project uses the Delphi (fastcall/register) calling convention:
+LOC = -DZEXPORT=__fastcall -DZEXPORTVA=__cdecl
+
+CC = bcc32
+LD = bcc32
+AR = tlib
+# do not use "-pr" in CFLAGS
+CFLAGS = -a -d -k- -O2 $(LOC)
+LDFLAGS =
+
+
+# variables
+ZLIB_LIB = zlib.lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj
+OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(CFLAGS) $*.c
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+
+
+# For the sake of the old Borland make,
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2)
+ -del $(ZLIB_LIB)
+ $(AR) $(ZLIB_LIB) $(OBJP1)
+ $(AR) $(ZLIB_LIB) $(OBJP2)
+
+
+# testing
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
+
+
+# cleanup
+clean:
+ -del *.obj
+ -del *.exe
+ -del *.lib
+ -del *.tds
+ -del zlib.bak
+ -del foo.gz
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.build b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.build
new file mode 100644
index 000000000..e69630cec
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.build
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<project name="DotZLib" default="build" basedir="./DotZLib">
+ <description>A .Net wrapper library around ZLib1.dll</description>
+
+ <property name="nunit.location" value="c:/program files/NUnit V2.1/bin" />
+ <property name="build.root" value="bin" />
+
+ <property name="debug" value="true" />
+ <property name="nunit" value="true" />
+
+ <property name="build.folder" value="${build.root}/debug/" if="${debug}" />
+ <property name="build.folder" value="${build.root}/release/" unless="${debug}" />
+
+ <target name="clean" description="Remove all generated files">
+ <delete dir="${build.root}" failonerror="false" />
+ </target>
+
+ <target name="build" description="compiles the source code">
+
+ <mkdir dir="${build.folder}" />
+ <csc target="library" output="${build.folder}DotZLib.dll" debug="${debug}">
+ <references basedir="${nunit.location}">
+ <includes if="${nunit}" name="nunit.framework.dll" />
+ </references>
+ <sources>
+ <includes name="*.cs" />
+ <excludes name="UnitTests.cs" unless="${nunit}" />
+ </sources>
+ <arg value="/d:nunit" if="${nunit}" />
+ </csc>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.chm b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.chm
new file mode 100644
index 000000000..f214a444a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.chm
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.sln
new file mode 100644
index 000000000..5d533d6bc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotZLib", "DotZLib\DotZLib.csproj", "{BB1EE0B1-1808-46CB-B786-949D91117FC5}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.ActiveCfg = Debug|.NET
+ {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.Build.0 = Debug|.NET
+ {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.ActiveCfg = Release|.NET
+ {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.Build.0 = Release|.NET
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/AssemblyInfo.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/AssemblyInfo.cs
new file mode 100644
index 000000000..724c5347f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/AssemblyInfo.cs
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("DotZLib")]
+[assembly: AssemblyDescription(".Net bindings for ZLib compression dll 1.2.x")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Henrik Ravn")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("(c) 2004 by Henrik Ravn")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project output directory which is
+// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+// located in the project directory, you would specify the AssemblyKeyFile
+// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/ChecksumImpl.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/ChecksumImpl.cs
new file mode 100644
index 000000000..b110dae6a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/ChecksumImpl.cs
@@ -0,0 +1,202 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+
+
+namespace DotZLib
+{
+ #region ChecksumGeneratorBase
+ /// <summary>
+ /// Implements the common functionality needed for all <see cref="ChecksumGenerator"/>s
+ /// </summary>
+ /// <example></example>
+ public abstract class ChecksumGeneratorBase : ChecksumGenerator
+ {
+ /// <summary>
+ /// The value of the current checksum
+ /// </summary>
+ protected uint _current;
+
+ /// <summary>
+ /// Initializes a new instance of the checksum generator base - the current checksum is
+ /// set to zero
+ /// </summary>
+ public ChecksumGeneratorBase()
+ {
+ _current = 0;
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the checksum generator basewith a specified value
+ /// </summary>
+ /// <param name="initialValue">The value to set the current checksum to</param>
+ public ChecksumGeneratorBase(uint initialValue)
+ {
+ _current = initialValue;
+ }
+
+ /// <summary>
+ /// Resets the current checksum to zero
+ /// </summary>
+ public void Reset() { _current = 0; }
+
+ /// <summary>
+ /// Gets the current checksum value
+ /// </summary>
+ public uint Value { get { return _current; } }
+
+ /// <summary>
+ /// Updates the current checksum with part of an array of bytes
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ /// <param name="offset">Where in <c>data</c> to start updating</param>
+ /// <param name="count">The number of bytes from <c>data</c> to use</param>
+ /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
+ /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
+ /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
+ /// <remarks>All the other <c>Update</c> methods are implmeneted in terms of this one.
+ /// This is therefore the only method a derived class has to implement</remarks>
+ public abstract void Update(byte[] data, int offset, int count);
+
+ /// <summary>
+ /// Updates the current checksum with an array of bytes.
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ public void Update(byte[] data)
+ {
+ Update(data, 0, data.Length);
+ }
+
+ /// <summary>
+ /// Updates the current checksum with the data from a string
+ /// </summary>
+ /// <param name="data">The string to update the checksum with</param>
+ /// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
+ public void Update(string data)
+ {
+ Update(Encoding.UTF8.GetBytes(data));
+ }
+
+ /// <summary>
+ /// Updates the current checksum with the data from a string, using a specific encoding
+ /// </summary>
+ /// <param name="data">The string to update the checksum with</param>
+ /// <param name="encoding">The encoding to use</param>
+ public void Update(string data, Encoding encoding)
+ {
+ Update(encoding.GetBytes(data));
+ }
+
+ }
+ #endregion
+
+ #region CRC32
+ /// <summary>
+ /// Implements a CRC32 checksum generator
+ /// </summary>
+ public sealed class CRC32Checksum : ChecksumGeneratorBase
+ {
+ #region DLL imports
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern uint crc32(uint crc, int data, uint length);
+
+ #endregion
+
+ /// <summary>
+ /// Initializes a new instance of the CRC32 checksum generator
+ /// </summary>
+ public CRC32Checksum() : base() {}
+
+ /// <summary>
+ /// Initializes a new instance of the CRC32 checksum generator with a specified value
+ /// </summary>
+ /// <param name="initialValue">The value to set the current checksum to</param>
+ public CRC32Checksum(uint initialValue) : base(initialValue) {}
+
+ /// <summary>
+ /// Updates the current checksum with part of an array of bytes
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ /// <param name="offset">Where in <c>data</c> to start updating</param>
+ /// <param name="count">The number of bytes from <c>data</c> to use</param>
+ /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
+ /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
+ /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
+ public override void Update(byte[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > data.Length) throw new ArgumentException();
+ GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
+ try
+ {
+ _current = crc32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
+ }
+ finally
+ {
+ hData.Free();
+ }
+ }
+
+ }
+ #endregion
+
+ #region Adler
+ /// <summary>
+ /// Implements a checksum generator that computes the Adler checksum on data
+ /// </summary>
+ public sealed class AdlerChecksum : ChecksumGeneratorBase
+ {
+ #region DLL imports
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern uint adler32(uint adler, int data, uint length);
+
+ #endregion
+
+ /// <summary>
+ /// Initializes a new instance of the Adler checksum generator
+ /// </summary>
+ public AdlerChecksum() : base() {}
+
+ /// <summary>
+ /// Initializes a new instance of the Adler checksum generator with a specified value
+ /// </summary>
+ /// <param name="initialValue">The value to set the current checksum to</param>
+ public AdlerChecksum(uint initialValue) : base(initialValue) {}
+
+ /// <summary>
+ /// Updates the current checksum with part of an array of bytes
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ /// <param name="offset">Where in <c>data</c> to start updating</param>
+ /// <param name="count">The number of bytes from <c>data</c> to use</param>
+ /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
+ /// <exception cref="NullReferenceException"><c>data</c> is a null reference</exception>
+ /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
+ public override void Update(byte[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > data.Length) throw new ArgumentException();
+ GCHandle hData = GCHandle.Alloc(data, GCHandleType.Pinned);
+ try
+ {
+ _current = adler32(_current, hData.AddrOfPinnedObject().ToInt32()+offset, (uint)count);
+ }
+ finally
+ {
+ hData.Free();
+ }
+ }
+
+ }
+ #endregion
+
+} \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CircularBuffer.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CircularBuffer.cs
new file mode 100644
index 000000000..9c8d60195
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CircularBuffer.cs
@@ -0,0 +1,83 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Diagnostics;
+
+namespace DotZLib
+{
+
+ /// <summary>
+ /// This class implements a circular buffer
+ /// </summary>
+ internal class CircularBuffer
+ {
+ #region Private data
+ private int _capacity;
+ private int _head;
+ private int _tail;
+ private int _size;
+ private byte[] _buffer;
+ #endregion
+
+ public CircularBuffer(int capacity)
+ {
+ Debug.Assert( capacity > 0 );
+ _buffer = new byte[capacity];
+ _capacity = capacity;
+ _head = 0;
+ _tail = 0;
+ _size = 0;
+ }
+
+ public int Size { get { return _size; } }
+
+ public int Put(byte[] source, int offset, int count)
+ {
+ Debug.Assert( count > 0 );
+ int trueCount = Math.Min(count, _capacity - Size);
+ for (int i = 0; i < trueCount; ++i)
+ _buffer[(_tail+i) % _capacity] = source[offset+i];
+ _tail += trueCount;
+ _tail %= _capacity;
+ _size += trueCount;
+ return trueCount;
+ }
+
+ public bool Put(byte b)
+ {
+ if (Size == _capacity) // no room
+ return false;
+ _buffer[_tail++] = b;
+ _tail %= _capacity;
+ ++_size;
+ return true;
+ }
+
+ public int Get(byte[] destination, int offset, int count)
+ {
+ int trueCount = Math.Min(count,Size);
+ for (int i = 0; i < trueCount; ++i)
+ destination[offset + i] = _buffer[(_head+i) % _capacity];
+ _head += trueCount;
+ _head %= _capacity;
+ _size -= trueCount;
+ return trueCount;
+ }
+
+ public int Get()
+ {
+ if (Size == 0)
+ return -1;
+
+ int result = (int)_buffer[_head++ % _capacity];
+ --_size;
+ return result;
+ }
+
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CodecBase.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CodecBase.cs
new file mode 100644
index 000000000..b0eb78a02
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/CodecBase.cs
@@ -0,0 +1,198 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace DotZLib
+{
+ /// <summary>
+ /// Implements the common functionality needed for all <see cref="Codec"/>s
+ /// </summary>
+ public abstract class CodecBase : Codec, IDisposable
+ {
+
+ #region Data members
+
+ /// <summary>
+ /// Instance of the internal zlib buffer structure that is
+ /// passed to all functions in the zlib dll
+ /// </summary>
+ internal ZStream _ztream = new ZStream();
+
+ /// <summary>
+ /// True if the object instance has been disposed, false otherwise
+ /// </summary>
+ protected bool _isDisposed = false;
+
+ /// <summary>
+ /// The size of the internal buffers
+ /// </summary>
+ protected const int kBufferSize = 16384;
+
+ private byte[] _outBuffer = new byte[kBufferSize];
+ private byte[] _inBuffer = new byte[kBufferSize];
+
+ private GCHandle _hInput;
+ private GCHandle _hOutput;
+
+ private uint _checksum = 0;
+
+ #endregion
+
+ /// <summary>
+ /// Initializes a new instance of the <c>CodeBase</c> class.
+ /// </summary>
+ public CodecBase()
+ {
+ try
+ {
+ _hInput = GCHandle.Alloc(_inBuffer, GCHandleType.Pinned);
+ _hOutput = GCHandle.Alloc(_outBuffer, GCHandleType.Pinned);
+ }
+ catch (Exception)
+ {
+ CleanUp(false);
+ throw;
+ }
+ }
+
+
+ #region Codec Members
+
+ /// <summary>
+ /// Occurs when more processed data are available.
+ /// </summary>
+ public event DataAvailableHandler DataAvailable;
+
+ /// <summary>
+ /// Fires the <see cref="DataAvailable"/> event
+ /// </summary>
+ protected void OnDataAvailable()
+ {
+ if (_ztream.total_out > 0)
+ {
+ if (DataAvailable != null)
+ DataAvailable( _outBuffer, 0, (int)_ztream.total_out);
+ resetOutput();
+ }
+ }
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ public void Add(byte[] data)
+ {
+ Add(data,0,data.Length);
+ }
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <param name="offset">The index of the first byte to add from <c>data</c></param>
+ /// <param name="count">The number of bytes to add</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ /// <remarks>This must be implemented by a derived class</remarks>
+ public abstract void Add(byte[] data, int offset, int count);
+
+ /// <summary>
+ /// Finishes up any pending data that needs to be processed and handled.
+ /// </summary>
+ /// <remarks>This must be implemented by a derived class</remarks>
+ public abstract void Finish();
+
+ /// <summary>
+ /// Gets the checksum of the data that has been added so far
+ /// </summary>
+ public uint Checksum { get { return _checksum; } }
+
+ #endregion
+
+ #region Destructor & IDisposable stuff
+
+ /// <summary>
+ /// Destroys this instance
+ /// </summary>
+ ~CodecBase()
+ {
+ CleanUp(false);
+ }
+
+ /// <summary>
+ /// Releases any unmanaged resources and calls the <see cref="CleanUp()"/> method of the derived class
+ /// </summary>
+ public void Dispose()
+ {
+ CleanUp(true);
+ }
+
+ /// <summary>
+ /// Performs any codec specific cleanup
+ /// </summary>
+ /// <remarks>This must be implemented by a derived class</remarks>
+ protected abstract void CleanUp();
+
+ // performs the release of the handles and calls the dereived CleanUp()
+ private void CleanUp(bool isDisposing)
+ {
+ if (!_isDisposed)
+ {
+ CleanUp();
+ if (_hInput.IsAllocated)
+ _hInput.Free();
+ if (_hOutput.IsAllocated)
+ _hOutput.Free();
+
+ _isDisposed = true;
+ }
+ }
+
+
+ #endregion
+
+ #region Helper methods
+
+ /// <summary>
+ /// Copies a number of bytes to the internal codec buffer - ready for proccesing
+ /// </summary>
+ /// <param name="data">The byte array that contains the data to copy</param>
+ /// <param name="startIndex">The index of the first byte to copy</param>
+ /// <param name="count">The number of bytes to copy from <c>data</c></param>
+ protected void copyInput(byte[] data, int startIndex, int count)
+ {
+ Array.Copy(data, startIndex, _inBuffer,0, count);
+ _ztream.next_in = _hInput.AddrOfPinnedObject();
+ _ztream.total_in = 0;
+ _ztream.avail_in = (uint)count;
+
+ }
+
+ /// <summary>
+ /// Resets the internal output buffers to a known state - ready for processing
+ /// </summary>
+ protected void resetOutput()
+ {
+ _ztream.total_out = 0;
+ _ztream.avail_out = kBufferSize;
+ _ztream.next_out = _hOutput.AddrOfPinnedObject();
+ }
+
+ /// <summary>
+ /// Updates the running checksum property
+ /// </summary>
+ /// <param name="newSum">The new checksum value</param>
+ protected void setChecksum(uint newSum)
+ {
+ _checksum = newSum;
+ }
+ #endregion
+
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Deflater.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Deflater.cs
new file mode 100644
index 000000000..9039f41f6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Deflater.cs
@@ -0,0 +1,106 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+
+namespace DotZLib
+{
+
+ /// <summary>
+ /// Implements a data compressor, using the deflate algorithm in the ZLib dll
+ /// </summary>
+ public sealed class Deflater : CodecBase
+ {
+ #region Dll imports
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
+ private static extern int deflateInit_(ref ZStream sz, int level, string vs, int size);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int deflate(ref ZStream sz, int flush);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int deflateReset(ref ZStream sz);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int deflateEnd(ref ZStream sz);
+ #endregion
+
+ /// <summary>
+ /// Constructs an new instance of the <c>Deflater</c>
+ /// </summary>
+ /// <param name="level">The compression level to use for this <c>Deflater</c></param>
+ public Deflater(CompressLevel level) : base()
+ {
+ int retval = deflateInit_(ref _ztream, (int)level, Info.Version, Marshal.SizeOf(_ztream));
+ if (retval != 0)
+ throw new ZLibException(retval, "Could not initialize deflater");
+
+ resetOutput();
+ }
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <param name="offset">The index of the first byte to add from <c>data</c></param>
+ /// <param name="count">The number of bytes to add</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ public override void Add(byte[] data, int offset, int count)
+ {
+ if (data == null) throw new ArgumentNullException();
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > data.Length) throw new ArgumentException();
+
+ int total = count;
+ int inputIndex = offset;
+ int err = 0;
+
+ while (err >= 0 && inputIndex < total)
+ {
+ copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
+ while (err >= 0 && _ztream.avail_in > 0)
+ {
+ err = deflate(ref _ztream, (int)FlushTypes.None);
+ if (err == 0)
+ while (_ztream.avail_out == 0)
+ {
+ OnDataAvailable();
+ err = deflate(ref _ztream, (int)FlushTypes.None);
+ }
+ inputIndex += (int)_ztream.total_in;
+ }
+ }
+ setChecksum( _ztream.adler );
+ }
+
+
+ /// <summary>
+ /// Finishes up any pending data that needs to be processed and handled.
+ /// </summary>
+ public override void Finish()
+ {
+ int err;
+ do
+ {
+ err = deflate(ref _ztream, (int)FlushTypes.Finish);
+ OnDataAvailable();
+ }
+ while (err == 0);
+ setChecksum( _ztream.adler );
+ deflateReset(ref _ztream);
+ resetOutput();
+ }
+
+ /// <summary>
+ /// Closes the internal zlib deflate stream
+ /// </summary>
+ protected override void CleanUp() { deflateEnd(ref _ztream); }
+
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.cs
new file mode 100644
index 000000000..90c7c3b38
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.cs
@@ -0,0 +1,288 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Text;
+
+
+namespace DotZLib
+{
+
+ #region Internal types
+
+ /// <summary>
+ /// Defines constants for the various flush types used with zlib
+ /// </summary>
+ internal enum FlushTypes
+ {
+ None, Partial, Sync, Full, Finish, Block
+ }
+
+ #region ZStream structure
+ // internal mapping of the zlib zstream structure for marshalling
+ [StructLayoutAttribute(LayoutKind.Sequential, Pack=4, Size=0, CharSet=CharSet.Ansi)]
+ internal struct ZStream
+ {
+ public IntPtr next_in;
+ public uint avail_in;
+ public uint total_in;
+
+ public IntPtr next_out;
+ public uint avail_out;
+ public uint total_out;
+
+ [MarshalAs(UnmanagedType.LPStr)]
+ string msg;
+ uint state;
+
+ uint zalloc;
+ uint zfree;
+ uint opaque;
+
+ int data_type;
+ public uint adler;
+ uint reserved;
+ }
+
+ #endregion
+
+ #endregion
+
+ #region Public enums
+ /// <summary>
+ /// Defines constants for the available compression levels in zlib
+ /// </summary>
+ public enum CompressLevel : int
+ {
+ /// <summary>
+ /// The default compression level with a reasonable compromise between compression and speed
+ /// </summary>
+ Default = -1,
+ /// <summary>
+ /// No compression at all. The data are passed straight through.
+ /// </summary>
+ None = 0,
+ /// <summary>
+ /// The maximum compression rate available.
+ /// </summary>
+ Best = 9,
+ /// <summary>
+ /// The fastest available compression level.
+ /// </summary>
+ Fastest = 1
+ }
+ #endregion
+
+ #region Exception classes
+ /// <summary>
+ /// The exception that is thrown when an error occurs on the zlib dll
+ /// </summary>
+ public class ZLibException : ApplicationException
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
+ /// error message and error code
+ /// </summary>
+ /// <param name="errorCode">The zlib error code that caused the exception</param>
+ /// <param name="msg">A message that (hopefully) describes the error</param>
+ public ZLibException(int errorCode, string msg) : base(String.Format("ZLib error {0} {1}", errorCode, msg))
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ZLibException"/> class with a specified
+ /// error code
+ /// </summary>
+ /// <param name="errorCode">The zlib error code that caused the exception</param>
+ public ZLibException(int errorCode) : base(String.Format("ZLib error {0}", errorCode))
+ {
+ }
+ }
+ #endregion
+
+ #region Interfaces
+
+ /// <summary>
+ /// Declares methods and properties that enables a running checksum to be calculated
+ /// </summary>
+ public interface ChecksumGenerator
+ {
+ /// <summary>
+ /// Gets the current value of the checksum
+ /// </summary>
+ uint Value { get; }
+
+ /// <summary>
+ /// Clears the current checksum to 0
+ /// </summary>
+ void Reset();
+
+ /// <summary>
+ /// Updates the current checksum with an array of bytes
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ void Update(byte[] data);
+
+ /// <summary>
+ /// Updates the current checksum with part of an array of bytes
+ /// </summary>
+ /// <param name="data">The data to update the checksum with</param>
+ /// <param name="offset">Where in <c>data</c> to start updating</param>
+ /// <param name="count">The number of bytes from <c>data</c> to use</param>
+ /// <exception cref="ArgumentException">The sum of offset and count is larger than the length of <c>data</c></exception>
+ /// <exception cref="ArgumentNullException"><c>data</c> is a null reference</exception>
+ /// <exception cref="ArgumentOutOfRangeException">Offset or count is negative.</exception>
+ void Update(byte[] data, int offset, int count);
+
+ /// <summary>
+ /// Updates the current checksum with the data from a string
+ /// </summary>
+ /// <param name="data">The string to update the checksum with</param>
+ /// <remarks>The characters in the string are converted by the UTF-8 encoding</remarks>
+ void Update(string data);
+
+ /// <summary>
+ /// Updates the current checksum with the data from a string, using a specific encoding
+ /// </summary>
+ /// <param name="data">The string to update the checksum with</param>
+ /// <param name="encoding">The encoding to use</param>
+ void Update(string data, Encoding encoding);
+ }
+
+
+ /// <summary>
+ /// Represents the method that will be called from a codec when new data
+ /// are available.
+ /// </summary>
+ /// <paramref name="data">The byte array containing the processed data</paramref>
+ /// <paramref name="startIndex">The index of the first processed byte in <c>data</c></paramref>
+ /// <paramref name="count">The number of processed bytes available</paramref>
+ /// <remarks>On return from this method, the data may be overwritten, so grab it while you can.
+ /// You cannot assume that startIndex will be zero.
+ /// </remarks>
+ public delegate void DataAvailableHandler(byte[] data, int startIndex, int count);
+
+ /// <summary>
+ /// Declares methods and events for implementing compressors/decompressors
+ /// </summary>
+ public interface Codec
+ {
+ /// <summary>
+ /// Occurs when more processed data are available.
+ /// </summary>
+ event DataAvailableHandler DataAvailable;
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ void Add(byte[] data);
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <param name="offset">The index of the first byte to add from <c>data</c></param>
+ /// <param name="count">The number of bytes to add</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ void Add(byte[] data, int offset, int count);
+
+ /// <summary>
+ /// Finishes up any pending data that needs to be processed and handled.
+ /// </summary>
+ void Finish();
+
+ /// <summary>
+ /// Gets the checksum of the data that has been added so far
+ /// </summary>
+ uint Checksum { get; }
+
+
+ }
+
+ #endregion
+
+ #region Classes
+ /// <summary>
+ /// Encapsulates general information about the ZLib library
+ /// </summary>
+ public class Info
+ {
+ #region DLL imports
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern uint zlibCompileFlags();
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern string zlibVersion();
+ #endregion
+
+ #region Private stuff
+ private uint _flags;
+
+ // helper function that unpacks a bitsize mask
+ private static int bitSize(uint bits)
+ {
+ switch (bits)
+ {
+ case 0: return 16;
+ case 1: return 32;
+ case 2: return 64;
+ }
+ return -1;
+ }
+ #endregion
+
+ /// <summary>
+ /// Constructs an instance of the <c>Info</c> class.
+ /// </summary>
+ public Info()
+ {
+ _flags = zlibCompileFlags();
+ }
+
+ /// <summary>
+ /// True if the library is compiled with debug info
+ /// </summary>
+ public bool HasDebugInfo { get { return 0 != (_flags & 0x100); } }
+
+ /// <summary>
+ /// True if the library is compiled with assembly optimizations
+ /// </summary>
+ public bool UsesAssemblyCode { get { return 0 != (_flags & 0x200); } }
+
+ /// <summary>
+ /// Gets the size of the unsigned int that was compiled into Zlib
+ /// </summary>
+ public int SizeOfUInt { get { return bitSize(_flags & 3); } }
+
+ /// <summary>
+ /// Gets the size of the unsigned long that was compiled into Zlib
+ /// </summary>
+ public int SizeOfULong { get { return bitSize((_flags >> 2) & 3); } }
+
+ /// <summary>
+ /// Gets the size of the pointers that were compiled into Zlib
+ /// </summary>
+ public int SizeOfPointer { get { return bitSize((_flags >> 4) & 3); } }
+
+ /// <summary>
+ /// Gets the size of the z_off_t type that was compiled into Zlib
+ /// </summary>
+ public int SizeOfOffset { get { return bitSize((_flags >> 6) & 3); } }
+
+ /// <summary>
+ /// Gets the version of ZLib as a string, e.g. "1.2.1"
+ /// </summary>
+ public static string Version { get { return zlibVersion(); } }
+ }
+
+ #endregion
+
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.csproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.csproj
new file mode 100644
index 000000000..dea7fb16a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/DotZLib.csproj
@@ -0,0 +1,141 @@
+<VisualStudioProject>
+ <CSHARP
+ ProjectType = "Local"
+ ProductVersion = "7.10.3077"
+ SchemaVersion = "2.0"
+ ProjectGuid = "{BB1EE0B1-1808-46CB-B786-949D91117FC5}"
+ >
+ <Build>
+ <Settings
+ ApplicationIcon = ""
+ AssemblyKeyContainerName = ""
+ AssemblyName = "DotZLib"
+ AssemblyOriginatorKeyFile = ""
+ DefaultClientScript = "JScript"
+ DefaultHTMLPageLayout = "Grid"
+ DefaultTargetSchema = "IE50"
+ DelaySign = "false"
+ OutputType = "Library"
+ PreBuildEvent = ""
+ PostBuildEvent = ""
+ RootNamespace = "DotZLib"
+ RunPostBuildEvent = "OnBuildSuccess"
+ StartupObject = ""
+ >
+ <Config
+ Name = "Debug"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "DEBUG;TRACE"
+ DocumentationFile = "docs\DotZLib.xml"
+ DebugSymbols = "true"
+ FileAlignment = "4096"
+ IncrementalBuild = "false"
+ NoStdLib = "false"
+ NoWarn = "1591"
+ Optimize = "false"
+ OutputPath = "bin\Debug\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ <Config
+ Name = "Release"
+ AllowUnsafeBlocks = "false"
+ BaseAddress = "285212672"
+ CheckForOverflowUnderflow = "false"
+ ConfigurationOverrideFile = ""
+ DefineConstants = "TRACE"
+ DocumentationFile = "docs\DotZLib.xml"
+ DebugSymbols = "false"
+ FileAlignment = "4096"
+ IncrementalBuild = "false"
+ NoStdLib = "false"
+ NoWarn = ""
+ Optimize = "true"
+ OutputPath = "bin\Release\"
+ RegisterForComInterop = "false"
+ RemoveIntegerChecks = "false"
+ TreatWarningsAsErrors = "false"
+ WarningLevel = "4"
+ />
+ </Settings>
+ <References>
+ <Reference
+ Name = "System"
+ AssemblyName = "System"
+ HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
+ />
+ <Reference
+ Name = "System.Data"
+ AssemblyName = "System.Data"
+ HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+ />
+ <Reference
+ Name = "System.XML"
+ AssemblyName = "System.Xml"
+ HintPath = "C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+ />
+ <Reference
+ Name = "nunit.framework"
+ AssemblyName = "nunit.framework"
+ HintPath = "E:\apps\NUnit V2.1\\bin\nunit.framework.dll"
+ AssemblyFolderKey = "hklm\dn\nunit.framework"
+ />
+ </References>
+ </Build>
+ <Files>
+ <Include>
+ <File
+ RelPath = "AssemblyInfo.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "ChecksumImpl.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "CircularBuffer.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "CodecBase.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Deflater.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "DotZLib.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "GZipStream.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Inflater.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "UnitTests.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ </Include>
+ </Files>
+ </CSHARP>
+</VisualStudioProject>
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/GZipStream.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/GZipStream.cs
new file mode 100644
index 000000000..f0eada1d2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/GZipStream.cs
@@ -0,0 +1,301 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+
+namespace DotZLib
+{
+ /// <summary>
+ /// Implements a compressed <see cref="Stream"/>, in GZip (.gz) format.
+ /// </summary>
+ public class GZipStream : Stream, IDisposable
+ {
+ #region Dll Imports
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
+ private static extern IntPtr gzopen(string name, string mode);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int gzclose(IntPtr gzFile);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int gzwrite(IntPtr gzFile, int data, int length);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int gzread(IntPtr gzFile, int data, int length);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int gzgetc(IntPtr gzFile);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int gzputc(IntPtr gzFile, int c);
+
+ #endregion
+
+ #region Private data
+ private IntPtr _gzFile;
+ private bool _isDisposed = false;
+ private bool _isWriting;
+ #endregion
+
+ #region Constructors
+ /// <summary>
+ /// Creates a new file as a writeable GZipStream
+ /// </summary>
+ /// <param name="fileName">The name of the compressed file to create</param>
+ /// <param name="level">The compression level to use when adding data</param>
+ /// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
+ public GZipStream(string fileName, CompressLevel level)
+ {
+ _isWriting = true;
+ _gzFile = gzopen(fileName, String.Format("wb{0}", (int)level));
+ if (_gzFile == IntPtr.Zero)
+ throw new ZLibException(-1, "Could not open " + fileName);
+ }
+
+ /// <summary>
+ /// Opens an existing file as a readable GZipStream
+ /// </summary>
+ /// <param name="fileName">The name of the file to open</param>
+ /// <exception cref="ZLibException">If an error occurred in the internal zlib function</exception>
+ public GZipStream(string fileName)
+ {
+ _isWriting = false;
+ _gzFile = gzopen(fileName, "rb");
+ if (_gzFile == IntPtr.Zero)
+ throw new ZLibException(-1, "Could not open " + fileName);
+
+ }
+ #endregion
+
+ #region Access properties
+ /// <summary>
+ /// Returns true of this stream can be read from, false otherwise
+ /// </summary>
+ public override bool CanRead
+ {
+ get
+ {
+ return !_isWriting;
+ }
+ }
+
+
+ /// <summary>
+ /// Returns false.
+ /// </summary>
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ /// <summary>
+ /// Returns true if this tsream is writeable, false otherwise
+ /// </summary>
+ public override bool CanWrite
+ {
+ get
+ {
+ return _isWriting;
+ }
+ }
+ #endregion
+
+ #region Destructor & IDispose stuff
+
+ /// <summary>
+ /// Destroys this instance
+ /// </summary>
+ ~GZipStream()
+ {
+ cleanUp(false);
+ }
+
+ /// <summary>
+ /// Closes the external file handle
+ /// </summary>
+ public void Dispose()
+ {
+ cleanUp(true);
+ }
+
+ // Does the actual closing of the file handle.
+ private void cleanUp(bool isDisposing)
+ {
+ if (!_isDisposed)
+ {
+ gzclose(_gzFile);
+ _isDisposed = true;
+ }
+ }
+ #endregion
+
+ #region Basic reading and writing
+ /// <summary>
+ /// Attempts to read a number of bytes from the stream.
+ /// </summary>
+ /// <param name="buffer">The destination data buffer</param>
+ /// <param name="offset">The index of the first destination byte in <c>buffer</c></param>
+ /// <param name="count">The number of bytes requested</param>
+ /// <returns>The number of bytes read</returns>
+ /// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
+ /// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
+ /// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
+ /// <exception cref="NotSupportedException">If this stream is not readable.</exception>
+ /// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ if (!CanRead) throw new NotSupportedException();
+ if (buffer == null) throw new ArgumentNullException();
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > buffer.Length) throw new ArgumentException();
+ if (_isDisposed) throw new ObjectDisposedException("GZipStream");
+
+ GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
+ int result;
+ try
+ {
+ result = gzread(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
+ if (result < 0)
+ throw new IOException();
+ }
+ finally
+ {
+ h.Free();
+ }
+ return result;
+ }
+
+ /// <summary>
+ /// Attempts to read a single byte from the stream.
+ /// </summary>
+ /// <returns>The byte that was read, or -1 in case of error or End-Of-File</returns>
+ public override int ReadByte()
+ {
+ if (!CanRead) throw new NotSupportedException();
+ if (_isDisposed) throw new ObjectDisposedException("GZipStream");
+ return gzgetc(_gzFile);
+ }
+
+ /// <summary>
+ /// Writes a number of bytes to the stream
+ /// </summary>
+ /// <param name="buffer"></param>
+ /// <param name="offset"></param>
+ /// <param name="count"></param>
+ /// <exception cref="ArgumentNullException">If <c>buffer</c> is null</exception>
+ /// <exception cref="ArgumentOutOfRangeException">If <c>count</c> or <c>offset</c> are negative</exception>
+ /// <exception cref="ArgumentException">If <c>offset</c> + <c>count</c> is &gt; buffer.Length</exception>
+ /// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
+ /// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ if (!CanWrite) throw new NotSupportedException();
+ if (buffer == null) throw new ArgumentNullException();
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > buffer.Length) throw new ArgumentException();
+ if (_isDisposed) throw new ObjectDisposedException("GZipStream");
+
+ GCHandle h = GCHandle.Alloc(buffer, GCHandleType.Pinned);
+ try
+ {
+ int result = gzwrite(_gzFile, h.AddrOfPinnedObject().ToInt32() + offset, count);
+ if (result < 0)
+ throw new IOException();
+ }
+ finally
+ {
+ h.Free();
+ }
+ }
+
+ /// <summary>
+ /// Writes a single byte to the stream
+ /// </summary>
+ /// <param name="value">The byte to add to the stream.</param>
+ /// <exception cref="NotSupportedException">If this stream is not writeable.</exception>
+ /// <exception cref="ObjectDisposedException">If this stream has been disposed.</exception>
+ public override void WriteByte(byte value)
+ {
+ if (!CanWrite) throw new NotSupportedException();
+ if (_isDisposed) throw new ObjectDisposedException("GZipStream");
+
+ int result = gzputc(_gzFile, (int)value);
+ if (result < 0)
+ throw new IOException();
+ }
+ #endregion
+
+ #region Position & length stuff
+ /// <summary>
+ /// Not supported.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <exception cref="NotSupportedException">Always thrown</exception>
+ public override void SetLength(long value)
+ {
+ throw new NotSupportedException();
+ }
+
+ /// <summary>
+ /// Not suppported.
+ /// </summary>
+ /// <param name="offset"></param>
+ /// <param name="origin"></param>
+ /// <returns></returns>
+ /// <exception cref="NotSupportedException">Always thrown</exception>
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotSupportedException();
+ }
+
+ /// <summary>
+ /// Flushes the <c>GZipStream</c>.
+ /// </summary>
+ /// <remarks>In this implementation, this method does nothing. This is because excessive
+ /// flushing may degrade the achievable compression rates.</remarks>
+ public override void Flush()
+ {
+ // left empty on purpose
+ }
+
+ /// <summary>
+ /// Gets/sets the current position in the <c>GZipStream</c>. Not suppported.
+ /// </summary>
+ /// <remarks>In this implementation this property is not supported</remarks>
+ /// <exception cref="NotSupportedException">Always thrown</exception>
+ public override long Position
+ {
+ get
+ {
+ throw new NotSupportedException();
+ }
+ set
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ /// <summary>
+ /// Gets the size of the stream. Not suppported.
+ /// </summary>
+ /// <remarks>In this implementation this property is not supported</remarks>
+ /// <exception cref="NotSupportedException">Always thrown</exception>
+ public override long Length
+ {
+ get
+ {
+ throw new NotSupportedException();
+ }
+ }
+ #endregion
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Inflater.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Inflater.cs
new file mode 100644
index 000000000..d295f2680
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/Inflater.cs
@@ -0,0 +1,105 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+
+namespace DotZLib
+{
+
+ /// <summary>
+ /// Implements a data decompressor, using the inflate algorithm in the ZLib dll
+ /// </summary>
+ public class Inflater : CodecBase
+ {
+ #region Dll imports
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Ansi)]
+ private static extern int inflateInit_(ref ZStream sz, string vs, int size);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int inflate(ref ZStream sz, int flush);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int inflateReset(ref ZStream sz);
+
+ [DllImport("ZLIB1.dll", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int inflateEnd(ref ZStream sz);
+ #endregion
+
+ /// <summary>
+ /// Constructs an new instance of the <c>Inflater</c>
+ /// </summary>
+ public Inflater() : base()
+ {
+ int retval = inflateInit_(ref _ztream, Info.Version, Marshal.SizeOf(_ztream));
+ if (retval != 0)
+ throw new ZLibException(retval, "Could not initialize inflater");
+
+ resetOutput();
+ }
+
+
+ /// <summary>
+ /// Adds more data to the codec to be processed.
+ /// </summary>
+ /// <param name="data">Byte array containing the data to be added to the codec</param>
+ /// <param name="offset">The index of the first byte to add from <c>data</c></param>
+ /// <param name="count">The number of bytes to add</param>
+ /// <remarks>Adding data may, or may not, raise the <c>DataAvailable</c> event</remarks>
+ public override void Add(byte[] data, int offset, int count)
+ {
+ if (data == null) throw new ArgumentNullException();
+ if (offset < 0 || count < 0) throw new ArgumentOutOfRangeException();
+ if ((offset+count) > data.Length) throw new ArgumentException();
+
+ int total = count;
+ int inputIndex = offset;
+ int err = 0;
+
+ while (err >= 0 && inputIndex < total)
+ {
+ copyInput(data, inputIndex, Math.Min(total - inputIndex, kBufferSize));
+ err = inflate(ref _ztream, (int)FlushTypes.None);
+ if (err == 0)
+ while (_ztream.avail_out == 0)
+ {
+ OnDataAvailable();
+ err = inflate(ref _ztream, (int)FlushTypes.None);
+ }
+
+ inputIndex += (int)_ztream.total_in;
+ }
+ setChecksum( _ztream.adler );
+ }
+
+
+ /// <summary>
+ /// Finishes up any pending data that needs to be processed and handled.
+ /// </summary>
+ public override void Finish()
+ {
+ int err;
+ do
+ {
+ err = inflate(ref _ztream, (int)FlushTypes.Finish);
+ OnDataAvailable();
+ }
+ while (err == 0);
+ setChecksum( _ztream.adler );
+ inflateReset(ref _ztream);
+ resetOutput();
+ }
+
+ /// <summary>
+ /// Closes the internal zlib inflate stream
+ /// </summary>
+ protected override void CleanUp() { inflateEnd(ref _ztream); }
+
+
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/UnitTests.cs b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/UnitTests.cs
new file mode 100644
index 000000000..6d8aebb79
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/DotZLib/UnitTests.cs
@@ -0,0 +1,274 @@
+//
+// © Copyright Henrik Ravn 2004
+//
+// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+using System;
+using System.Collections;
+using System.IO;
+
+// uncomment the define below to include unit tests
+//#define nunit
+#if nunit
+using NUnit.Framework;
+
+// Unit tests for the DotZLib class library
+// ----------------------------------------
+//
+// Use this with NUnit 2 from http://www.nunit.org
+//
+
+namespace DotZLibTests
+{
+ using DotZLib;
+
+ // helper methods
+ internal class Utils
+ {
+ public static bool byteArrEqual( byte[] lhs, byte[] rhs )
+ {
+ if (lhs.Length != rhs.Length)
+ return false;
+ for (int i = lhs.Length-1; i >= 0; --i)
+ if (lhs[i] != rhs[i])
+ return false;
+ return true;
+ }
+
+ }
+
+
+ [TestFixture]
+ public class CircBufferTests
+ {
+ #region Circular buffer tests
+ [Test]
+ public void SinglePutGet()
+ {
+ CircularBuffer buf = new CircularBuffer(10);
+ Assert.AreEqual( 0, buf.Size );
+ Assert.AreEqual( -1, buf.Get() );
+
+ Assert.IsTrue(buf.Put( 1 ));
+ Assert.AreEqual( 1, buf.Size );
+ Assert.AreEqual( 1, buf.Get() );
+ Assert.AreEqual( 0, buf.Size );
+ Assert.AreEqual( -1, buf.Get() );
+ }
+
+ [Test]
+ public void BlockPutGet()
+ {
+ CircularBuffer buf = new CircularBuffer(10);
+ byte[] arr = {1,2,3,4,5,6,7,8,9,10};
+ Assert.AreEqual( 10, buf.Put(arr,0,10) );
+ Assert.AreEqual( 10, buf.Size );
+ Assert.IsFalse( buf.Put(11) );
+ Assert.AreEqual( 1, buf.Get() );
+ Assert.IsTrue( buf.Put(11) );
+
+ byte[] arr2 = (byte[])arr.Clone();
+ Assert.AreEqual( 9, buf.Get(arr2,1,9) );
+ Assert.IsTrue( Utils.byteArrEqual(arr,arr2) );
+ }
+
+ #endregion
+ }
+
+ [TestFixture]
+ public class ChecksumTests
+ {
+ #region CRC32 Tests
+ [Test]
+ public void CRC32_Null()
+ {
+ CRC32Checksum crc32 = new CRC32Checksum();
+ Assert.AreEqual( 0, crc32.Value );
+
+ crc32 = new CRC32Checksum(1);
+ Assert.AreEqual( 1, crc32.Value );
+
+ crc32 = new CRC32Checksum(556);
+ Assert.AreEqual( 556, crc32.Value );
+ }
+
+ [Test]
+ public void CRC32_Data()
+ {
+ CRC32Checksum crc32 = new CRC32Checksum();
+ byte[] data = { 1,2,3,4,5,6,7 };
+ crc32.Update(data);
+ Assert.AreEqual( 0x70e46888, crc32.Value );
+
+ crc32 = new CRC32Checksum();
+ crc32.Update("penguin");
+ Assert.AreEqual( 0x0e5c1a120, crc32.Value );
+
+ crc32 = new CRC32Checksum(1);
+ crc32.Update("penguin");
+ Assert.AreEqual(0x43b6aa94, crc32.Value);
+
+ }
+ #endregion
+
+ #region Adler tests
+
+ [Test]
+ public void Adler_Null()
+ {
+ AdlerChecksum adler = new AdlerChecksum();
+ Assert.AreEqual(0, adler.Value);
+
+ adler = new AdlerChecksum(1);
+ Assert.AreEqual( 1, adler.Value );
+
+ adler = new AdlerChecksum(556);
+ Assert.AreEqual( 556, adler.Value );
+ }
+
+ [Test]
+ public void Adler_Data()
+ {
+ AdlerChecksum adler = new AdlerChecksum(1);
+ byte[] data = { 1,2,3,4,5,6,7 };
+ adler.Update(data);
+ Assert.AreEqual( 0x5b001d, adler.Value );
+
+ adler = new AdlerChecksum();
+ adler.Update("penguin");
+ Assert.AreEqual(0x0bcf02f6, adler.Value );
+
+ adler = new AdlerChecksum(1);
+ adler.Update("penguin");
+ Assert.AreEqual(0x0bd602f7, adler.Value);
+
+ }
+ #endregion
+ }
+
+ [TestFixture]
+ public class InfoTests
+ {
+ #region Info tests
+ [Test]
+ public void Info_Version()
+ {
+ Info info = new Info();
+ Assert.AreEqual("1.2.11", Info.Version);
+ Assert.AreEqual(32, info.SizeOfUInt);
+ Assert.AreEqual(32, info.SizeOfULong);
+ Assert.AreEqual(32, info.SizeOfPointer);
+ Assert.AreEqual(32, info.SizeOfOffset);
+ }
+ #endregion
+ }
+
+ [TestFixture]
+ public class DeflateInflateTests
+ {
+ #region Deflate tests
+ [Test]
+ public void Deflate_Init()
+ {
+ using (Deflater def = new Deflater(CompressLevel.Default))
+ {
+ }
+ }
+
+ private ArrayList compressedData = new ArrayList();
+ private uint adler1;
+
+ private ArrayList uncompressedData = new ArrayList();
+ private uint adler2;
+
+ public void CDataAvail(byte[] data, int startIndex, int count)
+ {
+ for (int i = 0; i < count; ++i)
+ compressedData.Add(data[i+startIndex]);
+ }
+
+ [Test]
+ public void Deflate_Compress()
+ {
+ compressedData.Clear();
+
+ byte[] testData = new byte[35000];
+ for (int i = 0; i < testData.Length; ++i)
+ testData[i] = 5;
+
+ using (Deflater def = new Deflater((CompressLevel)5))
+ {
+ def.DataAvailable += new DataAvailableHandler(CDataAvail);
+ def.Add(testData);
+ def.Finish();
+ adler1 = def.Checksum;
+ }
+ }
+ #endregion
+
+ #region Inflate tests
+ [Test]
+ public void Inflate_Init()
+ {
+ using (Inflater inf = new Inflater())
+ {
+ }
+ }
+
+ private void DDataAvail(byte[] data, int startIndex, int count)
+ {
+ for (int i = 0; i < count; ++i)
+ uncompressedData.Add(data[i+startIndex]);
+ }
+
+ [Test]
+ public void Inflate_Expand()
+ {
+ uncompressedData.Clear();
+
+ using (Inflater inf = new Inflater())
+ {
+ inf.DataAvailable += new DataAvailableHandler(DDataAvail);
+ inf.Add((byte[])compressedData.ToArray(typeof(byte)));
+ inf.Finish();
+ adler2 = inf.Checksum;
+ }
+ Assert.AreEqual( adler1, adler2 );
+ }
+ #endregion
+ }
+
+ [TestFixture]
+ public class GZipStreamTests
+ {
+ #region GZipStream test
+ [Test]
+ public void GZipStream_WriteRead()
+ {
+ using (GZipStream gzOut = new GZipStream("gzstream.gz", CompressLevel.Best))
+ {
+ BinaryWriter writer = new BinaryWriter(gzOut);
+ writer.Write("hi there");
+ writer.Write(Math.PI);
+ writer.Write(42);
+ }
+
+ using (GZipStream gzIn = new GZipStream("gzstream.gz"))
+ {
+ BinaryReader reader = new BinaryReader(gzIn);
+ string s = reader.ReadString();
+ Assert.AreEqual("hi there",s);
+ double d = reader.ReadDouble();
+ Assert.AreEqual(Math.PI, d);
+ int i = reader.ReadInt32();
+ Assert.AreEqual(42,i);
+ }
+
+ }
+ #endregion
+ }
+}
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/LICENSE_1_0.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/LICENSE_1_0.txt
new file mode 100644
index 000000000..127a5bc39
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/LICENSE_1_0.txt
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/readme.txt
new file mode 100644
index 000000000..4d8c2dd93
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/dotzlib/readme.txt
@@ -0,0 +1,58 @@
+This directory contains a .Net wrapper class library for the ZLib1.dll
+
+The wrapper includes support for inflating/deflating memory buffers,
+.Net streaming wrappers for the gz streams part of zlib, and wrappers
+for the checksum parts of zlib. See DotZLib/UnitTests.cs for examples.
+
+Directory structure:
+--------------------
+
+LICENSE_1_0.txt - License file.
+readme.txt - This file.
+DotZLib.chm - Class library documentation
+DotZLib.build - NAnt build file
+DotZLib.sln - Microsoft Visual Studio 2003 solution file
+
+DotZLib\*.cs - Source files for the class library
+
+Unit tests:
+-----------
+The file DotZLib/UnitTests.cs contains unit tests for use with NUnit 2.1 or higher.
+To include unit tests in the build, define nunit before building.
+
+
+Build instructions:
+-------------------
+
+1. Using Visual Studio.Net 2003:
+ Open DotZLib.sln in VS.Net and build from there. Output file (DotZLib.dll)
+ will be found ./DotZLib/bin/release or ./DotZLib/bin/debug, depending on
+ you are building the release or debug version of the library. Check
+ DotZLib/UnitTests.cs for instructions on how to include unit tests in the
+ build.
+
+2. Using NAnt:
+ Open a command prompt with access to the build environment and run nant
+ in the same directory as the DotZLib.build file.
+ You can define 2 properties on the nant command-line to control the build:
+ debug={true|false} to toggle between release/debug builds (default=true).
+ nunit={true|false} to include or esclude unit tests (default=true).
+ Also the target clean will remove binaries.
+ Output file (DotZLib.dll) will be found in either ./DotZLib/bin/release
+ or ./DotZLib/bin/debug, depending on whether you are building the release
+ or debug version of the library.
+
+ Examples:
+ nant -D:debug=false -D:nunit=false
+ will build a release mode version of the library without unit tests.
+ nant
+ will build a debug version of the library with unit tests
+ nant clean
+ will remove all previously built files.
+
+
+---------------------------------
+Copyright (c) Henrik Ravn 2004
+
+Use, modification and distribution are subject to the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/gcc_gvmat64/gvmat64.S b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/gcc_gvmat64/gvmat64.S
new file mode 100644
index 000000000..23309fa28
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/gcc_gvmat64/gvmat64.S
@@ -0,0 +1,574 @@
+/*
+;uInt longest_match_x64(
+; deflate_state *s,
+; IPos cur_match); // current match
+
+; gvmat64.S -- Asm portion of the optimized longest_match for 32 bits x86_64
+; (AMD64 on Athlon 64, Opteron, Phenom
+; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7)
+; this file is translation from gvmat64.asm to GCC 4.x (for Linux, Mac XCode)
+; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
+;
+; File written by Gilles Vollant, by converting to assembly the longest_match
+; from Jean-loup Gailly in deflate.c of zLib and infoZip zip.
+; and by taking inspiration on asm686 with masm, optimised assembly code
+; from Brian Raiter, written 1998
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Permission is granted to anyone to use this software for any purpose,
+; including commercial applications, and to alter it and redistribute it
+; freely, subject to the following restrictions:
+;
+; 1. The origin of this software must not be misrepresented; you must not
+; claim that you wrote the original software. If you use this software
+; in a product, an acknowledgment in the product documentation would be
+; appreciated but is not required.
+; 2. Altered source versions must be plainly marked as such, and must not be
+; misrepresented as being the original software
+; 3. This notice may not be removed or altered from any source distribution.
+;
+; http://www.zlib.net
+; http://www.winimage.com/zLibDll
+; http://www.muppetlabs.com/~breadbox/software/assembly.html
+;
+; to compile this file for zLib, I use option:
+; gcc -c -arch x86_64 gvmat64.S
+
+
+;uInt longest_match(s, cur_match)
+; deflate_state *s;
+; IPos cur_match; // current match /
+;
+; with XCode for Mac, I had strange error with some jump on intel syntax
+; this is why BEFORE_JMP and AFTER_JMP are used
+ */
+
+
+#define BEFORE_JMP .att_syntax
+#define AFTER_JMP .intel_syntax noprefix
+
+#ifndef NO_UNDERLINE
+# define match_init _match_init
+# define longest_match _longest_match
+#endif
+
+.intel_syntax noprefix
+
+.globl match_init, longest_match
+.text
+longest_match:
+
+
+
+#define LocalVarsSize 96
+/*
+; register used : rax,rbx,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12
+; free register : r14,r15
+; register can be saved : rsp
+*/
+
+#define chainlenwmask (rsp + 8 - LocalVarsSize)
+#define nicematch (rsp + 16 - LocalVarsSize)
+
+#define save_rdi (rsp + 24 - LocalVarsSize)
+#define save_rsi (rsp + 32 - LocalVarsSize)
+#define save_rbx (rsp + 40 - LocalVarsSize)
+#define save_rbp (rsp + 48 - LocalVarsSize)
+#define save_r12 (rsp + 56 - LocalVarsSize)
+#define save_r13 (rsp + 64 - LocalVarsSize)
+#define save_r14 (rsp + 72 - LocalVarsSize)
+#define save_r15 (rsp + 80 - LocalVarsSize)
+
+
+/*
+; all the +4 offsets are due to the addition of pending_buf_size (in zlib
+; in the deflate_state structure since the asm code was first written
+; (if you compile with zlib 1.0.4 or older, remove the +4).
+; Note : these value are good with a 8 bytes boundary pack structure
+*/
+
+#define MAX_MATCH 258
+#define MIN_MATCH 3
+#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
+
+/*
+;;; Offsets for fields in the deflate_state structure. These numbers
+;;; are calculated from the definition of deflate_state, with the
+;;; assumption that the compiler will dword-align the fields. (Thus,
+;;; changing the definition of deflate_state could easily cause this
+;;; program to crash horribly, without so much as a warning at
+;;; compile time. Sigh.)
+
+; all the +zlib1222add offsets are due to the addition of fields
+; in zlib in the deflate_state structure since the asm code was first written
+; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
+; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
+; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
+*/
+
+
+
+/* you can check the structure offset by running
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "deflate.h"
+
+void print_depl()
+{
+deflate_state ds;
+deflate_state *s=&ds;
+printf("size pointer=%u\n",(int)sizeof(void*));
+
+printf("#define dsWSize %u\n",(int)(((char*)&(s->w_size))-((char*)s)));
+printf("#define dsWMask %u\n",(int)(((char*)&(s->w_mask))-((char*)s)));
+printf("#define dsWindow %u\n",(int)(((char*)&(s->window))-((char*)s)));
+printf("#define dsPrev %u\n",(int)(((char*)&(s->prev))-((char*)s)));
+printf("#define dsMatchLen %u\n",(int)(((char*)&(s->match_length))-((char*)s)));
+printf("#define dsPrevMatch %u\n",(int)(((char*)&(s->prev_match))-((char*)s)));
+printf("#define dsStrStart %u\n",(int)(((char*)&(s->strstart))-((char*)s)));
+printf("#define dsMatchStart %u\n",(int)(((char*)&(s->match_start))-((char*)s)));
+printf("#define dsLookahead %u\n",(int)(((char*)&(s->lookahead))-((char*)s)));
+printf("#define dsPrevLen %u\n",(int)(((char*)&(s->prev_length))-((char*)s)));
+printf("#define dsMaxChainLen %u\n",(int)(((char*)&(s->max_chain_length))-((char*)s)));
+printf("#define dsGoodMatch %u\n",(int)(((char*)&(s->good_match))-((char*)s)));
+printf("#define dsNiceMatch %u\n",(int)(((char*)&(s->nice_match))-((char*)s)));
+}
+*/
+
+#define dsWSize 68
+#define dsWMask 76
+#define dsWindow 80
+#define dsPrev 96
+#define dsMatchLen 144
+#define dsPrevMatch 148
+#define dsStrStart 156
+#define dsMatchStart 160
+#define dsLookahead 164
+#define dsPrevLen 168
+#define dsMaxChainLen 172
+#define dsGoodMatch 188
+#define dsNiceMatch 192
+
+#define window_size [ rcx + dsWSize]
+#define WMask [ rcx + dsWMask]
+#define window_ad [ rcx + dsWindow]
+#define prev_ad [ rcx + dsPrev]
+#define strstart [ rcx + dsStrStart]
+#define match_start [ rcx + dsMatchStart]
+#define Lookahead [ rcx + dsLookahead] //; 0ffffffffh on infozip
+#define prev_length [ rcx + dsPrevLen]
+#define max_chain_length [ rcx + dsMaxChainLen]
+#define good_match [ rcx + dsGoodMatch]
+#define nice_match [ rcx + dsNiceMatch]
+
+/*
+; windows:
+; parameter 1 in rcx(deflate state s), param 2 in rdx (cur match)
+
+; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and
+; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp
+;
+; All registers must be preserved across the call, except for
+; rax, rcx, rdx, r8, r9, r10, and r11, which are scratch.
+
+;
+; gcc on macosx-linux:
+; see http://www.x86-64.org/documentation/abi-0.99.pdf
+; param 1 in rdi, param 2 in rsi
+; rbx, rsp, rbp, r12 to r15 must be preserved
+
+;;; Save registers that the compiler may be using, and adjust esp to
+;;; make room for our stack frame.
+
+
+;;; Retrieve the function arguments. r8d will hold cur_match
+;;; throughout the entire function. edx will hold the pointer to the
+;;; deflate_state structure during the function's setup (before
+;;; entering the main loop.
+
+; ms: parameter 1 in rcx (deflate_state* s), param 2 in edx -> r8 (cur match)
+; mac: param 1 in rdi, param 2 rsi
+; this clear high 32 bits of r8, which can be garbage in both r8 and rdx
+*/
+ mov [save_rbx],rbx
+ mov [save_rbp],rbp
+
+
+ mov rcx,rdi
+
+ mov r8d,esi
+
+
+ mov [save_r12],r12
+ mov [save_r13],r13
+ mov [save_r14],r14
+ mov [save_r15],r15
+
+
+//;;; uInt wmask = s->w_mask;
+//;;; unsigned chain_length = s->max_chain_length;
+//;;; if (s->prev_length >= s->good_match) {
+//;;; chain_length >>= 2;
+//;;; }
+
+
+ mov edi, prev_length
+ mov esi, good_match
+ mov eax, WMask
+ mov ebx, max_chain_length
+ cmp edi, esi
+ jl LastMatchGood
+ shr ebx, 2
+LastMatchGood:
+
+//;;; chainlen is decremented once beforehand so that the function can
+//;;; use the sign flag instead of the zero flag for the exit test.
+//;;; It is then shifted into the high word, to make room for the wmask
+//;;; value, which it will always accompany.
+
+ dec ebx
+ shl ebx, 16
+ or ebx, eax
+
+//;;; on zlib only
+//;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
+
+
+
+ mov eax, nice_match
+ mov [chainlenwmask], ebx
+ mov r10d, Lookahead
+ cmp r10d, eax
+ cmovnl r10d, eax
+ mov [nicematch],r10d
+
+
+
+//;;; register Bytef *scan = s->window + s->strstart;
+ mov r10, window_ad
+ mov ebp, strstart
+ lea r13, [r10 + rbp]
+
+//;;; Determine how many bytes the scan ptr is off from being
+//;;; dword-aligned.
+
+ mov r9,r13
+ neg r13
+ and r13,3
+
+//;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
+//;;; s->strstart - (IPos)MAX_DIST(s) : NIL;
+
+
+ mov eax, window_size
+ sub eax, MIN_LOOKAHEAD
+
+
+ xor edi,edi
+ sub ebp, eax
+
+ mov r11d, prev_length
+
+ cmovng ebp,edi
+
+//;;; int best_len = s->prev_length;
+
+
+//;;; Store the sum of s->window + best_len in esi locally, and in esi.
+
+ lea rsi,[r10+r11]
+
+//;;; register ush scan_start = *(ushf*)scan;
+//;;; register ush scan_end = *(ushf*)(scan+best_len-1);
+//;;; Posf *prev = s->prev;
+
+ movzx r12d,word ptr [r9]
+ movzx ebx, word ptr [r9 + r11 - 1]
+
+ mov rdi, prev_ad
+
+//;;; Jump into the main loop.
+
+ mov edx, [chainlenwmask]
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ jz LookupLoopIsZero
+
+
+
+LookupLoop1:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ jbe LeaveNow
+
+
+
+ sub edx, 0x00010000
+ BEFORE_JMP
+ js LeaveNow
+ AFTER_JMP
+
+LoopEntry1:
+ cmp bx,word ptr [rsi + r8 - 1]
+ BEFORE_JMP
+ jz LookupLoopIsZero
+ AFTER_JMP
+
+LookupLoop2:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ BEFORE_JMP
+ jbe LeaveNow
+ AFTER_JMP
+ sub edx, 0x00010000
+ BEFORE_JMP
+ js LeaveNow
+ AFTER_JMP
+
+LoopEntry2:
+ cmp bx,word ptr [rsi + r8 - 1]
+ BEFORE_JMP
+ jz LookupLoopIsZero
+ AFTER_JMP
+
+LookupLoop4:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ BEFORE_JMP
+ jbe LeaveNow
+ AFTER_JMP
+ sub edx, 0x00010000
+ BEFORE_JMP
+ js LeaveNow
+ AFTER_JMP
+
+LoopEntry4:
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ BEFORE_JMP
+ jnz LookupLoop1
+ jmp LookupLoopIsZero
+ AFTER_JMP
+/*
+;;; do {
+;;; match = s->window + cur_match;
+;;; if (*(ushf*)(match+best_len-1) != scan_end ||
+;;; *(ushf*)match != scan_start) continue;
+;;; [...]
+;;; } while ((cur_match = prev[cur_match & wmask]) > limit
+;;; && --chain_length != 0);
+;;;
+;;; Here is the inner loop of the function. The function will spend the
+;;; majority of its time in this loop, and majority of that time will
+;;; be spent in the first ten instructions.
+;;;
+;;; Within this loop:
+;;; ebx = scanend
+;;; r8d = curmatch
+;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
+;;; esi = windowbestlen - i.e., (window + bestlen)
+;;; edi = prev
+;;; ebp = limit
+*/
+.balign 16
+LookupLoop:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ BEFORE_JMP
+ jbe LeaveNow
+ AFTER_JMP
+ sub edx, 0x00010000
+ BEFORE_JMP
+ js LeaveNow
+ AFTER_JMP
+
+LoopEntry:
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ BEFORE_JMP
+ jnz LookupLoop1
+ AFTER_JMP
+LookupLoopIsZero:
+ cmp r12w, word ptr [r10 + r8]
+ BEFORE_JMP
+ jnz LookupLoop1
+ AFTER_JMP
+
+
+//;;; Store the current value of chainlen.
+ mov [chainlenwmask], edx
+/*
+;;; Point edi to the string under scrutiny, and esi to the string we
+;;; are hoping to match it up with. In actuality, esi and edi are
+;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
+;;; initialized to -(MAX_MATCH_8 - scanalign).
+*/
+ lea rsi,[r8+r10]
+ mov rdx, 0xfffffffffffffef8 //; -(MAX_MATCH_8)
+ lea rsi, [rsi + r13 + 0x0108] //;MAX_MATCH_8]
+ lea rdi, [r9 + r13 + 0x0108] //;MAX_MATCH_8]
+
+ prefetcht1 [rsi+rdx]
+ prefetcht1 [rdi+rdx]
+
+/*
+;;; Test the strings for equality, 8 bytes at a time. At the end,
+;;; adjust rdx so that it is offset to the exact byte that mismatched.
+;;;
+;;; We already know at this point that the first three bytes of the
+;;; strings match each other, and they can be safely passed over before
+;;; starting the compare loop. So what this code does is skip over 0-3
+;;; bytes, as much as necessary in order to dword-align the edi
+;;; pointer. (rsi will still be misaligned three times out of four.)
+;;;
+;;; It should be confessed that this loop usually does not represent
+;;; much of the total running time. Replacing it with a more
+;;; straightforward "rep cmpsb" would not drastically degrade
+;;; performance.
+*/
+
+LoopCmps:
+ mov rax, [rsi + rdx]
+ xor rax, [rdi + rdx]
+ jnz LeaveLoopCmps
+
+ mov rax, [rsi + rdx + 8]
+ xor rax, [rdi + rdx + 8]
+ jnz LeaveLoopCmps8
+
+
+ mov rax, [rsi + rdx + 8+8]
+ xor rax, [rdi + rdx + 8+8]
+ jnz LeaveLoopCmps16
+
+ add rdx,8+8+8
+
+ BEFORE_JMP
+ jnz LoopCmps
+ jmp LenMaximum
+ AFTER_JMP
+
+LeaveLoopCmps16: add rdx,8
+LeaveLoopCmps8: add rdx,8
+LeaveLoopCmps:
+
+ test eax, 0x0000FFFF
+ jnz LenLower
+
+ test eax,0xffffffff
+
+ jnz LenLower32
+
+ add rdx,4
+ shr rax,32
+ or ax,ax
+ BEFORE_JMP
+ jnz LenLower
+ AFTER_JMP
+
+LenLower32:
+ shr eax,16
+ add rdx,2
+
+LenLower:
+ sub al, 1
+ adc rdx, 0
+//;;; Calculate the length of the match. If it is longer than MAX_MATCH,
+//;;; then automatically accept it as the best possible match and leave.
+
+ lea rax, [rdi + rdx]
+ sub rax, r9
+ cmp eax, MAX_MATCH
+ BEFORE_JMP
+ jge LenMaximum
+ AFTER_JMP
+/*
+;;; If the length of the match is not longer than the best match we
+;;; have so far, then forget it and return to the lookup loop.
+;///////////////////////////////////
+*/
+ cmp eax, r11d
+ jg LongerMatch
+
+ lea rsi,[r10+r11]
+
+ mov rdi, prev_ad
+ mov edx, [chainlenwmask]
+ BEFORE_JMP
+ jmp LookupLoop
+ AFTER_JMP
+/*
+;;; s->match_start = cur_match;
+;;; best_len = len;
+;;; if (len >= nice_match) break;
+;;; scan_end = *(ushf*)(scan+best_len-1);
+*/
+LongerMatch:
+ mov r11d, eax
+ mov match_start, r8d
+ cmp eax, [nicematch]
+ BEFORE_JMP
+ jge LeaveNow
+ AFTER_JMP
+
+ lea rsi,[r10+rax]
+
+ movzx ebx, word ptr [r9 + rax - 1]
+ mov rdi, prev_ad
+ mov edx, [chainlenwmask]
+ BEFORE_JMP
+ jmp LookupLoop
+ AFTER_JMP
+
+//;;; Accept the current string, with the maximum possible length.
+
+LenMaximum:
+ mov r11d,MAX_MATCH
+ mov match_start, r8d
+
+//;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
+//;;; return s->lookahead;
+
+LeaveNow:
+ mov eax, Lookahead
+ cmp r11d, eax
+ cmovng eax, r11d
+
+
+
+//;;; Restore the stack and return from whence we came.
+
+
+// mov rsi,[save_rsi]
+// mov rdi,[save_rdi]
+ mov rbx,[save_rbx]
+ mov rbp,[save_rbp]
+ mov r12,[save_r12]
+ mov r13,[save_r13]
+ mov r14,[save_r14]
+ mov r15,[save_r15]
+
+
+ ret 0
+//; please don't remove this string !
+//; Your can freely use gvmat64 in any free or commercial app
+//; but it is far better don't remove the string in the binary!
+ // db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998, converted to amd 64 by Gilles Vollant 2005",0dh,0ah,0
+
+
+match_init:
+ ret 0
+
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/README
new file mode 100644
index 000000000..e75ed1329
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/README
@@ -0,0 +1 @@
+See infback9.h for what this is and how to use it.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.c
new file mode 100644
index 000000000..05fb3e338
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.c
@@ -0,0 +1,615 @@
+/* infback9.c -- inflate deflate64 data using a call-back interface
+ * Copyright (C) 1995-2008 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "zutil.h"
+#include "infback9.h"
+#include "inftree9.h"
+#include "inflate9.h"
+
+#define WSIZE 65536UL
+
+/*
+ strm provides memory allocation functions in zalloc and zfree, or
+ Z_NULL to use the library memory allocation functions.
+
+ window is a user-supplied window and output buffer that is 64K bytes.
+ */
+int ZEXPORT inflateBack9Init_(strm, window, version, stream_size)
+z_stream FAR *strm;
+unsigned char FAR *window;
+const char *version;
+int stream_size;
+{
+ struct inflate_state FAR *state;
+
+ if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
+ stream_size != (int)(sizeof(z_stream)))
+ return Z_VERSION_ERROR;
+ if (strm == Z_NULL || window == Z_NULL)
+ return Z_STREAM_ERROR;
+ strm->msg = Z_NULL; /* in case we return an error */
+ if (strm->zalloc == (alloc_func)0) {
+ strm->zalloc = zcalloc;
+ strm->opaque = (voidpf)0;
+ }
+ if (strm->zfree == (free_func)0) strm->zfree = zcfree;
+ state = (struct inflate_state FAR *)ZALLOC(strm, 1,
+ sizeof(struct inflate_state));
+ if (state == Z_NULL) return Z_MEM_ERROR;
+ Tracev((stderr, "inflate: allocated\n"));
+ strm->state = (voidpf)state;
+ state->window = window;
+ return Z_OK;
+}
+
+/*
+ Build and output length and distance decoding tables for fixed code
+ decoding.
+ */
+#ifdef MAKEFIXED
+#include <stdio.h>
+
+void makefixed9(void)
+{
+ unsigned sym, bits, low, size;
+ code *next, *lenfix, *distfix;
+ struct inflate_state state;
+ code fixed[544];
+
+ /* literal/length table */
+ sym = 0;
+ while (sym < 144) state.lens[sym++] = 8;
+ while (sym < 256) state.lens[sym++] = 9;
+ while (sym < 280) state.lens[sym++] = 7;
+ while (sym < 288) state.lens[sym++] = 8;
+ next = fixed;
+ lenfix = next;
+ bits = 9;
+ inflate_table9(LENS, state.lens, 288, &(next), &(bits), state.work);
+
+ /* distance table */
+ sym = 0;
+ while (sym < 32) state.lens[sym++] = 5;
+ distfix = next;
+ bits = 5;
+ inflate_table9(DISTS, state.lens, 32, &(next), &(bits), state.work);
+
+ /* write tables */
+ puts(" /* inffix9.h -- table for decoding deflate64 fixed codes");
+ puts(" * Generated automatically by makefixed9().");
+ puts(" */");
+ puts("");
+ puts(" /* WARNING: this file should *not* be used by applications.");
+ puts(" It is part of the implementation of this library and is");
+ puts(" subject to change. Applications should only use zlib.h.");
+ puts(" */");
+ puts("");
+ size = 1U << 9;
+ printf(" static const code lenfix[%u] = {", size);
+ low = 0;
+ for (;;) {
+ if ((low % 6) == 0) printf("\n ");
+ printf("{%u,%u,%d}", lenfix[low].op, lenfix[low].bits,
+ lenfix[low].val);
+ if (++low == size) break;
+ putchar(',');
+ }
+ puts("\n };");
+ size = 1U << 5;
+ printf("\n static const code distfix[%u] = {", size);
+ low = 0;
+ for (;;) {
+ if ((low % 5) == 0) printf("\n ");
+ printf("{%u,%u,%d}", distfix[low].op, distfix[low].bits,
+ distfix[low].val);
+ if (++low == size) break;
+ putchar(',');
+ }
+ puts("\n };");
+}
+#endif /* MAKEFIXED */
+
+/* Macros for inflateBack(): */
+
+/* Clear the input bit accumulator */
+#define INITBITS() \
+ do { \
+ hold = 0; \
+ bits = 0; \
+ } while (0)
+
+/* Assure that some input is available. If input is requested, but denied,
+ then return a Z_BUF_ERROR from inflateBack(). */
+#define PULL() \
+ do { \
+ if (have == 0) { \
+ have = in(in_desc, &next); \
+ if (have == 0) { \
+ next = Z_NULL; \
+ ret = Z_BUF_ERROR; \
+ goto inf_leave; \
+ } \
+ } \
+ } while (0)
+
+/* Get a byte of input into the bit accumulator, or return from inflateBack()
+ with an error if there is no input available. */
+#define PULLBYTE() \
+ do { \
+ PULL(); \
+ have--; \
+ hold += (unsigned long)(*next++) << bits; \
+ bits += 8; \
+ } while (0)
+
+/* Assure that there are at least n bits in the bit accumulator. If there is
+ not enough available input to do that, then return from inflateBack() with
+ an error. */
+#define NEEDBITS(n) \
+ do { \
+ while (bits < (unsigned)(n)) \
+ PULLBYTE(); \
+ } while (0)
+
+/* Return the low n bits of the bit accumulator (n <= 16) */
+#define BITS(n) \
+ ((unsigned)hold & ((1U << (n)) - 1))
+
+/* Remove n bits from the bit accumulator */
+#define DROPBITS(n) \
+ do { \
+ hold >>= (n); \
+ bits -= (unsigned)(n); \
+ } while (0)
+
+/* Remove zero to seven bits as needed to go to a byte boundary */
+#define BYTEBITS() \
+ do { \
+ hold >>= bits & 7; \
+ bits -= bits & 7; \
+ } while (0)
+
+/* Assure that some output space is available, by writing out the window
+ if it's full. If the write fails, return from inflateBack() with a
+ Z_BUF_ERROR. */
+#define ROOM() \
+ do { \
+ if (left == 0) { \
+ put = window; \
+ left = WSIZE; \
+ wrap = 1; \
+ if (out(out_desc, put, (unsigned)left)) { \
+ ret = Z_BUF_ERROR; \
+ goto inf_leave; \
+ } \
+ } \
+ } while (0)
+
+/*
+ strm provides the memory allocation functions and window buffer on input,
+ and provides information on the unused input on return. For Z_DATA_ERROR
+ returns, strm will also provide an error message.
+
+ in() and out() are the call-back input and output functions. When
+ inflateBack() needs more input, it calls in(). When inflateBack() has
+ filled the window with output, or when it completes with data in the
+ window, it calls out() to write out the data. The application must not
+ change the provided input until in() is called again or inflateBack()
+ returns. The application must not change the window/output buffer until
+ inflateBack() returns.
+
+ in() and out() are called with a descriptor parameter provided in the
+ inflateBack() call. This parameter can be a structure that provides the
+ information required to do the read or write, as well as accumulated
+ information on the input and output such as totals and check values.
+
+ in() should return zero on failure. out() should return non-zero on
+ failure. If either in() or out() fails, than inflateBack() returns a
+ Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
+ was in() or out() that caused in the error. Otherwise, inflateBack()
+ returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
+ error, or Z_MEM_ERROR if it could not allocate memory for the state.
+ inflateBack() can also return Z_STREAM_ERROR if the input parameters
+ are not correct, i.e. strm is Z_NULL or the state was not initialized.
+ */
+int ZEXPORT inflateBack9(strm, in, in_desc, out, out_desc)
+z_stream FAR *strm;
+in_func in;
+void FAR *in_desc;
+out_func out;
+void FAR *out_desc;
+{
+ struct inflate_state FAR *state;
+ z_const unsigned char FAR *next; /* next input */
+ unsigned char FAR *put; /* next output */
+ unsigned have; /* available input */
+ unsigned long left; /* available output */
+ inflate_mode mode; /* current inflate mode */
+ int lastblock; /* true if processing last block */
+ int wrap; /* true if the window has wrapped */
+ unsigned char FAR *window; /* allocated sliding window, if needed */
+ unsigned long hold; /* bit buffer */
+ unsigned bits; /* bits in bit buffer */
+ unsigned extra; /* extra bits needed */
+ unsigned long length; /* literal or length of data to copy */
+ unsigned long offset; /* distance back to copy string from */
+ unsigned long copy; /* number of stored or match bytes to copy */
+ unsigned char FAR *from; /* where to copy match bytes from */
+ code const FAR *lencode; /* starting table for length/literal codes */
+ code const FAR *distcode; /* starting table for distance codes */
+ unsigned lenbits; /* index bits for lencode */
+ unsigned distbits; /* index bits for distcode */
+ code here; /* current decoding table entry */
+ code last; /* parent table entry */
+ unsigned len; /* length to copy for repeats, bits to drop */
+ int ret; /* return code */
+ static const unsigned short order[19] = /* permutation of code lengths */
+ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
+#include "inffix9.h"
+
+ /* Check that the strm exists and that the state was initialized */
+ if (strm == Z_NULL || strm->state == Z_NULL)
+ return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+
+ /* Reset the state */
+ strm->msg = Z_NULL;
+ mode = TYPE;
+ lastblock = 0;
+ wrap = 0;
+ window = state->window;
+ next = strm->next_in;
+ have = next != Z_NULL ? strm->avail_in : 0;
+ hold = 0;
+ bits = 0;
+ put = window;
+ left = WSIZE;
+ lencode = Z_NULL;
+ distcode = Z_NULL;
+
+ /* Inflate until end of block marked as last */
+ for (;;)
+ switch (mode) {
+ case TYPE:
+ /* determine and dispatch block type */
+ if (lastblock) {
+ BYTEBITS();
+ mode = DONE;
+ break;
+ }
+ NEEDBITS(3);
+ lastblock = BITS(1);
+ DROPBITS(1);
+ switch (BITS(2)) {
+ case 0: /* stored block */
+ Tracev((stderr, "inflate: stored block%s\n",
+ lastblock ? " (last)" : ""));
+ mode = STORED;
+ break;
+ case 1: /* fixed block */
+ lencode = lenfix;
+ lenbits = 9;
+ distcode = distfix;
+ distbits = 5;
+ Tracev((stderr, "inflate: fixed codes block%s\n",
+ lastblock ? " (last)" : ""));
+ mode = LEN; /* decode codes */
+ break;
+ case 2: /* dynamic block */
+ Tracev((stderr, "inflate: dynamic codes block%s\n",
+ lastblock ? " (last)" : ""));
+ mode = TABLE;
+ break;
+ case 3:
+ strm->msg = (char *)"invalid block type";
+ mode = BAD;
+ }
+ DROPBITS(2);
+ break;
+
+ case STORED:
+ /* get and verify stored block length */
+ BYTEBITS(); /* go to byte boundary */
+ NEEDBITS(32);
+ if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
+ strm->msg = (char *)"invalid stored block lengths";
+ mode = BAD;
+ break;
+ }
+ length = (unsigned)hold & 0xffff;
+ Tracev((stderr, "inflate: stored length %lu\n",
+ length));
+ INITBITS();
+
+ /* copy stored block from input to output */
+ while (length != 0) {
+ copy = length;
+ PULL();
+ ROOM();
+ if (copy > have) copy = have;
+ if (copy > left) copy = left;
+ zmemcpy(put, next, copy);
+ have -= copy;
+ next += copy;
+ left -= copy;
+ put += copy;
+ length -= copy;
+ }
+ Tracev((stderr, "inflate: stored end\n"));
+ mode = TYPE;
+ break;
+
+ case TABLE:
+ /* get dynamic table entries descriptor */
+ NEEDBITS(14);
+ state->nlen = BITS(5) + 257;
+ DROPBITS(5);
+ state->ndist = BITS(5) + 1;
+ DROPBITS(5);
+ state->ncode = BITS(4) + 4;
+ DROPBITS(4);
+ if (state->nlen > 286) {
+ strm->msg = (char *)"too many length symbols";
+ mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: table sizes ok\n"));
+
+ /* get code length code lengths (not a typo) */
+ state->have = 0;
+ while (state->have < state->ncode) {
+ NEEDBITS(3);
+ state->lens[order[state->have++]] = (unsigned short)BITS(3);
+ DROPBITS(3);
+ }
+ while (state->have < 19)
+ state->lens[order[state->have++]] = 0;
+ state->next = state->codes;
+ lencode = (code const FAR *)(state->next);
+ lenbits = 7;
+ ret = inflate_table9(CODES, state->lens, 19, &(state->next),
+ &(lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid code lengths set";
+ mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: code lengths ok\n"));
+
+ /* get length and distance code code lengths */
+ state->have = 0;
+ while (state->have < state->nlen + state->ndist) {
+ for (;;) {
+ here = lencode[BITS(lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.val < 16) {
+ NEEDBITS(here.bits);
+ DROPBITS(here.bits);
+ state->lens[state->have++] = here.val;
+ }
+ else {
+ if (here.val == 16) {
+ NEEDBITS(here.bits + 2);
+ DROPBITS(here.bits);
+ if (state->have == 0) {
+ strm->msg = (char *)"invalid bit length repeat";
+ mode = BAD;
+ break;
+ }
+ len = (unsigned)(state->lens[state->have - 1]);
+ copy = 3 + BITS(2);
+ DROPBITS(2);
+ }
+ else if (here.val == 17) {
+ NEEDBITS(here.bits + 3);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 3 + BITS(3);
+ DROPBITS(3);
+ }
+ else {
+ NEEDBITS(here.bits + 7);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 11 + BITS(7);
+ DROPBITS(7);
+ }
+ if (state->have + copy > state->nlen + state->ndist) {
+ strm->msg = (char *)"invalid bit length repeat";
+ mode = BAD;
+ break;
+ }
+ while (copy--)
+ state->lens[state->have++] = (unsigned short)len;
+ }
+ }
+
+ /* handle error breaks in while */
+ if (mode == BAD) break;
+
+ /* check for end-of-block code (better have one) */
+ if (state->lens[256] == 0) {
+ strm->msg = (char *)"invalid code -- missing end-of-block";
+ mode = BAD;
+ break;
+ }
+
+ /* build code tables -- note: do not change the lenbits or distbits
+ values here (9 and 6) without reading the comments in inftree9.h
+ concerning the ENOUGH constants, which depend on those values */
+ state->next = state->codes;
+ lencode = (code const FAR *)(state->next);
+ lenbits = 9;
+ ret = inflate_table9(LENS, state->lens, state->nlen,
+ &(state->next), &(lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid literal/lengths set";
+ mode = BAD;
+ break;
+ }
+ distcode = (code const FAR *)(state->next);
+ distbits = 6;
+ ret = inflate_table9(DISTS, state->lens + state->nlen,
+ state->ndist, &(state->next), &(distbits),
+ state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid distances set";
+ mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: codes ok\n"));
+ mode = LEN;
+
+ case LEN:
+ /* get a literal, length, or end-of-block code */
+ for (;;) {
+ here = lencode[BITS(lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.op && (here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = lencode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ }
+ DROPBITS(here.bits);
+ length = (unsigned)here.val;
+
+ /* process literal */
+ if (here.op == 0) {
+ Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+ "inflate: literal '%c'\n" :
+ "inflate: literal 0x%02x\n", here.val));
+ ROOM();
+ *put++ = (unsigned char)(length);
+ left--;
+ mode = LEN;
+ break;
+ }
+
+ /* process end of block */
+ if (here.op & 32) {
+ Tracevv((stderr, "inflate: end of block\n"));
+ mode = TYPE;
+ break;
+ }
+
+ /* invalid code */
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid literal/length code";
+ mode = BAD;
+ break;
+ }
+
+ /* length code -- get extra bits, if any */
+ extra = (unsigned)(here.op) & 31;
+ if (extra != 0) {
+ NEEDBITS(extra);
+ length += BITS(extra);
+ DROPBITS(extra);
+ }
+ Tracevv((stderr, "inflate: length %lu\n", length));
+
+ /* get distance code */
+ for (;;) {
+ here = distcode[BITS(distbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if ((here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = distcode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ }
+ DROPBITS(here.bits);
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid distance code";
+ mode = BAD;
+ break;
+ }
+ offset = (unsigned)here.val;
+
+ /* get distance extra bits, if any */
+ extra = (unsigned)(here.op) & 15;
+ if (extra != 0) {
+ NEEDBITS(extra);
+ offset += BITS(extra);
+ DROPBITS(extra);
+ }
+ if (offset > WSIZE - (wrap ? 0: left)) {
+ strm->msg = (char *)"invalid distance too far back";
+ mode = BAD;
+ break;
+ }
+ Tracevv((stderr, "inflate: distance %lu\n", offset));
+
+ /* copy match from window to output */
+ do {
+ ROOM();
+ copy = WSIZE - offset;
+ if (copy < left) {
+ from = put + copy;
+ copy = left - copy;
+ }
+ else {
+ from = put - offset;
+ copy = left;
+ }
+ if (copy > length) copy = length;
+ length -= copy;
+ left -= copy;
+ do {
+ *put++ = *from++;
+ } while (--copy);
+ } while (length != 0);
+ break;
+
+ case DONE:
+ /* inflate stream terminated properly -- write leftover output */
+ ret = Z_STREAM_END;
+ if (left < WSIZE) {
+ if (out(out_desc, window, (unsigned)(WSIZE - left)))
+ ret = Z_BUF_ERROR;
+ }
+ goto inf_leave;
+
+ case BAD:
+ ret = Z_DATA_ERROR;
+ goto inf_leave;
+
+ default: /* can't happen, but makes compilers happy */
+ ret = Z_STREAM_ERROR;
+ goto inf_leave;
+ }
+
+ /* Return unused input */
+ inf_leave:
+ strm->next_in = next;
+ strm->avail_in = have;
+ return ret;
+}
+
+int ZEXPORT inflateBack9End(strm)
+z_stream FAR *strm;
+{
+ if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
+ return Z_STREAM_ERROR;
+ ZFREE(strm, strm->state);
+ strm->state = Z_NULL;
+ Tracev((stderr, "inflate: end\n"));
+ return Z_OK;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.h
new file mode 100644
index 000000000..1073c0a38
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/infback9.h
@@ -0,0 +1,37 @@
+/* infback9.h -- header for using inflateBack9 functions
+ * Copyright (C) 2003 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ * This header file and associated patches provide a decoder for PKWare's
+ * undocumented deflate64 compression method (method 9). Use with infback9.c,
+ * inftree9.h, inftree9.c, and inffix9.h. These patches are not supported.
+ * This should be compiled with zlib, since it uses zutil.h and zutil.o.
+ * This code has not yet been tested on 16-bit architectures. See the
+ * comments in zlib.h for inflateBack() usage. These functions are used
+ * identically, except that there is no windowBits parameter, and a 64K
+ * window must be provided. Also if int's are 16 bits, then a zero for
+ * the third parameter of the "out" function actually means 65536UL.
+ * zlib.h must be included before this header file.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ZEXTERN int ZEXPORT inflateBack9 OF((z_stream FAR *strm,
+ in_func in, void FAR *in_desc,
+ out_func out, void FAR *out_desc));
+ZEXTERN int ZEXPORT inflateBack9End OF((z_stream FAR *strm));
+ZEXTERN int ZEXPORT inflateBack9Init_ OF((z_stream FAR *strm,
+ unsigned char FAR *window,
+ const char *version,
+ int stream_size));
+#define inflateBack9Init(strm, window) \
+ inflateBack9Init_((strm), (window), \
+ ZLIB_VERSION, sizeof(z_stream))
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inffix9.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inffix9.h
new file mode 100644
index 000000000..ee5671d2d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inffix9.h
@@ -0,0 +1,107 @@
+ /* inffix9.h -- table for decoding deflate64 fixed codes
+ * Generated automatically by makefixed9().
+ */
+
+ /* WARNING: this file should *not* be used by applications.
+ It is part of the implementation of this library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+ static const code lenfix[512] = {
+ {96,7,0},{0,8,80},{0,8,16},{132,8,115},{130,7,31},{0,8,112},
+ {0,8,48},{0,9,192},{128,7,10},{0,8,96},{0,8,32},{0,9,160},
+ {0,8,0},{0,8,128},{0,8,64},{0,9,224},{128,7,6},{0,8,88},
+ {0,8,24},{0,9,144},{131,7,59},{0,8,120},{0,8,56},{0,9,208},
+ {129,7,17},{0,8,104},{0,8,40},{0,9,176},{0,8,8},{0,8,136},
+ {0,8,72},{0,9,240},{128,7,4},{0,8,84},{0,8,20},{133,8,227},
+ {131,7,43},{0,8,116},{0,8,52},{0,9,200},{129,7,13},{0,8,100},
+ {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},
+ {128,7,8},{0,8,92},{0,8,28},{0,9,152},{132,7,83},{0,8,124},
+ {0,8,60},{0,9,216},{130,7,23},{0,8,108},{0,8,44},{0,9,184},
+ {0,8,12},{0,8,140},{0,8,76},{0,9,248},{128,7,3},{0,8,82},
+ {0,8,18},{133,8,163},{131,7,35},{0,8,114},{0,8,50},{0,9,196},
+ {129,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},{0,8,130},
+ {0,8,66},{0,9,228},{128,7,7},{0,8,90},{0,8,26},{0,9,148},
+ {132,7,67},{0,8,122},{0,8,58},{0,9,212},{130,7,19},{0,8,106},
+ {0,8,42},{0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},
+ {128,7,5},{0,8,86},{0,8,22},{65,8,0},{131,7,51},{0,8,118},
+ {0,8,54},{0,9,204},{129,7,15},{0,8,102},{0,8,38},{0,9,172},
+ {0,8,6},{0,8,134},{0,8,70},{0,9,236},{128,7,9},{0,8,94},
+ {0,8,30},{0,9,156},{132,7,99},{0,8,126},{0,8,62},{0,9,220},
+ {130,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
+ {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{133,8,131},
+ {130,7,31},{0,8,113},{0,8,49},{0,9,194},{128,7,10},{0,8,97},
+ {0,8,33},{0,9,162},{0,8,1},{0,8,129},{0,8,65},{0,9,226},
+ {128,7,6},{0,8,89},{0,8,25},{0,9,146},{131,7,59},{0,8,121},
+ {0,8,57},{0,9,210},{129,7,17},{0,8,105},{0,8,41},{0,9,178},
+ {0,8,9},{0,8,137},{0,8,73},{0,9,242},{128,7,4},{0,8,85},
+ {0,8,21},{144,8,3},{131,7,43},{0,8,117},{0,8,53},{0,9,202},
+ {129,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},
+ {0,8,69},{0,9,234},{128,7,8},{0,8,93},{0,8,29},{0,9,154},
+ {132,7,83},{0,8,125},{0,8,61},{0,9,218},{130,7,23},{0,8,109},
+ {0,8,45},{0,9,186},{0,8,13},{0,8,141},{0,8,77},{0,9,250},
+ {128,7,3},{0,8,83},{0,8,19},{133,8,195},{131,7,35},{0,8,115},
+ {0,8,51},{0,9,198},{129,7,11},{0,8,99},{0,8,35},{0,9,166},
+ {0,8,3},{0,8,131},{0,8,67},{0,9,230},{128,7,7},{0,8,91},
+ {0,8,27},{0,9,150},{132,7,67},{0,8,123},{0,8,59},{0,9,214},
+ {130,7,19},{0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},
+ {0,8,75},{0,9,246},{128,7,5},{0,8,87},{0,8,23},{77,8,0},
+ {131,7,51},{0,8,119},{0,8,55},{0,9,206},{129,7,15},{0,8,103},
+ {0,8,39},{0,9,174},{0,8,7},{0,8,135},{0,8,71},{0,9,238},
+ {128,7,9},{0,8,95},{0,8,31},{0,9,158},{132,7,99},{0,8,127},
+ {0,8,63},{0,9,222},{130,7,27},{0,8,111},{0,8,47},{0,9,190},
+ {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},
+ {0,8,16},{132,8,115},{130,7,31},{0,8,112},{0,8,48},{0,9,193},
+ {128,7,10},{0,8,96},{0,8,32},{0,9,161},{0,8,0},{0,8,128},
+ {0,8,64},{0,9,225},{128,7,6},{0,8,88},{0,8,24},{0,9,145},
+ {131,7,59},{0,8,120},{0,8,56},{0,9,209},{129,7,17},{0,8,104},
+ {0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},{0,9,241},
+ {128,7,4},{0,8,84},{0,8,20},{133,8,227},{131,7,43},{0,8,116},
+ {0,8,52},{0,9,201},{129,7,13},{0,8,100},{0,8,36},{0,9,169},
+ {0,8,4},{0,8,132},{0,8,68},{0,9,233},{128,7,8},{0,8,92},
+ {0,8,28},{0,9,153},{132,7,83},{0,8,124},{0,8,60},{0,9,217},
+ {130,7,23},{0,8,108},{0,8,44},{0,9,185},{0,8,12},{0,8,140},
+ {0,8,76},{0,9,249},{128,7,3},{0,8,82},{0,8,18},{133,8,163},
+ {131,7,35},{0,8,114},{0,8,50},{0,9,197},{129,7,11},{0,8,98},
+ {0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
+ {128,7,7},{0,8,90},{0,8,26},{0,9,149},{132,7,67},{0,8,122},
+ {0,8,58},{0,9,213},{130,7,19},{0,8,106},{0,8,42},{0,9,181},
+ {0,8,10},{0,8,138},{0,8,74},{0,9,245},{128,7,5},{0,8,86},
+ {0,8,22},{65,8,0},{131,7,51},{0,8,118},{0,8,54},{0,9,205},
+ {129,7,15},{0,8,102},{0,8,38},{0,9,173},{0,8,6},{0,8,134},
+ {0,8,70},{0,9,237},{128,7,9},{0,8,94},{0,8,30},{0,9,157},
+ {132,7,99},{0,8,126},{0,8,62},{0,9,221},{130,7,27},{0,8,110},
+ {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},
+ {96,7,0},{0,8,81},{0,8,17},{133,8,131},{130,7,31},{0,8,113},
+ {0,8,49},{0,9,195},{128,7,10},{0,8,97},{0,8,33},{0,9,163},
+ {0,8,1},{0,8,129},{0,8,65},{0,9,227},{128,7,6},{0,8,89},
+ {0,8,25},{0,9,147},{131,7,59},{0,8,121},{0,8,57},{0,9,211},
+ {129,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},{0,8,137},
+ {0,8,73},{0,9,243},{128,7,4},{0,8,85},{0,8,21},{144,8,3},
+ {131,7,43},{0,8,117},{0,8,53},{0,9,203},{129,7,13},{0,8,101},
+ {0,8,37},{0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},
+ {128,7,8},{0,8,93},{0,8,29},{0,9,155},{132,7,83},{0,8,125},
+ {0,8,61},{0,9,219},{130,7,23},{0,8,109},{0,8,45},{0,9,187},
+ {0,8,13},{0,8,141},{0,8,77},{0,9,251},{128,7,3},{0,8,83},
+ {0,8,19},{133,8,195},{131,7,35},{0,8,115},{0,8,51},{0,9,199},
+ {129,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
+ {0,8,67},{0,9,231},{128,7,7},{0,8,91},{0,8,27},{0,9,151},
+ {132,7,67},{0,8,123},{0,8,59},{0,9,215},{130,7,19},{0,8,107},
+ {0,8,43},{0,9,183},{0,8,11},{0,8,139},{0,8,75},{0,9,247},
+ {128,7,5},{0,8,87},{0,8,23},{77,8,0},{131,7,51},{0,8,119},
+ {0,8,55},{0,9,207},{129,7,15},{0,8,103},{0,8,39},{0,9,175},
+ {0,8,7},{0,8,135},{0,8,71},{0,9,239},{128,7,9},{0,8,95},
+ {0,8,31},{0,9,159},{132,7,99},{0,8,127},{0,8,63},{0,9,223},
+ {130,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},
+ {0,8,79},{0,9,255}
+ };
+
+ static const code distfix[32] = {
+ {128,5,1},{135,5,257},{131,5,17},{139,5,4097},{129,5,5},
+ {137,5,1025},{133,5,65},{141,5,16385},{128,5,3},{136,5,513},
+ {132,5,33},{140,5,8193},{130,5,9},{138,5,2049},{134,5,129},
+ {142,5,32769},{128,5,2},{135,5,385},{131,5,25},{139,5,6145},
+ {129,5,7},{137,5,1537},{133,5,97},{141,5,24577},{128,5,4},
+ {136,5,769},{132,5,49},{140,5,12289},{130,5,13},{138,5,3073},
+ {134,5,193},{142,5,49153}
+ };
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inflate9.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inflate9.h
new file mode 100644
index 000000000..ee9a79394
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inflate9.h
@@ -0,0 +1,47 @@
+/* inflate9.h -- internal inflate state definition
+ * Copyright (C) 1995-2003 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* Possible inflate modes between inflate() calls */
+typedef enum {
+ TYPE, /* i: waiting for type bits, including last-flag bit */
+ STORED, /* i: waiting for stored size (length and complement) */
+ TABLE, /* i: waiting for dynamic block table lengths */
+ LEN, /* i: waiting for length/lit code */
+ DONE, /* finished check, done -- remain here until reset */
+ BAD /* got a data error -- remain here until reset */
+} inflate_mode;
+
+/*
+ State transitions between above modes -
+
+ (most modes can go to the BAD mode -- not shown for clarity)
+
+ Read deflate blocks:
+ TYPE -> STORED or TABLE or LEN or DONE
+ STORED -> TYPE
+ TABLE -> LENLENS -> CODELENS -> LEN
+ Read deflate codes:
+ LEN -> LEN or TYPE
+ */
+
+/* state maintained between inflate() calls. Approximately 7K bytes. */
+struct inflate_state {
+ /* sliding window */
+ unsigned char FAR *window; /* allocated sliding window, if needed */
+ /* dynamic table building */
+ unsigned ncode; /* number of code length code lengths */
+ unsigned nlen; /* number of length code lengths */
+ unsigned ndist; /* number of distance code lengths */
+ unsigned have; /* number of code lengths in lens[] */
+ code FAR *next; /* next available space in codes[] */
+ unsigned short lens[320]; /* temporary storage for code lengths */
+ unsigned short work[288]; /* work area for code table building */
+ code codes[ENOUGH]; /* space for code tables */
+};
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.c
new file mode 100644
index 000000000..5f4a76798
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.c
@@ -0,0 +1,324 @@
+/* inftree9.c -- generate Huffman trees for efficient decoding
+ * Copyright (C) 1995-2017 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "zutil.h"
+#include "inftree9.h"
+
+#define MAXBITS 15
+
+const char inflate9_copyright[] =
+ " inflate9 1.2.11 Copyright 1995-2017 Mark Adler ";
+/*
+ If you use the zlib library in a product, an acknowledgment is welcome
+ in the documentation of your product. If for some reason you cannot
+ include such an acknowledgment, I would appreciate that you keep this
+ copyright string in the executable of your product.
+ */
+
+/*
+ Build a set of tables to decode the provided canonical Huffman code.
+ The code lengths are lens[0..codes-1]. The result starts at *table,
+ whose indices are 0..2^bits-1. work is a writable array of at least
+ lens shorts, which is used as a work area. type is the type of code
+ to be generated, CODES, LENS, or DISTS. On return, zero is success,
+ -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
+ on return points to the next available entry's address. bits is the
+ requested root table index bits, and on return it is the actual root
+ table index bits. It will differ if the request is greater than the
+ longest code or if it is less than the shortest code.
+ */
+int inflate_table9(type, lens, codes, table, bits, work)
+codetype type;
+unsigned short FAR *lens;
+unsigned codes;
+code FAR * FAR *table;
+unsigned FAR *bits;
+unsigned short FAR *work;
+{
+ unsigned len; /* a code's length in bits */
+ unsigned sym; /* index of code symbols */
+ unsigned min, max; /* minimum and maximum code lengths */
+ unsigned root; /* number of index bits for root table */
+ unsigned curr; /* number of index bits for current table */
+ unsigned drop; /* code bits to drop for sub-table */
+ int left; /* number of prefix codes available */
+ unsigned used; /* code entries in table used */
+ unsigned huff; /* Huffman code */
+ unsigned incr; /* for incrementing code, index */
+ unsigned fill; /* index for replicating entries */
+ unsigned low; /* low bits for current root entry */
+ unsigned mask; /* mask for low root bits */
+ code this; /* table entry for duplication */
+ code FAR *next; /* next available space in table */
+ const unsigned short FAR *base; /* base value table to use */
+ const unsigned short FAR *extra; /* extra bits table to use */
+ int end; /* use base and extra for symbol > end */
+ unsigned short count[MAXBITS+1]; /* number of codes of each length */
+ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */
+ static const unsigned short lbase[31] = { /* Length codes 257..285 base */
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17,
+ 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115,
+ 131, 163, 195, 227, 3, 0, 0};
+ static const unsigned short lext[31] = { /* Length codes 257..285 extra */
+ 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
+ 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132,
+ 133, 133, 133, 133, 144, 77, 202};
+ static const unsigned short dbase[32] = { /* Distance codes 0..31 base */
+ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49,
+ 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073,
+ 4097, 6145, 8193, 12289, 16385, 24577, 32769, 49153};
+ static const unsigned short dext[32] = { /* Distance codes 0..31 extra */
+ 128, 128, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132,
+ 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138,
+ 139, 139, 140, 140, 141, 141, 142, 142};
+
+ /*
+ Process a set of code lengths to create a canonical Huffman code. The
+ code lengths are lens[0..codes-1]. Each length corresponds to the
+ symbols 0..codes-1. The Huffman code is generated by first sorting the
+ symbols by length from short to long, and retaining the symbol order
+ for codes with equal lengths. Then the code starts with all zero bits
+ for the first code of the shortest length, and the codes are integer
+ increments for the same length, and zeros are appended as the length
+ increases. For the deflate format, these bits are stored backwards
+ from their more natural integer increment ordering, and so when the
+ decoding tables are built in the large loop below, the integer codes
+ are incremented backwards.
+
+ This routine assumes, but does not check, that all of the entries in
+ lens[] are in the range 0..MAXBITS. The caller must assure this.
+ 1..MAXBITS is interpreted as that code length. zero means that that
+ symbol does not occur in this code.
+
+ The codes are sorted by computing a count of codes for each length,
+ creating from that a table of starting indices for each length in the
+ sorted table, and then entering the symbols in order in the sorted
+ table. The sorted table is work[], with that space being provided by
+ the caller.
+
+ The length counts are used for other purposes as well, i.e. finding
+ the minimum and maximum length codes, determining if there are any
+ codes at all, checking for a valid set of lengths, and looking ahead
+ at length counts to determine sub-table sizes when building the
+ decoding tables.
+ */
+
+ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+ for (len = 0; len <= MAXBITS; len++)
+ count[len] = 0;
+ for (sym = 0; sym < codes; sym++)
+ count[lens[sym]]++;
+
+ /* bound code lengths, force root to be within code lengths */
+ root = *bits;
+ for (max = MAXBITS; max >= 1; max--)
+ if (count[max] != 0) break;
+ if (root > max) root = max;
+ if (max == 0) return -1; /* no codes! */
+ for (min = 1; min <= MAXBITS; min++)
+ if (count[min] != 0) break;
+ if (root < min) root = min;
+
+ /* check for an over-subscribed or incomplete set of lengths */
+ left = 1;
+ for (len = 1; len <= MAXBITS; len++) {
+ left <<= 1;
+ left -= count[len];
+ if (left < 0) return -1; /* over-subscribed */
+ }
+ if (left > 0 && (type == CODES || max != 1))
+ return -1; /* incomplete set */
+
+ /* generate offsets into symbol table for each length for sorting */
+ offs[1] = 0;
+ for (len = 1; len < MAXBITS; len++)
+ offs[len + 1] = offs[len] + count[len];
+
+ /* sort symbols by length, by symbol order within each length */
+ for (sym = 0; sym < codes; sym++)
+ if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym;
+
+ /*
+ Create and fill in decoding tables. In this loop, the table being
+ filled is at next and has curr index bits. The code being used is huff
+ with length len. That code is converted to an index by dropping drop
+ bits off of the bottom. For codes where len is less than drop + curr,
+ those top drop + curr - len bits are incremented through all values to
+ fill the table with replicated entries.
+
+ root is the number of index bits for the root table. When len exceeds
+ root, sub-tables are created pointed to by the root entry with an index
+ of the low root bits of huff. This is saved in low to check for when a
+ new sub-table should be started. drop is zero when the root table is
+ being filled, and drop is root when sub-tables are being filled.
+
+ When a new sub-table is needed, it is necessary to look ahead in the
+ code lengths to determine what size sub-table is needed. The length
+ counts are used for this, and so count[] is decremented as codes are
+ entered in the tables.
+
+ used keeps track of how many table entries have been allocated from the
+ provided *table space. It is checked for LENS and DIST tables against
+ the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+ the initial root table size constants. See the comments in inftree9.h
+ for more information.
+
+ sym increments through all symbols, and the loop terminates when
+ all codes of length max, i.e. all codes, have been processed. This
+ routine permits incomplete codes, so another loop after this one fills
+ in the rest of the decoding tables with invalid code markers.
+ */
+
+ /* set up for code type */
+ switch (type) {
+ case CODES:
+ base = extra = work; /* dummy value--not used */
+ end = 19;
+ break;
+ case LENS:
+ base = lbase;
+ base -= 257;
+ extra = lext;
+ extra -= 257;
+ end = 256;
+ break;
+ default: /* DISTS */
+ base = dbase;
+ extra = dext;
+ end = -1;
+ }
+
+ /* initialize state for loop */
+ huff = 0; /* starting code */
+ sym = 0; /* starting code symbol */
+ len = min; /* starting code length */
+ next = *table; /* current table to fill in */
+ curr = root; /* current table index bits */
+ drop = 0; /* current bits to drop from code for index */
+ low = (unsigned)(-1); /* trigger new sub-table when len > root */
+ used = 1U << root; /* use root table entries */
+ mask = used - 1; /* mask for comparing low */
+
+ /* check available table space */
+ if ((type == LENS && used >= ENOUGH_LENS) ||
+ (type == DISTS && used >= ENOUGH_DISTS))
+ return 1;
+
+ /* process all codes and make table entries */
+ for (;;) {
+ /* create table entry */
+ this.bits = (unsigned char)(len - drop);
+ if ((int)(work[sym]) < end) {
+ this.op = (unsigned char)0;
+ this.val = work[sym];
+ }
+ else if ((int)(work[sym]) > end) {
+ this.op = (unsigned char)(extra[work[sym]]);
+ this.val = base[work[sym]];
+ }
+ else {
+ this.op = (unsigned char)(32 + 64); /* end of block */
+ this.val = 0;
+ }
+
+ /* replicate for those indices with low len bits equal to huff */
+ incr = 1U << (len - drop);
+ fill = 1U << curr;
+ do {
+ fill -= incr;
+ next[(huff >> drop) + fill] = this;
+ } while (fill != 0);
+
+ /* backwards increment the len-bit code huff */
+ incr = 1U << (len - 1);
+ while (huff & incr)
+ incr >>= 1;
+ if (incr != 0) {
+ huff &= incr - 1;
+ huff += incr;
+ }
+ else
+ huff = 0;
+
+ /* go to next symbol, update count, len */
+ sym++;
+ if (--(count[len]) == 0) {
+ if (len == max) break;
+ len = lens[work[sym]];
+ }
+
+ /* create new sub-table if needed */
+ if (len > root && (huff & mask) != low) {
+ /* if first time, transition to sub-tables */
+ if (drop == 0)
+ drop = root;
+
+ /* increment past last table */
+ next += 1U << curr;
+
+ /* determine length of next table */
+ curr = len - drop;
+ left = (int)(1 << curr);
+ while (curr + drop < max) {
+ left -= count[curr + drop];
+ if (left <= 0) break;
+ curr++;
+ left <<= 1;
+ }
+
+ /* check for enough space */
+ used += 1U << curr;
+ if ((type == LENS && used >= ENOUGH_LENS) ||
+ (type == DISTS && used >= ENOUGH_DISTS))
+ return 1;
+
+ /* point entry in root table to sub-table */
+ low = huff & mask;
+ (*table)[low].op = (unsigned char)curr;
+ (*table)[low].bits = (unsigned char)root;
+ (*table)[low].val = (unsigned short)(next - *table);
+ }
+ }
+
+ /*
+ Fill in rest of table for incomplete codes. This loop is similar to the
+ loop above in incrementing huff for table indices. It is assumed that
+ len is equal to curr + drop, so there is no loop needed to increment
+ through high index bits. When the current sub-table is filled, the loop
+ drops back to the root table to fill in any remaining entries there.
+ */
+ this.op = (unsigned char)64; /* invalid code marker */
+ this.bits = (unsigned char)(len - drop);
+ this.val = (unsigned short)0;
+ while (huff != 0) {
+ /* when done with sub-table, drop back to root table */
+ if (drop != 0 && (huff & mask) != low) {
+ drop = 0;
+ len = root;
+ next = *table;
+ curr = root;
+ this.bits = (unsigned char)len;
+ }
+
+ /* put invalid code marker in table */
+ next[huff >> drop] = this;
+
+ /* backwards increment the len-bit code huff */
+ incr = 1U << (len - 1);
+ while (huff & incr)
+ incr >>= 1;
+ if (incr != 0) {
+ huff &= incr - 1;
+ huff += incr;
+ }
+ else
+ huff = 0;
+ }
+
+ /* set return parameters */
+ *table += used;
+ *bits = root;
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.h
new file mode 100644
index 000000000..5ab21f0c6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/infback9/inftree9.h
@@ -0,0 +1,61 @@
+/* inftree9.h -- header to use inftree9.c
+ * Copyright (C) 1995-2008 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* Structure for decoding tables. Each entry provides either the
+ information needed to do the operation requested by the code that
+ indexed that table entry, or it provides a pointer to another
+ table that indexes more bits of the code. op indicates whether
+ the entry is a pointer to another table, a literal, a length or
+ distance, an end-of-block, or an invalid code. For a table
+ pointer, the low four bits of op is the number of index bits of
+ that table. For a length or distance, the low four bits of op
+ is the number of extra bits to get after the code. bits is
+ the number of bits in this code or part of the code to drop off
+ of the bit buffer. val is the actual byte to output in the case
+ of a literal, the base length or distance, or the offset from
+ the current table to the next table. Each entry is four bytes. */
+typedef struct {
+ unsigned char op; /* operation, extra bits, table bits */
+ unsigned char bits; /* bits in this part of the code */
+ unsigned short val; /* offset in table or code value */
+} code;
+
+/* op values as set by inflate_table():
+ 00000000 - literal
+ 0000tttt - table link, tttt != 0 is the number of table index bits
+ 100eeeee - length or distance, eeee is the number of extra bits
+ 01100000 - end of block
+ 01000000 - invalid code
+ */
+
+/* Maximum size of the dynamic table. The maximum number of code structures is
+ 1446, which is the sum of 852 for literal/length codes and 594 for distance
+ codes. These values were found by exhaustive searches using the program
+ examples/enough.c found in the zlib distribtution. The arguments to that
+ program are the number of symbols, the initial root table size, and the
+ maximum bit length of a code. "enough 286 9 15" for literal/length codes
+ returns returns 852, and "enough 32 6 15" for distance codes returns 594.
+ The initial root table size (9 or 6) is found in the fifth argument of the
+ inflate_table() calls in infback9.c. If the root table size is changed,
+ then these maximum sizes would be need to be recalculated and updated. */
+#define ENOUGH_LENS 852
+#define ENOUGH_DISTS 594
+#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
+
+/* Type of code to build for inflate_table9() */
+typedef enum {
+ CODES,
+ LENS,
+ DISTS
+} codetype;
+
+extern int inflate_table9 OF((codetype type, unsigned short FAR *lens,
+ unsigned codes, code FAR * FAR *table,
+ unsigned FAR *bits, unsigned short FAR *work));
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffas86.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffas86.c
new file mode 100644
index 000000000..7292f67b7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffas86.c
@@ -0,0 +1,1157 @@
+/* inffas86.c is a hand tuned assembler version of
+ *
+ * inffast.c -- fast decoding
+ * Copyright (C) 1995-2003 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ * Copyright (C) 2003 Chris Anderson <christop@charm.net>
+ * Please use the copyright conditions above.
+ *
+ * Dec-29-2003 -- I added AMD64 inflate asm support. This version is also
+ * slightly quicker on x86 systems because, instead of using rep movsb to copy
+ * data, it uses rep movsw, which moves data in 2-byte chunks instead of single
+ * bytes. I've tested the AMD64 code on a Fedora Core 1 + the x86_64 updates
+ * from http://fedora.linux.duke.edu/fc1_x86_64
+ * which is running on an Athlon 64 3000+ / Gigabyte GA-K8VT800M system with
+ * 1GB ram. The 64-bit version is about 4% faster than the 32-bit version,
+ * when decompressing mozilla-source-1.3.tar.gz.
+ *
+ * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
+ * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
+ * the moment. I have successfully compiled and tested this code with gcc2.96,
+ * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
+ * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
+ * enabled. I will attempt to merge the MMX code into this version. Newer
+ * versions of this and inffast.S can be found at
+ * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
+ */
+
+#include "zutil.h"
+#include "inftrees.h"
+#include "inflate.h"
+#include "inffast.h"
+
+/* Mark Adler's comments from inffast.c: */
+
+/*
+ Decode literal, length, and distance codes and write out the resulting
+ literal and match bytes until either not enough input or output is
+ available, an end-of-block is encountered, or a data error is encountered.
+ When large enough input and output buffers are supplied to inflate(), for
+ example, a 16K input buffer and a 64K output buffer, more than 95% of the
+ inflate execution time is spent in this routine.
+
+ Entry assumptions:
+
+ state->mode == LEN
+ strm->avail_in >= 6
+ strm->avail_out >= 258
+ start >= strm->avail_out
+ state->bits < 8
+
+ On return, state->mode is one of:
+
+ LEN -- ran out of enough output space or enough available input
+ TYPE -- reached end of block code, inflate() to interpret next block
+ BAD -- error in block data
+
+ Notes:
+
+ - The maximum input bits used by a length/distance pair is 15 bits for the
+ length code, 5 bits for the length extra, 15 bits for the distance code,
+ and 13 bits for the distance extra. This totals 48 bits, or six bytes.
+ Therefore if strm->avail_in >= 6, then there is enough input to avoid
+ checking for available input while decoding.
+
+ - The maximum bytes that a single length/distance pair can output is 258
+ bytes, which is the maximum length that can be coded. inflate_fast()
+ requires strm->avail_out >= 258 for each loop to avoid checking for
+ output space.
+ */
+void inflate_fast(strm, start)
+z_streamp strm;
+unsigned start; /* inflate()'s starting value for strm->avail_out */
+{
+ struct inflate_state FAR *state;
+ struct inffast_ar {
+/* 64 32 x86 x86_64 */
+/* ar offset register */
+/* 0 0 */ void *esp; /* esp save */
+/* 8 4 */ void *ebp; /* ebp save */
+/* 16 8 */ unsigned char FAR *in; /* esi rsi local strm->next_in */
+/* 24 12 */ unsigned char FAR *last; /* r9 while in < last */
+/* 32 16 */ unsigned char FAR *out; /* edi rdi local strm->next_out */
+/* 40 20 */ unsigned char FAR *beg; /* inflate()'s init next_out */
+/* 48 24 */ unsigned char FAR *end; /* r10 while out < end */
+/* 56 28 */ unsigned char FAR *window;/* size of window, wsize!=0 */
+/* 64 32 */ code const FAR *lcode; /* ebp rbp local strm->lencode */
+/* 72 36 */ code const FAR *dcode; /* r11 local strm->distcode */
+/* 80 40 */ unsigned long hold; /* edx rdx local strm->hold */
+/* 88 44 */ unsigned bits; /* ebx rbx local strm->bits */
+/* 92 48 */ unsigned wsize; /* window size */
+/* 96 52 */ unsigned write; /* window write index */
+/*100 56 */ unsigned lmask; /* r12 mask for lcode */
+/*104 60 */ unsigned dmask; /* r13 mask for dcode */
+/*108 64 */ unsigned len; /* r14 match length */
+/*112 68 */ unsigned dist; /* r15 match distance */
+/*116 72 */ unsigned status; /* set when state chng*/
+ } ar;
+
+#if defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )
+#define PAD_AVAIL_IN 6
+#define PAD_AVAIL_OUT 258
+#else
+#define PAD_AVAIL_IN 5
+#define PAD_AVAIL_OUT 257
+#endif
+
+ /* copy state to local variables */
+ state = (struct inflate_state FAR *)strm->state;
+ ar.in = strm->next_in;
+ ar.last = ar.in + (strm->avail_in - PAD_AVAIL_IN);
+ ar.out = strm->next_out;
+ ar.beg = ar.out - (start - strm->avail_out);
+ ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
+ ar.wsize = state->wsize;
+ ar.write = state->wnext;
+ ar.window = state->window;
+ ar.hold = state->hold;
+ ar.bits = state->bits;
+ ar.lcode = state->lencode;
+ ar.dcode = state->distcode;
+ ar.lmask = (1U << state->lenbits) - 1;
+ ar.dmask = (1U << state->distbits) - 1;
+
+ /* decode literals and length/distances until end-of-block or not enough
+ input data or output space */
+
+ /* align in on 1/2 hold size boundary */
+ while (((unsigned long)(void *)ar.in & (sizeof(ar.hold) / 2 - 1)) != 0) {
+ ar.hold += (unsigned long)*ar.in++ << ar.bits;
+ ar.bits += 8;
+ }
+
+#if defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )
+ __asm__ __volatile__ (
+" leaq %0, %%rax\n"
+" movq %%rbp, 8(%%rax)\n" /* save regs rbp and rsp */
+" movq %%rsp, (%%rax)\n"
+" movq %%rax, %%rsp\n" /* make rsp point to &ar */
+" movq 16(%%rsp), %%rsi\n" /* rsi = in */
+" movq 32(%%rsp), %%rdi\n" /* rdi = out */
+" movq 24(%%rsp), %%r9\n" /* r9 = last */
+" movq 48(%%rsp), %%r10\n" /* r10 = end */
+" movq 64(%%rsp), %%rbp\n" /* rbp = lcode */
+" movq 72(%%rsp), %%r11\n" /* r11 = dcode */
+" movq 80(%%rsp), %%rdx\n" /* rdx = hold */
+" movl 88(%%rsp), %%ebx\n" /* ebx = bits */
+" movl 100(%%rsp), %%r12d\n" /* r12d = lmask */
+" movl 104(%%rsp), %%r13d\n" /* r13d = dmask */
+ /* r14d = len */
+ /* r15d = dist */
+" cld\n"
+" cmpq %%rdi, %%r10\n"
+" je .L_one_time\n" /* if only one decode left */
+" cmpq %%rsi, %%r9\n"
+" je .L_one_time\n"
+" jmp .L_do_loop\n"
+
+".L_one_time:\n"
+" movq %%r12, %%r8\n" /* r8 = lmask */
+" cmpb $32, %%bl\n"
+" ja .L_get_length_code_one_time\n"
+
+" lodsl\n" /* eax = *(uint *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $32, %%bl\n" /* bits += 32 */
+" shlq %%cl, %%rax\n"
+" orq %%rax, %%rdx\n" /* hold |= *((uint *)in)++ << bits */
+" jmp .L_get_length_code_one_time\n"
+
+".align 32,0x90\n"
+".L_while_test:\n"
+" cmpq %%rdi, %%r10\n"
+" jbe .L_break_loop\n"
+" cmpq %%rsi, %%r9\n"
+" jbe .L_break_loop\n"
+
+".L_do_loop:\n"
+" movq %%r12, %%r8\n" /* r8 = lmask */
+" cmpb $32, %%bl\n"
+" ja .L_get_length_code\n" /* if (32 < bits) */
+
+" lodsl\n" /* eax = *(uint *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $32, %%bl\n" /* bits += 32 */
+" shlq %%cl, %%rax\n"
+" orq %%rax, %%rdx\n" /* hold |= *((uint *)in)++ << bits */
+
+".L_get_length_code:\n"
+" andq %%rdx, %%r8\n" /* r8 &= hold */
+" movl (%%rbp,%%r8,4), %%eax\n" /* eax = lcode[hold & lmask] */
+
+" movb %%ah, %%cl\n" /* cl = this.bits */
+" subb %%ah, %%bl\n" /* bits -= this.bits */
+" shrq %%cl, %%rdx\n" /* hold >>= this.bits */
+
+" testb %%al, %%al\n"
+" jnz .L_test_for_length_base\n" /* if (op != 0) 45.7% */
+
+" movq %%r12, %%r8\n" /* r8 = lmask */
+" shrl $16, %%eax\n" /* output this.val char */
+" stosb\n"
+
+".L_get_length_code_one_time:\n"
+" andq %%rdx, %%r8\n" /* r8 &= hold */
+" movl (%%rbp,%%r8,4), %%eax\n" /* eax = lcode[hold & lmask] */
+
+".L_dolen:\n"
+" movb %%ah, %%cl\n" /* cl = this.bits */
+" subb %%ah, %%bl\n" /* bits -= this.bits */
+" shrq %%cl, %%rdx\n" /* hold >>= this.bits */
+
+" testb %%al, %%al\n"
+" jnz .L_test_for_length_base\n" /* if (op != 0) 45.7% */
+
+" shrl $16, %%eax\n" /* output this.val char */
+" stosb\n"
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_test_for_length_base:\n"
+" movl %%eax, %%r14d\n" /* len = this */
+" shrl $16, %%r14d\n" /* len = this.val */
+" movb %%al, %%cl\n"
+
+" testb $16, %%al\n"
+" jz .L_test_for_second_level_length\n" /* if ((op & 16) == 0) 8% */
+" andb $15, %%cl\n" /* op &= 15 */
+" jz .L_decode_distance\n" /* if (!op) */
+
+".L_add_bits_to_len:\n"
+" subb %%cl, %%bl\n"
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" shrq %%cl, %%rdx\n"
+" addl %%eax, %%r14d\n" /* len += hold & mask[op] */
+
+".L_decode_distance:\n"
+" movq %%r13, %%r8\n" /* r8 = dmask */
+" cmpb $32, %%bl\n"
+" ja .L_get_distance_code\n" /* if (32 < bits) */
+
+" lodsl\n" /* eax = *(uint *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $32, %%bl\n" /* bits += 32 */
+" shlq %%cl, %%rax\n"
+" orq %%rax, %%rdx\n" /* hold |= *((uint *)in)++ << bits */
+
+".L_get_distance_code:\n"
+" andq %%rdx, %%r8\n" /* r8 &= hold */
+" movl (%%r11,%%r8,4), %%eax\n" /* eax = dcode[hold & dmask] */
+
+".L_dodist:\n"
+" movl %%eax, %%r15d\n" /* dist = this */
+" shrl $16, %%r15d\n" /* dist = this.val */
+" movb %%ah, %%cl\n"
+" subb %%ah, %%bl\n" /* bits -= this.bits */
+" shrq %%cl, %%rdx\n" /* hold >>= this.bits */
+" movb %%al, %%cl\n" /* cl = this.op */
+
+" testb $16, %%al\n" /* if ((op & 16) == 0) */
+" jz .L_test_for_second_level_dist\n"
+" andb $15, %%cl\n" /* op &= 15 */
+" jz .L_check_dist_one\n"
+
+".L_add_bits_to_dist:\n"
+" subb %%cl, %%bl\n"
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n" /* (1 << op) - 1 */
+" andl %%edx, %%eax\n" /* eax &= hold */
+" shrq %%cl, %%rdx\n"
+" addl %%eax, %%r15d\n" /* dist += hold & ((1 << op) - 1) */
+
+".L_check_window:\n"
+" movq %%rsi, %%r8\n" /* save in so from can use it's reg */
+" movq %%rdi, %%rax\n"
+" subq 40(%%rsp), %%rax\n" /* nbytes = out - beg */
+
+" cmpl %%r15d, %%eax\n"
+" jb .L_clip_window\n" /* if (dist > nbytes) 4.2% */
+
+" movl %%r14d, %%ecx\n" /* ecx = len */
+" movq %%rdi, %%rsi\n"
+" subq %%r15, %%rsi\n" /* from = out - dist */
+
+" sarl %%ecx\n"
+" jnc .L_copy_two\n" /* if len % 2 == 0 */
+
+" rep movsw\n"
+" movb (%%rsi), %%al\n"
+" movb %%al, (%%rdi)\n"
+" incq %%rdi\n"
+
+" movq %%r8, %%rsi\n" /* move in back to %rsi, toss from */
+" jmp .L_while_test\n"
+
+".L_copy_two:\n"
+" rep movsw\n"
+" movq %%r8, %%rsi\n" /* move in back to %rsi, toss from */
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_check_dist_one:\n"
+" cmpl $1, %%r15d\n" /* if dist 1, is a memset */
+" jne .L_check_window\n"
+" cmpq %%rdi, 40(%%rsp)\n" /* if out == beg, outside window */
+" je .L_check_window\n"
+
+" movl %%r14d, %%ecx\n" /* ecx = len */
+" movb -1(%%rdi), %%al\n"
+" movb %%al, %%ah\n"
+
+" sarl %%ecx\n"
+" jnc .L_set_two\n"
+" movb %%al, (%%rdi)\n"
+" incq %%rdi\n"
+
+".L_set_two:\n"
+" rep stosw\n"
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_test_for_second_level_length:\n"
+" testb $64, %%al\n"
+" jnz .L_test_for_end_of_block\n" /* if ((op & 64) != 0) */
+
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" addl %%r14d, %%eax\n" /* eax += len */
+" movl (%%rbp,%%rax,4), %%eax\n" /* eax = lcode[val+(hold&mask[op])]*/
+" jmp .L_dolen\n"
+
+".align 32,0x90\n"
+".L_test_for_second_level_dist:\n"
+" testb $64, %%al\n"
+" jnz .L_invalid_distance_code\n" /* if ((op & 64) != 0) */
+
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" addl %%r15d, %%eax\n" /* eax += dist */
+" movl (%%r11,%%rax,4), %%eax\n" /* eax = dcode[val+(hold&mask[op])]*/
+" jmp .L_dodist\n"
+
+".align 32,0x90\n"
+".L_clip_window:\n"
+" movl %%eax, %%ecx\n" /* ecx = nbytes */
+" movl 92(%%rsp), %%eax\n" /* eax = wsize, prepare for dist cmp */
+" negl %%ecx\n" /* nbytes = -nbytes */
+
+" cmpl %%r15d, %%eax\n"
+" jb .L_invalid_distance_too_far\n" /* if (dist > wsize) */
+
+" addl %%r15d, %%ecx\n" /* nbytes = dist - nbytes */
+" cmpl $0, 96(%%rsp)\n"
+" jne .L_wrap_around_window\n" /* if (write != 0) */
+
+" movq 56(%%rsp), %%rsi\n" /* from = window */
+" subl %%ecx, %%eax\n" /* eax -= nbytes */
+" addq %%rax, %%rsi\n" /* from += wsize - nbytes */
+
+" movl %%r14d, %%eax\n" /* eax = len */
+" cmpl %%ecx, %%r14d\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* eax -= nbytes */
+" rep movsb\n"
+" movq %%rdi, %%rsi\n"
+" subq %%r15, %%rsi\n" /* from = &out[ -dist ] */
+" jmp .L_do_copy\n"
+
+".align 32,0x90\n"
+".L_wrap_around_window:\n"
+" movl 96(%%rsp), %%eax\n" /* eax = write */
+" cmpl %%eax, %%ecx\n"
+" jbe .L_contiguous_in_window\n" /* if (write >= nbytes) */
+
+" movl 92(%%rsp), %%esi\n" /* from = wsize */
+" addq 56(%%rsp), %%rsi\n" /* from += window */
+" addq %%rax, %%rsi\n" /* from += write */
+" subq %%rcx, %%rsi\n" /* from -= nbytes */
+" subl %%eax, %%ecx\n" /* nbytes -= write */
+
+" movl %%r14d, %%eax\n" /* eax = len */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movq 56(%%rsp), %%rsi\n" /* from = window */
+" movl 96(%%rsp), %%ecx\n" /* nbytes = write */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movq %%rdi, %%rsi\n"
+" subq %%r15, %%rsi\n" /* from = out - dist */
+" jmp .L_do_copy\n"
+
+".align 32,0x90\n"
+".L_contiguous_in_window:\n"
+" movq 56(%%rsp), %%rsi\n" /* rsi = window */
+" addq %%rax, %%rsi\n"
+" subq %%rcx, %%rsi\n" /* from += write - nbytes */
+
+" movl %%r14d, %%eax\n" /* eax = len */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movq %%rdi, %%rsi\n"
+" subq %%r15, %%rsi\n" /* from = out - dist */
+" jmp .L_do_copy\n" /* if (nbytes >= len) */
+
+".align 32,0x90\n"
+".L_do_copy:\n"
+" movl %%eax, %%ecx\n" /* ecx = len */
+" rep movsb\n"
+
+" movq %%r8, %%rsi\n" /* move in back to %esi, toss from */
+" jmp .L_while_test\n"
+
+".L_test_for_end_of_block:\n"
+" testb $32, %%al\n"
+" jz .L_invalid_literal_length_code\n"
+" movl $1, 116(%%rsp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_literal_length_code:\n"
+" movl $2, 116(%%rsp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_distance_code:\n"
+" movl $3, 116(%%rsp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_distance_too_far:\n"
+" movl $4, 116(%%rsp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_break_loop:\n"
+" movl $0, 116(%%rsp)\n"
+
+".L_break_loop_with_status:\n"
+/* put in, out, bits, and hold back into ar and pop esp */
+" movq %%rsi, 16(%%rsp)\n" /* in */
+" movq %%rdi, 32(%%rsp)\n" /* out */
+" movl %%ebx, 88(%%rsp)\n" /* bits */
+" movq %%rdx, 80(%%rsp)\n" /* hold */
+" movq (%%rsp), %%rax\n" /* restore rbp and rsp */
+" movq 8(%%rsp), %%rbp\n"
+" movq %%rax, %%rsp\n"
+ :
+ : "m" (ar)
+ : "memory", "%rax", "%rbx", "%rcx", "%rdx", "%rsi", "%rdi",
+ "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15"
+ );
+#elif ( defined( __GNUC__ ) || defined( __ICC ) ) && defined( __i386 )
+ __asm__ __volatile__ (
+" leal %0, %%eax\n"
+" movl %%esp, (%%eax)\n" /* save esp, ebp */
+" movl %%ebp, 4(%%eax)\n"
+" movl %%eax, %%esp\n"
+" movl 8(%%esp), %%esi\n" /* esi = in */
+" movl 16(%%esp), %%edi\n" /* edi = out */
+" movl 40(%%esp), %%edx\n" /* edx = hold */
+" movl 44(%%esp), %%ebx\n" /* ebx = bits */
+" movl 32(%%esp), %%ebp\n" /* ebp = lcode */
+
+" cld\n"
+" jmp .L_do_loop\n"
+
+".align 32,0x90\n"
+".L_while_test:\n"
+" cmpl %%edi, 24(%%esp)\n" /* out < end */
+" jbe .L_break_loop\n"
+" cmpl %%esi, 12(%%esp)\n" /* in < last */
+" jbe .L_break_loop\n"
+
+".L_do_loop:\n"
+" cmpb $15, %%bl\n"
+" ja .L_get_length_code\n" /* if (15 < bits) */
+
+" xorl %%eax, %%eax\n"
+" lodsw\n" /* al = *(ushort *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $16, %%bl\n" /* bits += 16 */
+" shll %%cl, %%eax\n"
+" orl %%eax, %%edx\n" /* hold |= *((ushort *)in)++ << bits */
+
+".L_get_length_code:\n"
+" movl 56(%%esp), %%eax\n" /* eax = lmask */
+" andl %%edx, %%eax\n" /* eax &= hold */
+" movl (%%ebp,%%eax,4), %%eax\n" /* eax = lcode[hold & lmask] */
+
+".L_dolen:\n"
+" movb %%ah, %%cl\n" /* cl = this.bits */
+" subb %%ah, %%bl\n" /* bits -= this.bits */
+" shrl %%cl, %%edx\n" /* hold >>= this.bits */
+
+" testb %%al, %%al\n"
+" jnz .L_test_for_length_base\n" /* if (op != 0) 45.7% */
+
+" shrl $16, %%eax\n" /* output this.val char */
+" stosb\n"
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_test_for_length_base:\n"
+" movl %%eax, %%ecx\n" /* len = this */
+" shrl $16, %%ecx\n" /* len = this.val */
+" movl %%ecx, 64(%%esp)\n" /* save len */
+" movb %%al, %%cl\n"
+
+" testb $16, %%al\n"
+" jz .L_test_for_second_level_length\n" /* if ((op & 16) == 0) 8% */
+" andb $15, %%cl\n" /* op &= 15 */
+" jz .L_decode_distance\n" /* if (!op) */
+" cmpb %%cl, %%bl\n"
+" jae .L_add_bits_to_len\n" /* if (op <= bits) */
+
+" movb %%cl, %%ch\n" /* stash op in ch, freeing cl */
+" xorl %%eax, %%eax\n"
+" lodsw\n" /* al = *(ushort *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $16, %%bl\n" /* bits += 16 */
+" shll %%cl, %%eax\n"
+" orl %%eax, %%edx\n" /* hold |= *((ushort *)in)++ << bits */
+" movb %%ch, %%cl\n" /* move op back to ecx */
+
+".L_add_bits_to_len:\n"
+" subb %%cl, %%bl\n"
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" shrl %%cl, %%edx\n"
+" addl %%eax, 64(%%esp)\n" /* len += hold & mask[op] */
+
+".L_decode_distance:\n"
+" cmpb $15, %%bl\n"
+" ja .L_get_distance_code\n" /* if (15 < bits) */
+
+" xorl %%eax, %%eax\n"
+" lodsw\n" /* al = *(ushort *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $16, %%bl\n" /* bits += 16 */
+" shll %%cl, %%eax\n"
+" orl %%eax, %%edx\n" /* hold |= *((ushort *)in)++ << bits */
+
+".L_get_distance_code:\n"
+" movl 60(%%esp), %%eax\n" /* eax = dmask */
+" movl 36(%%esp), %%ecx\n" /* ecx = dcode */
+" andl %%edx, %%eax\n" /* eax &= hold */
+" movl (%%ecx,%%eax,4), %%eax\n"/* eax = dcode[hold & dmask] */
+
+".L_dodist:\n"
+" movl %%eax, %%ebp\n" /* dist = this */
+" shrl $16, %%ebp\n" /* dist = this.val */
+" movb %%ah, %%cl\n"
+" subb %%ah, %%bl\n" /* bits -= this.bits */
+" shrl %%cl, %%edx\n" /* hold >>= this.bits */
+" movb %%al, %%cl\n" /* cl = this.op */
+
+" testb $16, %%al\n" /* if ((op & 16) == 0) */
+" jz .L_test_for_second_level_dist\n"
+" andb $15, %%cl\n" /* op &= 15 */
+" jz .L_check_dist_one\n"
+" cmpb %%cl, %%bl\n"
+" jae .L_add_bits_to_dist\n" /* if (op <= bits) 97.6% */
+
+" movb %%cl, %%ch\n" /* stash op in ch, freeing cl */
+" xorl %%eax, %%eax\n"
+" lodsw\n" /* al = *(ushort *)in++ */
+" movb %%bl, %%cl\n" /* cl = bits, needs it for shifting */
+" addb $16, %%bl\n" /* bits += 16 */
+" shll %%cl, %%eax\n"
+" orl %%eax, %%edx\n" /* hold |= *((ushort *)in)++ << bits */
+" movb %%ch, %%cl\n" /* move op back to ecx */
+
+".L_add_bits_to_dist:\n"
+" subb %%cl, %%bl\n"
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n" /* (1 << op) - 1 */
+" andl %%edx, %%eax\n" /* eax &= hold */
+" shrl %%cl, %%edx\n"
+" addl %%eax, %%ebp\n" /* dist += hold & ((1 << op) - 1) */
+
+".L_check_window:\n"
+" movl %%esi, 8(%%esp)\n" /* save in so from can use it's reg */
+" movl %%edi, %%eax\n"
+" subl 20(%%esp), %%eax\n" /* nbytes = out - beg */
+
+" cmpl %%ebp, %%eax\n"
+" jb .L_clip_window\n" /* if (dist > nbytes) 4.2% */
+
+" movl 64(%%esp), %%ecx\n" /* ecx = len */
+" movl %%edi, %%esi\n"
+" subl %%ebp, %%esi\n" /* from = out - dist */
+
+" sarl %%ecx\n"
+" jnc .L_copy_two\n" /* if len % 2 == 0 */
+
+" rep movsw\n"
+" movb (%%esi), %%al\n"
+" movb %%al, (%%edi)\n"
+" incl %%edi\n"
+
+" movl 8(%%esp), %%esi\n" /* move in back to %esi, toss from */
+" movl 32(%%esp), %%ebp\n" /* ebp = lcode */
+" jmp .L_while_test\n"
+
+".L_copy_two:\n"
+" rep movsw\n"
+" movl 8(%%esp), %%esi\n" /* move in back to %esi, toss from */
+" movl 32(%%esp), %%ebp\n" /* ebp = lcode */
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_check_dist_one:\n"
+" cmpl $1, %%ebp\n" /* if dist 1, is a memset */
+" jne .L_check_window\n"
+" cmpl %%edi, 20(%%esp)\n"
+" je .L_check_window\n" /* out == beg, if outside window */
+
+" movl 64(%%esp), %%ecx\n" /* ecx = len */
+" movb -1(%%edi), %%al\n"
+" movb %%al, %%ah\n"
+
+" sarl %%ecx\n"
+" jnc .L_set_two\n"
+" movb %%al, (%%edi)\n"
+" incl %%edi\n"
+
+".L_set_two:\n"
+" rep stosw\n"
+" movl 32(%%esp), %%ebp\n" /* ebp = lcode */
+" jmp .L_while_test\n"
+
+".align 32,0x90\n"
+".L_test_for_second_level_length:\n"
+" testb $64, %%al\n"
+" jnz .L_test_for_end_of_block\n" /* if ((op & 64) != 0) */
+
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" addl 64(%%esp), %%eax\n" /* eax += len */
+" movl (%%ebp,%%eax,4), %%eax\n" /* eax = lcode[val+(hold&mask[op])]*/
+" jmp .L_dolen\n"
+
+".align 32,0x90\n"
+".L_test_for_second_level_dist:\n"
+" testb $64, %%al\n"
+" jnz .L_invalid_distance_code\n" /* if ((op & 64) != 0) */
+
+" xorl %%eax, %%eax\n"
+" incl %%eax\n"
+" shll %%cl, %%eax\n"
+" decl %%eax\n"
+" andl %%edx, %%eax\n" /* eax &= hold */
+" addl %%ebp, %%eax\n" /* eax += dist */
+" movl 36(%%esp), %%ecx\n" /* ecx = dcode */
+" movl (%%ecx,%%eax,4), %%eax\n" /* eax = dcode[val+(hold&mask[op])]*/
+" jmp .L_dodist\n"
+
+".align 32,0x90\n"
+".L_clip_window:\n"
+" movl %%eax, %%ecx\n"
+" movl 48(%%esp), %%eax\n" /* eax = wsize */
+" negl %%ecx\n" /* nbytes = -nbytes */
+" movl 28(%%esp), %%esi\n" /* from = window */
+
+" cmpl %%ebp, %%eax\n"
+" jb .L_invalid_distance_too_far\n" /* if (dist > wsize) */
+
+" addl %%ebp, %%ecx\n" /* nbytes = dist - nbytes */
+" cmpl $0, 52(%%esp)\n"
+" jne .L_wrap_around_window\n" /* if (write != 0) */
+
+" subl %%ecx, %%eax\n"
+" addl %%eax, %%esi\n" /* from += wsize - nbytes */
+
+" movl 64(%%esp), %%eax\n" /* eax = len */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movl %%edi, %%esi\n"
+" subl %%ebp, %%esi\n" /* from = out - dist */
+" jmp .L_do_copy\n"
+
+".align 32,0x90\n"
+".L_wrap_around_window:\n"
+" movl 52(%%esp), %%eax\n" /* eax = write */
+" cmpl %%eax, %%ecx\n"
+" jbe .L_contiguous_in_window\n" /* if (write >= nbytes) */
+
+" addl 48(%%esp), %%esi\n" /* from += wsize */
+" addl %%eax, %%esi\n" /* from += write */
+" subl %%ecx, %%esi\n" /* from -= nbytes */
+" subl %%eax, %%ecx\n" /* nbytes -= write */
+
+" movl 64(%%esp), %%eax\n" /* eax = len */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movl 28(%%esp), %%esi\n" /* from = window */
+" movl 52(%%esp), %%ecx\n" /* nbytes = write */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movl %%edi, %%esi\n"
+" subl %%ebp, %%esi\n" /* from = out - dist */
+" jmp .L_do_copy\n"
+
+".align 32,0x90\n"
+".L_contiguous_in_window:\n"
+" addl %%eax, %%esi\n"
+" subl %%ecx, %%esi\n" /* from += write - nbytes */
+
+" movl 64(%%esp), %%eax\n" /* eax = len */
+" cmpl %%ecx, %%eax\n"
+" jbe .L_do_copy\n" /* if (nbytes >= len) */
+
+" subl %%ecx, %%eax\n" /* len -= nbytes */
+" rep movsb\n"
+" movl %%edi, %%esi\n"
+" subl %%ebp, %%esi\n" /* from = out - dist */
+" jmp .L_do_copy\n" /* if (nbytes >= len) */
+
+".align 32,0x90\n"
+".L_do_copy:\n"
+" movl %%eax, %%ecx\n"
+" rep movsb\n"
+
+" movl 8(%%esp), %%esi\n" /* move in back to %esi, toss from */
+" movl 32(%%esp), %%ebp\n" /* ebp = lcode */
+" jmp .L_while_test\n"
+
+".L_test_for_end_of_block:\n"
+" testb $32, %%al\n"
+" jz .L_invalid_literal_length_code\n"
+" movl $1, 72(%%esp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_literal_length_code:\n"
+" movl $2, 72(%%esp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_distance_code:\n"
+" movl $3, 72(%%esp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_invalid_distance_too_far:\n"
+" movl 8(%%esp), %%esi\n"
+" movl $4, 72(%%esp)\n"
+" jmp .L_break_loop_with_status\n"
+
+".L_break_loop:\n"
+" movl $0, 72(%%esp)\n"
+
+".L_break_loop_with_status:\n"
+/* put in, out, bits, and hold back into ar and pop esp */
+" movl %%esi, 8(%%esp)\n" /* save in */
+" movl %%edi, 16(%%esp)\n" /* save out */
+" movl %%ebx, 44(%%esp)\n" /* save bits */
+" movl %%edx, 40(%%esp)\n" /* save hold */
+" movl 4(%%esp), %%ebp\n" /* restore esp, ebp */
+" movl (%%esp), %%esp\n"
+ :
+ : "m" (ar)
+ : "memory", "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi"
+ );
+#elif defined( _MSC_VER ) && ! defined( _M_AMD64 )
+ __asm {
+ lea eax, ar
+ mov [eax], esp /* save esp, ebp */
+ mov [eax+4], ebp
+ mov esp, eax
+ mov esi, [esp+8] /* esi = in */
+ mov edi, [esp+16] /* edi = out */
+ mov edx, [esp+40] /* edx = hold */
+ mov ebx, [esp+44] /* ebx = bits */
+ mov ebp, [esp+32] /* ebp = lcode */
+
+ cld
+ jmp L_do_loop
+
+ALIGN 4
+L_while_test:
+ cmp [esp+24], edi
+ jbe L_break_loop
+ cmp [esp+12], esi
+ jbe L_break_loop
+
+L_do_loop:
+ cmp bl, 15
+ ja L_get_length_code /* if (15 < bits) */
+
+ xor eax, eax
+ lodsw /* al = *(ushort *)in++ */
+ mov cl, bl /* cl = bits, needs it for shifting */
+ add bl, 16 /* bits += 16 */
+ shl eax, cl
+ or edx, eax /* hold |= *((ushort *)in)++ << bits */
+
+L_get_length_code:
+ mov eax, [esp+56] /* eax = lmask */
+ and eax, edx /* eax &= hold */
+ mov eax, [ebp+eax*4] /* eax = lcode[hold & lmask] */
+
+L_dolen:
+ mov cl, ah /* cl = this.bits */
+ sub bl, ah /* bits -= this.bits */
+ shr edx, cl /* hold >>= this.bits */
+
+ test al, al
+ jnz L_test_for_length_base /* if (op != 0) 45.7% */
+
+ shr eax, 16 /* output this.val char */
+ stosb
+ jmp L_while_test
+
+ALIGN 4
+L_test_for_length_base:
+ mov ecx, eax /* len = this */
+ shr ecx, 16 /* len = this.val */
+ mov [esp+64], ecx /* save len */
+ mov cl, al
+
+ test al, 16
+ jz L_test_for_second_level_length /* if ((op & 16) == 0) 8% */
+ and cl, 15 /* op &= 15 */
+ jz L_decode_distance /* if (!op) */
+ cmp bl, cl
+ jae L_add_bits_to_len /* if (op <= bits) */
+
+ mov ch, cl /* stash op in ch, freeing cl */
+ xor eax, eax
+ lodsw /* al = *(ushort *)in++ */
+ mov cl, bl /* cl = bits, needs it for shifting */
+ add bl, 16 /* bits += 16 */
+ shl eax, cl
+ or edx, eax /* hold |= *((ushort *)in)++ << bits */
+ mov cl, ch /* move op back to ecx */
+
+L_add_bits_to_len:
+ sub bl, cl
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx /* eax &= hold */
+ shr edx, cl
+ add [esp+64], eax /* len += hold & mask[op] */
+
+L_decode_distance:
+ cmp bl, 15
+ ja L_get_distance_code /* if (15 < bits) */
+
+ xor eax, eax
+ lodsw /* al = *(ushort *)in++ */
+ mov cl, bl /* cl = bits, needs it for shifting */
+ add bl, 16 /* bits += 16 */
+ shl eax, cl
+ or edx, eax /* hold |= *((ushort *)in)++ << bits */
+
+L_get_distance_code:
+ mov eax, [esp+60] /* eax = dmask */
+ mov ecx, [esp+36] /* ecx = dcode */
+ and eax, edx /* eax &= hold */
+ mov eax, [ecx+eax*4]/* eax = dcode[hold & dmask] */
+
+L_dodist:
+ mov ebp, eax /* dist = this */
+ shr ebp, 16 /* dist = this.val */
+ mov cl, ah
+ sub bl, ah /* bits -= this.bits */
+ shr edx, cl /* hold >>= this.bits */
+ mov cl, al /* cl = this.op */
+
+ test al, 16 /* if ((op & 16) == 0) */
+ jz L_test_for_second_level_dist
+ and cl, 15 /* op &= 15 */
+ jz L_check_dist_one
+ cmp bl, cl
+ jae L_add_bits_to_dist /* if (op <= bits) 97.6% */
+
+ mov ch, cl /* stash op in ch, freeing cl */
+ xor eax, eax
+ lodsw /* al = *(ushort *)in++ */
+ mov cl, bl /* cl = bits, needs it for shifting */
+ add bl, 16 /* bits += 16 */
+ shl eax, cl
+ or edx, eax /* hold |= *((ushort *)in)++ << bits */
+ mov cl, ch /* move op back to ecx */
+
+L_add_bits_to_dist:
+ sub bl, cl
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax /* (1 << op) - 1 */
+ and eax, edx /* eax &= hold */
+ shr edx, cl
+ add ebp, eax /* dist += hold & ((1 << op) - 1) */
+
+L_check_window:
+ mov [esp+8], esi /* save in so from can use it's reg */
+ mov eax, edi
+ sub eax, [esp+20] /* nbytes = out - beg */
+
+ cmp eax, ebp
+ jb L_clip_window /* if (dist > nbytes) 4.2% */
+
+ mov ecx, [esp+64] /* ecx = len */
+ mov esi, edi
+ sub esi, ebp /* from = out - dist */
+
+ sar ecx, 1
+ jnc L_copy_two
+
+ rep movsw
+ mov al, [esi]
+ mov [edi], al
+ inc edi
+
+ mov esi, [esp+8] /* move in back to %esi, toss from */
+ mov ebp, [esp+32] /* ebp = lcode */
+ jmp L_while_test
+
+L_copy_two:
+ rep movsw
+ mov esi, [esp+8] /* move in back to %esi, toss from */
+ mov ebp, [esp+32] /* ebp = lcode */
+ jmp L_while_test
+
+ALIGN 4
+L_check_dist_one:
+ cmp ebp, 1 /* if dist 1, is a memset */
+ jne L_check_window
+ cmp [esp+20], edi
+ je L_check_window /* out == beg, if outside window */
+
+ mov ecx, [esp+64] /* ecx = len */
+ mov al, [edi-1]
+ mov ah, al
+
+ sar ecx, 1
+ jnc L_set_two
+ mov [edi], al /* memset out with from[-1] */
+ inc edi
+
+L_set_two:
+ rep stosw
+ mov ebp, [esp+32] /* ebp = lcode */
+ jmp L_while_test
+
+ALIGN 4
+L_test_for_second_level_length:
+ test al, 64
+ jnz L_test_for_end_of_block /* if ((op & 64) != 0) */
+
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx /* eax &= hold */
+ add eax, [esp+64] /* eax += len */
+ mov eax, [ebp+eax*4] /* eax = lcode[val+(hold&mask[op])]*/
+ jmp L_dolen
+
+ALIGN 4
+L_test_for_second_level_dist:
+ test al, 64
+ jnz L_invalid_distance_code /* if ((op & 64) != 0) */
+
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx /* eax &= hold */
+ add eax, ebp /* eax += dist */
+ mov ecx, [esp+36] /* ecx = dcode */
+ mov eax, [ecx+eax*4] /* eax = dcode[val+(hold&mask[op])]*/
+ jmp L_dodist
+
+ALIGN 4
+L_clip_window:
+ mov ecx, eax
+ mov eax, [esp+48] /* eax = wsize */
+ neg ecx /* nbytes = -nbytes */
+ mov esi, [esp+28] /* from = window */
+
+ cmp eax, ebp
+ jb L_invalid_distance_too_far /* if (dist > wsize) */
+
+ add ecx, ebp /* nbytes = dist - nbytes */
+ cmp dword ptr [esp+52], 0
+ jne L_wrap_around_window /* if (write != 0) */
+
+ sub eax, ecx
+ add esi, eax /* from += wsize - nbytes */
+
+ mov eax, [esp+64] /* eax = len */
+ cmp eax, ecx
+ jbe L_do_copy /* if (nbytes >= len) */
+
+ sub eax, ecx /* len -= nbytes */
+ rep movsb
+ mov esi, edi
+ sub esi, ebp /* from = out - dist */
+ jmp L_do_copy
+
+ALIGN 4
+L_wrap_around_window:
+ mov eax, [esp+52] /* eax = write */
+ cmp ecx, eax
+ jbe L_contiguous_in_window /* if (write >= nbytes) */
+
+ add esi, [esp+48] /* from += wsize */
+ add esi, eax /* from += write */
+ sub esi, ecx /* from -= nbytes */
+ sub ecx, eax /* nbytes -= write */
+
+ mov eax, [esp+64] /* eax = len */
+ cmp eax, ecx
+ jbe L_do_copy /* if (nbytes >= len) */
+
+ sub eax, ecx /* len -= nbytes */
+ rep movsb
+ mov esi, [esp+28] /* from = window */
+ mov ecx, [esp+52] /* nbytes = write */
+ cmp eax, ecx
+ jbe L_do_copy /* if (nbytes >= len) */
+
+ sub eax, ecx /* len -= nbytes */
+ rep movsb
+ mov esi, edi
+ sub esi, ebp /* from = out - dist */
+ jmp L_do_copy
+
+ALIGN 4
+L_contiguous_in_window:
+ add esi, eax
+ sub esi, ecx /* from += write - nbytes */
+
+ mov eax, [esp+64] /* eax = len */
+ cmp eax, ecx
+ jbe L_do_copy /* if (nbytes >= len) */
+
+ sub eax, ecx /* len -= nbytes */
+ rep movsb
+ mov esi, edi
+ sub esi, ebp /* from = out - dist */
+ jmp L_do_copy
+
+ALIGN 4
+L_do_copy:
+ mov ecx, eax
+ rep movsb
+
+ mov esi, [esp+8] /* move in back to %esi, toss from */
+ mov ebp, [esp+32] /* ebp = lcode */
+ jmp L_while_test
+
+L_test_for_end_of_block:
+ test al, 32
+ jz L_invalid_literal_length_code
+ mov dword ptr [esp+72], 1
+ jmp L_break_loop_with_status
+
+L_invalid_literal_length_code:
+ mov dword ptr [esp+72], 2
+ jmp L_break_loop_with_status
+
+L_invalid_distance_code:
+ mov dword ptr [esp+72], 3
+ jmp L_break_loop_with_status
+
+L_invalid_distance_too_far:
+ mov esi, [esp+4]
+ mov dword ptr [esp+72], 4
+ jmp L_break_loop_with_status
+
+L_break_loop:
+ mov dword ptr [esp+72], 0
+
+L_break_loop_with_status:
+/* put in, out, bits, and hold back into ar and pop esp */
+ mov [esp+8], esi /* save in */
+ mov [esp+16], edi /* save out */
+ mov [esp+44], ebx /* save bits */
+ mov [esp+40], edx /* save hold */
+ mov ebp, [esp+4] /* restore esp, ebp */
+ mov esp, [esp]
+ }
+#else
+#error "x86 architecture not defined"
+#endif
+
+ if (ar.status > 1) {
+ if (ar.status == 2)
+ strm->msg = "invalid literal/length code";
+ else if (ar.status == 3)
+ strm->msg = "invalid distance code";
+ else
+ strm->msg = "invalid distance too far back";
+ state->mode = BAD;
+ }
+ else if ( ar.status == 1 ) {
+ state->mode = TYPE;
+ }
+
+ /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+ ar.len = ar.bits >> 3;
+ ar.in -= ar.len;
+ ar.bits -= ar.len << 3;
+ ar.hold &= (1U << ar.bits) - 1;
+
+ /* update state and return */
+ strm->next_in = ar.in;
+ strm->next_out = ar.out;
+ strm->avail_in = (unsigned)(ar.in < ar.last ?
+ PAD_AVAIL_IN + (ar.last - ar.in) :
+ PAD_AVAIL_IN - (ar.in - ar.last));
+ strm->avail_out = (unsigned)(ar.out < ar.end ?
+ PAD_AVAIL_OUT + (ar.end - ar.out) :
+ PAD_AVAIL_OUT - (ar.out - ar.end));
+ state->hold = ar.hold;
+ state->bits = ar.bits;
+ return;
+}
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffast.S b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffast.S
new file mode 100644
index 000000000..2245a2905
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/inflate86/inffast.S
@@ -0,0 +1,1368 @@
+/*
+ * inffast.S is a hand tuned assembler version of:
+ *
+ * inffast.c -- fast decoding
+ * Copyright (C) 1995-2003 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ * Copyright (C) 2003 Chris Anderson <christop@charm.net>
+ * Please use the copyright conditions above.
+ *
+ * This version (Jan-23-2003) of inflate_fast was coded and tested under
+ * GNU/Linux on a pentium 3, using the gcc-3.2 compiler distribution. On that
+ * machine, I found that gzip style archives decompressed about 20% faster than
+ * the gcc-3.2 -O3 -fomit-frame-pointer compiled version. Your results will
+ * depend on how large of a buffer is used for z_stream.next_in & next_out
+ * (8K-32K worked best for my 256K cpu cache) and how much overhead there is in
+ * stream processing I/O and crc32/addler32. In my case, this routine used
+ * 70% of the cpu time and crc32 used 20%.
+ *
+ * I am confident that this version will work in the general case, but I have
+ * not tested a wide variety of datasets or a wide variety of platforms.
+ *
+ * Jan-24-2003 -- Added -DUSE_MMX define for slightly faster inflating.
+ * It should be a runtime flag instead of compile time flag...
+ *
+ * Jan-26-2003 -- Added runtime check for MMX support with cpuid instruction.
+ * With -DUSE_MMX, only MMX code is compiled. With -DNO_MMX, only non-MMX code
+ * is compiled. Without either option, runtime detection is enabled. Runtime
+ * detection should work on all modern cpus and the recomended algorithm (flip
+ * ID bit on eflags and then use the cpuid instruction) is used in many
+ * multimedia applications. Tested under win2k with gcc-2.95 and gas-2.12
+ * distributed with cygwin3. Compiling with gcc-2.95 -c inffast.S -o
+ * inffast.obj generates a COFF object which can then be linked with MSVC++
+ * compiled code. Tested under FreeBSD 4.7 with gcc-2.95.
+ *
+ * Jan-28-2003 -- Tested Athlon XP... MMX mode is slower than no MMX (and
+ * slower than compiler generated code). Adjusted cpuid check to use the MMX
+ * code only for Pentiums < P4 until I have more data on the P4. Speed
+ * improvment is only about 15% on the Athlon when compared with code generated
+ * with MSVC++. Not sure yet, but I think the P4 will also be slower using the
+ * MMX mode because many of it's x86 ALU instructions execute in .5 cycles and
+ * have less latency than MMX ops. Added code to buffer the last 11 bytes of
+ * the input stream since the MMX code grabs bits in chunks of 32, which
+ * differs from the inffast.c algorithm. I don't think there would have been
+ * read overruns where a page boundary was crossed (a segfault), but there
+ * could have been overruns when next_in ends on unaligned memory (unintialized
+ * memory read).
+ *
+ * Mar-13-2003 -- P4 MMX is slightly slower than P4 NO_MMX. I created a C
+ * version of the non-MMX code so that it doesn't depend on zstrm and zstate
+ * structure offsets which are hard coded in this file. This was last tested
+ * with zlib-1.2.0 which is currently in beta testing, newer versions of this
+ * and inffas86.c can be found at http://www.eetbeetee.com/zlib/ and
+ * http://www.charm.net/~christop/zlib/
+ */
+
+
+/*
+ * if you have underscore linking problems (_inflate_fast undefined), try
+ * using -DGAS_COFF
+ */
+#if ! defined( GAS_COFF ) && ! defined( GAS_ELF )
+
+#if defined( WIN32 ) || defined( __CYGWIN__ )
+#define GAS_COFF /* windows object format */
+#else
+#define GAS_ELF
+#endif
+
+#endif /* ! GAS_COFF && ! GAS_ELF */
+
+
+#if defined( GAS_COFF )
+
+/* coff externals have underscores */
+#define inflate_fast _inflate_fast
+#define inflate_fast_use_mmx _inflate_fast_use_mmx
+
+#endif /* GAS_COFF */
+
+
+.file "inffast.S"
+
+.globl inflate_fast
+
+.text
+.align 4,0
+.L_invalid_literal_length_code_msg:
+.string "invalid literal/length code"
+
+.align 4,0
+.L_invalid_distance_code_msg:
+.string "invalid distance code"
+
+.align 4,0
+.L_invalid_distance_too_far_msg:
+.string "invalid distance too far back"
+
+#if ! defined( NO_MMX )
+.align 4,0
+.L_mask: /* mask[N] = ( 1 << N ) - 1 */
+.long 0
+.long 1
+.long 3
+.long 7
+.long 15
+.long 31
+.long 63
+.long 127
+.long 255
+.long 511
+.long 1023
+.long 2047
+.long 4095
+.long 8191
+.long 16383
+.long 32767
+.long 65535
+.long 131071
+.long 262143
+.long 524287
+.long 1048575
+.long 2097151
+.long 4194303
+.long 8388607
+.long 16777215
+.long 33554431
+.long 67108863
+.long 134217727
+.long 268435455
+.long 536870911
+.long 1073741823
+.long 2147483647
+.long 4294967295
+#endif /* NO_MMX */
+
+.text
+
+/*
+ * struct z_stream offsets, in zlib.h
+ */
+#define next_in_strm 0 /* strm->next_in */
+#define avail_in_strm 4 /* strm->avail_in */
+#define next_out_strm 12 /* strm->next_out */
+#define avail_out_strm 16 /* strm->avail_out */
+#define msg_strm 24 /* strm->msg */
+#define state_strm 28 /* strm->state */
+
+/*
+ * struct inflate_state offsets, in inflate.h
+ */
+#define mode_state 0 /* state->mode */
+#define wsize_state 32 /* state->wsize */
+#define write_state 40 /* state->write */
+#define window_state 44 /* state->window */
+#define hold_state 48 /* state->hold */
+#define bits_state 52 /* state->bits */
+#define lencode_state 68 /* state->lencode */
+#define distcode_state 72 /* state->distcode */
+#define lenbits_state 76 /* state->lenbits */
+#define distbits_state 80 /* state->distbits */
+
+/*
+ * inflate_fast's activation record
+ */
+#define local_var_size 64 /* how much local space for vars */
+#define strm_sp 88 /* first arg: z_stream * (local_var_size + 24) */
+#define start_sp 92 /* second arg: unsigned int (local_var_size + 28) */
+
+/*
+ * offsets for local vars on stack
+ */
+#define out 60 /* unsigned char* */
+#define window 56 /* unsigned char* */
+#define wsize 52 /* unsigned int */
+#define write 48 /* unsigned int */
+#define in 44 /* unsigned char* */
+#define beg 40 /* unsigned char* */
+#define buf 28 /* char[ 12 ] */
+#define len 24 /* unsigned int */
+#define last 20 /* unsigned char* */
+#define end 16 /* unsigned char* */
+#define dcode 12 /* code* */
+#define lcode 8 /* code* */
+#define dmask 4 /* unsigned int */
+#define lmask 0 /* unsigned int */
+
+/*
+ * typedef enum inflate_mode consts, in inflate.h
+ */
+#define INFLATE_MODE_TYPE 11 /* state->mode flags enum-ed in inflate.h */
+#define INFLATE_MODE_BAD 26
+
+
+#if ! defined( USE_MMX ) && ! defined( NO_MMX )
+
+#define RUN_TIME_MMX
+
+#define CHECK_MMX 1
+#define DO_USE_MMX 2
+#define DONT_USE_MMX 3
+
+.globl inflate_fast_use_mmx
+
+.data
+
+.align 4,0
+inflate_fast_use_mmx: /* integer flag for run time control 1=check,2=mmx,3=no */
+.long CHECK_MMX
+
+#if defined( GAS_ELF )
+/* elf info */
+.type inflate_fast_use_mmx,@object
+.size inflate_fast_use_mmx,4
+#endif
+
+#endif /* RUN_TIME_MMX */
+
+#if defined( GAS_COFF )
+/* coff info: scl 2 = extern, type 32 = function */
+.def inflate_fast; .scl 2; .type 32; .endef
+#endif
+
+.text
+
+.align 32,0x90
+inflate_fast:
+ pushl %edi
+ pushl %esi
+ pushl %ebp
+ pushl %ebx
+ pushf /* save eflags (strm_sp, state_sp assumes this is 32 bits) */
+ subl $local_var_size, %esp
+ cld
+
+#define strm_r %esi
+#define state_r %edi
+
+ movl strm_sp(%esp), strm_r
+ movl state_strm(strm_r), state_r
+
+ /* in = strm->next_in;
+ * out = strm->next_out;
+ * last = in + strm->avail_in - 11;
+ * beg = out - (start - strm->avail_out);
+ * end = out + (strm->avail_out - 257);
+ */
+ movl avail_in_strm(strm_r), %edx
+ movl next_in_strm(strm_r), %eax
+
+ addl %eax, %edx /* avail_in += next_in */
+ subl $11, %edx /* avail_in -= 11 */
+
+ movl %eax, in(%esp)
+ movl %edx, last(%esp)
+
+ movl start_sp(%esp), %ebp
+ movl avail_out_strm(strm_r), %ecx
+ movl next_out_strm(strm_r), %ebx
+
+ subl %ecx, %ebp /* start -= avail_out */
+ negl %ebp /* start = -start */
+ addl %ebx, %ebp /* start += next_out */
+
+ subl $257, %ecx /* avail_out -= 257 */
+ addl %ebx, %ecx /* avail_out += out */
+
+ movl %ebx, out(%esp)
+ movl %ebp, beg(%esp)
+ movl %ecx, end(%esp)
+
+ /* wsize = state->wsize;
+ * write = state->write;
+ * window = state->window;
+ * hold = state->hold;
+ * bits = state->bits;
+ * lcode = state->lencode;
+ * dcode = state->distcode;
+ * lmask = ( 1 << state->lenbits ) - 1;
+ * dmask = ( 1 << state->distbits ) - 1;
+ */
+
+ movl lencode_state(state_r), %eax
+ movl distcode_state(state_r), %ecx
+
+ movl %eax, lcode(%esp)
+ movl %ecx, dcode(%esp)
+
+ movl $1, %eax
+ movl lenbits_state(state_r), %ecx
+ shll %cl, %eax
+ decl %eax
+ movl %eax, lmask(%esp)
+
+ movl $1, %eax
+ movl distbits_state(state_r), %ecx
+ shll %cl, %eax
+ decl %eax
+ movl %eax, dmask(%esp)
+
+ movl wsize_state(state_r), %eax
+ movl write_state(state_r), %ecx
+ movl window_state(state_r), %edx
+
+ movl %eax, wsize(%esp)
+ movl %ecx, write(%esp)
+ movl %edx, window(%esp)
+
+ movl hold_state(state_r), %ebp
+ movl bits_state(state_r), %ebx
+
+#undef strm_r
+#undef state_r
+
+#define in_r %esi
+#define from_r %esi
+#define out_r %edi
+
+ movl in(%esp), in_r
+ movl last(%esp), %ecx
+ cmpl in_r, %ecx
+ ja .L_align_long /* if in < last */
+
+ addl $11, %ecx /* ecx = &in[ avail_in ] */
+ subl in_r, %ecx /* ecx = avail_in */
+ movl $12, %eax
+ subl %ecx, %eax /* eax = 12 - avail_in */
+ leal buf(%esp), %edi
+ rep movsb /* memcpy( buf, in, avail_in ) */
+ movl %eax, %ecx
+ xorl %eax, %eax
+ rep stosb /* memset( &buf[ avail_in ], 0, 12 - avail_in ) */
+ leal buf(%esp), in_r /* in = buf */
+ movl in_r, last(%esp) /* last = in, do just one iteration */
+ jmp .L_is_aligned
+
+ /* align in_r on long boundary */
+.L_align_long:
+ testl $3, in_r
+ jz .L_is_aligned
+ xorl %eax, %eax
+ movb (in_r), %al
+ incl in_r
+ movl %ebx, %ecx
+ addl $8, %ebx
+ shll %cl, %eax
+ orl %eax, %ebp
+ jmp .L_align_long
+
+.L_is_aligned:
+ movl out(%esp), out_r
+
+#if defined( NO_MMX )
+ jmp .L_do_loop
+#endif
+
+#if defined( USE_MMX )
+ jmp .L_init_mmx
+#endif
+
+/*** Runtime MMX check ***/
+
+#if defined( RUN_TIME_MMX )
+.L_check_mmx:
+ cmpl $DO_USE_MMX, inflate_fast_use_mmx
+ je .L_init_mmx
+ ja .L_do_loop /* > 2 */
+
+ pushl %eax
+ pushl %ebx
+ pushl %ecx
+ pushl %edx
+ pushf
+ movl (%esp), %eax /* copy eflags to eax */
+ xorl $0x200000, (%esp) /* try toggling ID bit of eflags (bit 21)
+ * to see if cpu supports cpuid...
+ * ID bit method not supported by NexGen but
+ * bios may load a cpuid instruction and
+ * cpuid may be disabled on Cyrix 5-6x86 */
+ popf
+ pushf
+ popl %edx /* copy new eflags to edx */
+ xorl %eax, %edx /* test if ID bit is flipped */
+ jz .L_dont_use_mmx /* not flipped if zero */
+ xorl %eax, %eax
+ cpuid
+ cmpl $0x756e6547, %ebx /* check for GenuineIntel in ebx,ecx,edx */
+ jne .L_dont_use_mmx
+ cmpl $0x6c65746e, %ecx
+ jne .L_dont_use_mmx
+ cmpl $0x49656e69, %edx
+ jne .L_dont_use_mmx
+ movl $1, %eax
+ cpuid /* get cpu features */
+ shrl $8, %eax
+ andl $15, %eax
+ cmpl $6, %eax /* check for Pentium family, is 0xf for P4 */
+ jne .L_dont_use_mmx
+ testl $0x800000, %edx /* test if MMX feature is set (bit 23) */
+ jnz .L_use_mmx
+ jmp .L_dont_use_mmx
+.L_use_mmx:
+ movl $DO_USE_MMX, inflate_fast_use_mmx
+ jmp .L_check_mmx_pop
+.L_dont_use_mmx:
+ movl $DONT_USE_MMX, inflate_fast_use_mmx
+.L_check_mmx_pop:
+ popl %edx
+ popl %ecx
+ popl %ebx
+ popl %eax
+ jmp .L_check_mmx
+#endif
+
+
+/*** Non-MMX code ***/
+
+#if defined ( NO_MMX ) || defined( RUN_TIME_MMX )
+
+#define hold_r %ebp
+#define bits_r %bl
+#define bitslong_r %ebx
+
+.align 32,0x90
+.L_while_test:
+ /* while (in < last && out < end)
+ */
+ cmpl out_r, end(%esp)
+ jbe .L_break_loop /* if (out >= end) */
+
+ cmpl in_r, last(%esp)
+ jbe .L_break_loop
+
+.L_do_loop:
+ /* regs: %esi = in, %ebp = hold, %bl = bits, %edi = out
+ *
+ * do {
+ * if (bits < 15) {
+ * hold |= *((unsigned short *)in)++ << bits;
+ * bits += 16
+ * }
+ * this = lcode[hold & lmask]
+ */
+ cmpb $15, bits_r
+ ja .L_get_length_code /* if (15 < bits) */
+
+ xorl %eax, %eax
+ lodsw /* al = *(ushort *)in++ */
+ movb bits_r, %cl /* cl = bits, needs it for shifting */
+ addb $16, bits_r /* bits += 16 */
+ shll %cl, %eax
+ orl %eax, hold_r /* hold |= *((ushort *)in)++ << bits */
+
+.L_get_length_code:
+ movl lmask(%esp), %edx /* edx = lmask */
+ movl lcode(%esp), %ecx /* ecx = lcode */
+ andl hold_r, %edx /* edx &= hold */
+ movl (%ecx,%edx,4), %eax /* eax = lcode[hold & lmask] */
+
+.L_dolen:
+ /* regs: %esi = in, %ebp = hold, %bl = bits, %edi = out
+ *
+ * dolen:
+ * bits -= this.bits;
+ * hold >>= this.bits
+ */
+ movb %ah, %cl /* cl = this.bits */
+ subb %ah, bits_r /* bits -= this.bits */
+ shrl %cl, hold_r /* hold >>= this.bits */
+
+ /* check if op is a literal
+ * if (op == 0) {
+ * PUP(out) = this.val;
+ * }
+ */
+ testb %al, %al
+ jnz .L_test_for_length_base /* if (op != 0) 45.7% */
+
+ shrl $16, %eax /* output this.val char */
+ stosb
+ jmp .L_while_test
+
+.L_test_for_length_base:
+ /* regs: %esi = in, %ebp = hold, %bl = bits, %edi = out, %edx = len
+ *
+ * else if (op & 16) {
+ * len = this.val
+ * op &= 15
+ * if (op) {
+ * if (op > bits) {
+ * hold |= *((unsigned short *)in)++ << bits;
+ * bits += 16
+ * }
+ * len += hold & mask[op];
+ * bits -= op;
+ * hold >>= op;
+ * }
+ */
+#define len_r %edx
+ movl %eax, len_r /* len = this */
+ shrl $16, len_r /* len = this.val */
+ movb %al, %cl
+
+ testb $16, %al
+ jz .L_test_for_second_level_length /* if ((op & 16) == 0) 8% */
+ andb $15, %cl /* op &= 15 */
+ jz .L_save_len /* if (!op) */
+ cmpb %cl, bits_r
+ jae .L_add_bits_to_len /* if (op <= bits) */
+
+ movb %cl, %ch /* stash op in ch, freeing cl */
+ xorl %eax, %eax
+ lodsw /* al = *(ushort *)in++ */
+ movb bits_r, %cl /* cl = bits, needs it for shifting */
+ addb $16, bits_r /* bits += 16 */
+ shll %cl, %eax
+ orl %eax, hold_r /* hold |= *((ushort *)in)++ << bits */
+ movb %ch, %cl /* move op back to ecx */
+
+.L_add_bits_to_len:
+ movl $1, %eax
+ shll %cl, %eax
+ decl %eax
+ subb %cl, bits_r
+ andl hold_r, %eax /* eax &= hold */
+ shrl %cl, hold_r
+ addl %eax, len_r /* len += hold & mask[op] */
+
+.L_save_len:
+ movl len_r, len(%esp) /* save len */
+#undef len_r
+
+.L_decode_distance:
+ /* regs: %esi = in, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ *
+ * if (bits < 15) {
+ * hold |= *((unsigned short *)in)++ << bits;
+ * bits += 16
+ * }
+ * this = dcode[hold & dmask];
+ * dodist:
+ * bits -= this.bits;
+ * hold >>= this.bits;
+ * op = this.op;
+ */
+
+ cmpb $15, bits_r
+ ja .L_get_distance_code /* if (15 < bits) */
+
+ xorl %eax, %eax
+ lodsw /* al = *(ushort *)in++ */
+ movb bits_r, %cl /* cl = bits, needs it for shifting */
+ addb $16, bits_r /* bits += 16 */
+ shll %cl, %eax
+ orl %eax, hold_r /* hold |= *((ushort *)in)++ << bits */
+
+.L_get_distance_code:
+ movl dmask(%esp), %edx /* edx = dmask */
+ movl dcode(%esp), %ecx /* ecx = dcode */
+ andl hold_r, %edx /* edx &= hold */
+ movl (%ecx,%edx,4), %eax /* eax = dcode[hold & dmask] */
+
+#define dist_r %edx
+.L_dodist:
+ movl %eax, dist_r /* dist = this */
+ shrl $16, dist_r /* dist = this.val */
+ movb %ah, %cl
+ subb %ah, bits_r /* bits -= this.bits */
+ shrl %cl, hold_r /* hold >>= this.bits */
+
+ /* if (op & 16) {
+ * dist = this.val
+ * op &= 15
+ * if (op > bits) {
+ * hold |= *((unsigned short *)in)++ << bits;
+ * bits += 16
+ * }
+ * dist += hold & mask[op];
+ * bits -= op;
+ * hold >>= op;
+ */
+ movb %al, %cl /* cl = this.op */
+
+ testb $16, %al /* if ((op & 16) == 0) */
+ jz .L_test_for_second_level_dist
+ andb $15, %cl /* op &= 15 */
+ jz .L_check_dist_one
+ cmpb %cl, bits_r
+ jae .L_add_bits_to_dist /* if (op <= bits) 97.6% */
+
+ movb %cl, %ch /* stash op in ch, freeing cl */
+ xorl %eax, %eax
+ lodsw /* al = *(ushort *)in++ */
+ movb bits_r, %cl /* cl = bits, needs it for shifting */
+ addb $16, bits_r /* bits += 16 */
+ shll %cl, %eax
+ orl %eax, hold_r /* hold |= *((ushort *)in)++ << bits */
+ movb %ch, %cl /* move op back to ecx */
+
+.L_add_bits_to_dist:
+ movl $1, %eax
+ shll %cl, %eax
+ decl %eax /* (1 << op) - 1 */
+ subb %cl, bits_r
+ andl hold_r, %eax /* eax &= hold */
+ shrl %cl, hold_r
+ addl %eax, dist_r /* dist += hold & ((1 << op) - 1) */
+ jmp .L_check_window
+
+.L_check_window:
+ /* regs: %esi = from, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ * %ecx = nbytes
+ *
+ * nbytes = out - beg;
+ * if (dist <= nbytes) {
+ * from = out - dist;
+ * do {
+ * PUP(out) = PUP(from);
+ * } while (--len > 0) {
+ * }
+ */
+
+ movl in_r, in(%esp) /* save in so from can use it's reg */
+ movl out_r, %eax
+ subl beg(%esp), %eax /* nbytes = out - beg */
+
+ cmpl dist_r, %eax
+ jb .L_clip_window /* if (dist > nbytes) 4.2% */
+
+ movl len(%esp), %ecx
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+
+ subl $3, %ecx
+ movb (from_r), %al
+ movb %al, (out_r)
+ movb 1(from_r), %al
+ movb 2(from_r), %dl
+ addl $3, from_r
+ movb %al, 1(out_r)
+ movb %dl, 2(out_r)
+ addl $3, out_r
+ rep movsb
+
+ movl in(%esp), in_r /* move in back to %esi, toss from */
+ jmp .L_while_test
+
+.align 16,0x90
+.L_check_dist_one:
+ cmpl $1, dist_r
+ jne .L_check_window
+ cmpl out_r, beg(%esp)
+ je .L_check_window
+
+ decl out_r
+ movl len(%esp), %ecx
+ movb (out_r), %al
+ subl $3, %ecx
+
+ movb %al, 1(out_r)
+ movb %al, 2(out_r)
+ movb %al, 3(out_r)
+ addl $4, out_r
+ rep stosb
+
+ jmp .L_while_test
+
+.align 16,0x90
+.L_test_for_second_level_length:
+ /* else if ((op & 64) == 0) {
+ * this = lcode[this.val + (hold & mask[op])];
+ * }
+ */
+ testb $64, %al
+ jnz .L_test_for_end_of_block /* if ((op & 64) != 0) */
+
+ movl $1, %eax
+ shll %cl, %eax
+ decl %eax
+ andl hold_r, %eax /* eax &= hold */
+ addl %edx, %eax /* eax += this.val */
+ movl lcode(%esp), %edx /* edx = lcode */
+ movl (%edx,%eax,4), %eax /* eax = lcode[val + (hold&mask[op])] */
+ jmp .L_dolen
+
+.align 16,0x90
+.L_test_for_second_level_dist:
+ /* else if ((op & 64) == 0) {
+ * this = dcode[this.val + (hold & mask[op])];
+ * }
+ */
+ testb $64, %al
+ jnz .L_invalid_distance_code /* if ((op & 64) != 0) */
+
+ movl $1, %eax
+ shll %cl, %eax
+ decl %eax
+ andl hold_r, %eax /* eax &= hold */
+ addl %edx, %eax /* eax += this.val */
+ movl dcode(%esp), %edx /* edx = dcode */
+ movl (%edx,%eax,4), %eax /* eax = dcode[val + (hold&mask[op])] */
+ jmp .L_dodist
+
+.align 16,0x90
+.L_clip_window:
+ /* regs: %esi = from, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ * %ecx = nbytes
+ *
+ * else {
+ * if (dist > wsize) {
+ * invalid distance
+ * }
+ * from = window;
+ * nbytes = dist - nbytes;
+ * if (write == 0) {
+ * from += wsize - nbytes;
+ */
+#define nbytes_r %ecx
+ movl %eax, nbytes_r
+ movl wsize(%esp), %eax /* prepare for dist compare */
+ negl nbytes_r /* nbytes = -nbytes */
+ movl window(%esp), from_r /* from = window */
+
+ cmpl dist_r, %eax
+ jb .L_invalid_distance_too_far /* if (dist > wsize) */
+
+ addl dist_r, nbytes_r /* nbytes = dist - nbytes */
+ cmpl $0, write(%esp)
+ jne .L_wrap_around_window /* if (write != 0) */
+
+ subl nbytes_r, %eax
+ addl %eax, from_r /* from += wsize - nbytes */
+
+ /* regs: %esi = from, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ * %ecx = nbytes, %eax = len
+ *
+ * if (nbytes < len) {
+ * len -= nbytes;
+ * do {
+ * PUP(out) = PUP(from);
+ * } while (--nbytes);
+ * from = out - dist;
+ * }
+ * }
+ */
+#define len_r %eax
+ movl len(%esp), len_r
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1 /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1
+
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1 /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1
+
+.L_wrap_around_window:
+ /* regs: %esi = from, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ * %ecx = nbytes, %eax = write, %eax = len
+ *
+ * else if (write < nbytes) {
+ * from += wsize + write - nbytes;
+ * nbytes -= write;
+ * if (nbytes < len) {
+ * len -= nbytes;
+ * do {
+ * PUP(out) = PUP(from);
+ * } while (--nbytes);
+ * from = window;
+ * nbytes = write;
+ * if (nbytes < len) {
+ * len -= nbytes;
+ * do {
+ * PUP(out) = PUP(from);
+ * } while(--nbytes);
+ * from = out - dist;
+ * }
+ * }
+ * }
+ */
+#define write_r %eax
+ movl write(%esp), write_r
+ cmpl write_r, nbytes_r
+ jbe .L_contiguous_in_window /* if (write >= nbytes) */
+
+ addl wsize(%esp), from_r
+ addl write_r, from_r
+ subl nbytes_r, from_r /* from += wsize + write - nbytes */
+ subl write_r, nbytes_r /* nbytes -= write */
+#undef write_r
+
+ movl len(%esp), len_r
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1 /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl window(%esp), from_r /* from = window */
+ movl write(%esp), nbytes_r /* nbytes = write */
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1 /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1
+
+.L_contiguous_in_window:
+ /* regs: %esi = from, %ebp = hold, %bl = bits, %edi = out, %edx = dist
+ * %ecx = nbytes, %eax = write, %eax = len
+ *
+ * else {
+ * from += write - nbytes;
+ * if (nbytes < len) {
+ * len -= nbytes;
+ * do {
+ * PUP(out) = PUP(from);
+ * } while (--nbytes);
+ * from = out - dist;
+ * }
+ * }
+ */
+#define write_r %eax
+ addl write_r, from_r
+ subl nbytes_r, from_r /* from += write - nbytes */
+#undef write_r
+
+ movl len(%esp), len_r
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1 /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+
+.L_do_copy1:
+ /* regs: %esi = from, %esi = in, %ebp = hold, %bl = bits, %edi = out
+ * %eax = len
+ *
+ * while (len > 0) {
+ * PUP(out) = PUP(from);
+ * len--;
+ * }
+ * }
+ * } while (in < last && out < end);
+ */
+#undef nbytes_r
+#define in_r %esi
+ movl len_r, %ecx
+ rep movsb
+
+ movl in(%esp), in_r /* move in back to %esi, toss from */
+ jmp .L_while_test
+
+#undef len_r
+#undef dist_r
+
+#endif /* NO_MMX || RUN_TIME_MMX */
+
+
+/*** MMX code ***/
+
+#if defined( USE_MMX ) || defined( RUN_TIME_MMX )
+
+.align 32,0x90
+.L_init_mmx:
+ emms
+
+#undef bits_r
+#undef bitslong_r
+#define bitslong_r %ebp
+#define hold_mm %mm0
+ movd %ebp, hold_mm
+ movl %ebx, bitslong_r
+
+#define used_mm %mm1
+#define dmask2_mm %mm2
+#define lmask2_mm %mm3
+#define lmask_mm %mm4
+#define dmask_mm %mm5
+#define tmp_mm %mm6
+
+ movd lmask(%esp), lmask_mm
+ movq lmask_mm, lmask2_mm
+ movd dmask(%esp), dmask_mm
+ movq dmask_mm, dmask2_mm
+ pxor used_mm, used_mm
+ movl lcode(%esp), %ebx /* ebx = lcode */
+ jmp .L_do_loop_mmx
+
+.align 32,0x90
+.L_while_test_mmx:
+ /* while (in < last && out < end)
+ */
+ cmpl out_r, end(%esp)
+ jbe .L_break_loop /* if (out >= end) */
+
+ cmpl in_r, last(%esp)
+ jbe .L_break_loop
+
+.L_do_loop_mmx:
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+
+ cmpl $32, bitslong_r
+ ja .L_get_length_code_mmx /* if (32 < bits) */
+
+ movd bitslong_r, tmp_mm
+ movd (in_r), %mm7
+ addl $4, in_r
+ psllq tmp_mm, %mm7
+ addl $32, bitslong_r
+ por %mm7, hold_mm /* hold_mm |= *((uint *)in)++ << bits */
+
+.L_get_length_code_mmx:
+ pand hold_mm, lmask_mm
+ movd lmask_mm, %eax
+ movq lmask2_mm, lmask_mm
+ movl (%ebx,%eax,4), %eax /* eax = lcode[hold & lmask] */
+
+.L_dolen_mmx:
+ movzbl %ah, %ecx /* ecx = this.bits */
+ movd %ecx, used_mm
+ subl %ecx, bitslong_r /* bits -= this.bits */
+
+ testb %al, %al
+ jnz .L_test_for_length_base_mmx /* if (op != 0) 45.7% */
+
+ shrl $16, %eax /* output this.val char */
+ stosb
+ jmp .L_while_test_mmx
+
+.L_test_for_length_base_mmx:
+#define len_r %edx
+ movl %eax, len_r /* len = this */
+ shrl $16, len_r /* len = this.val */
+
+ testb $16, %al
+ jz .L_test_for_second_level_length_mmx /* if ((op & 16) == 0) 8% */
+ andl $15, %eax /* op &= 15 */
+ jz .L_decode_distance_mmx /* if (!op) */
+
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+ movd %eax, used_mm
+ movd hold_mm, %ecx
+ subl %eax, bitslong_r
+ andl .L_mask(,%eax,4), %ecx
+ addl %ecx, len_r /* len += hold & mask[op] */
+
+.L_decode_distance_mmx:
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+
+ cmpl $32, bitslong_r
+ ja .L_get_dist_code_mmx /* if (32 < bits) */
+
+ movd bitslong_r, tmp_mm
+ movd (in_r), %mm7
+ addl $4, in_r
+ psllq tmp_mm, %mm7
+ addl $32, bitslong_r
+ por %mm7, hold_mm /* hold_mm |= *((uint *)in)++ << bits */
+
+.L_get_dist_code_mmx:
+ movl dcode(%esp), %ebx /* ebx = dcode */
+ pand hold_mm, dmask_mm
+ movd dmask_mm, %eax
+ movq dmask2_mm, dmask_mm
+ movl (%ebx,%eax,4), %eax /* eax = dcode[hold & lmask] */
+
+.L_dodist_mmx:
+#define dist_r %ebx
+ movzbl %ah, %ecx /* ecx = this.bits */
+ movl %eax, dist_r
+ shrl $16, dist_r /* dist = this.val */
+ subl %ecx, bitslong_r /* bits -= this.bits */
+ movd %ecx, used_mm
+
+ testb $16, %al /* if ((op & 16) == 0) */
+ jz .L_test_for_second_level_dist_mmx
+ andl $15, %eax /* op &= 15 */
+ jz .L_check_dist_one_mmx
+
+.L_add_bits_to_dist_mmx:
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+ movd %eax, used_mm /* save bit length of current op */
+ movd hold_mm, %ecx /* get the next bits on input stream */
+ subl %eax, bitslong_r /* bits -= op bits */
+ andl .L_mask(,%eax,4), %ecx /* ecx = hold & mask[op] */
+ addl %ecx, dist_r /* dist += hold & mask[op] */
+
+.L_check_window_mmx:
+ movl in_r, in(%esp) /* save in so from can use it's reg */
+ movl out_r, %eax
+ subl beg(%esp), %eax /* nbytes = out - beg */
+
+ cmpl dist_r, %eax
+ jb .L_clip_window_mmx /* if (dist > nbytes) 4.2% */
+
+ movl len_r, %ecx
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+
+ subl $3, %ecx
+ movb (from_r), %al
+ movb %al, (out_r)
+ movb 1(from_r), %al
+ movb 2(from_r), %dl
+ addl $3, from_r
+ movb %al, 1(out_r)
+ movb %dl, 2(out_r)
+ addl $3, out_r
+ rep movsb
+
+ movl in(%esp), in_r /* move in back to %esi, toss from */
+ movl lcode(%esp), %ebx /* move lcode back to %ebx, toss dist */
+ jmp .L_while_test_mmx
+
+.align 16,0x90
+.L_check_dist_one_mmx:
+ cmpl $1, dist_r
+ jne .L_check_window_mmx
+ cmpl out_r, beg(%esp)
+ je .L_check_window_mmx
+
+ decl out_r
+ movl len_r, %ecx
+ movb (out_r), %al
+ subl $3, %ecx
+
+ movb %al, 1(out_r)
+ movb %al, 2(out_r)
+ movb %al, 3(out_r)
+ addl $4, out_r
+ rep stosb
+
+ movl lcode(%esp), %ebx /* move lcode back to %ebx, toss dist */
+ jmp .L_while_test_mmx
+
+.align 16,0x90
+.L_test_for_second_level_length_mmx:
+ testb $64, %al
+ jnz .L_test_for_end_of_block /* if ((op & 64) != 0) */
+
+ andl $15, %eax
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+ movd hold_mm, %ecx
+ andl .L_mask(,%eax,4), %ecx
+ addl len_r, %ecx
+ movl (%ebx,%ecx,4), %eax /* eax = lcode[hold & lmask] */
+ jmp .L_dolen_mmx
+
+.align 16,0x90
+.L_test_for_second_level_dist_mmx:
+ testb $64, %al
+ jnz .L_invalid_distance_code /* if ((op & 64) != 0) */
+
+ andl $15, %eax
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+ movd hold_mm, %ecx
+ andl .L_mask(,%eax,4), %ecx
+ movl dcode(%esp), %eax /* ecx = dcode */
+ addl dist_r, %ecx
+ movl (%eax,%ecx,4), %eax /* eax = lcode[hold & lmask] */
+ jmp .L_dodist_mmx
+
+.align 16,0x90
+.L_clip_window_mmx:
+#define nbytes_r %ecx
+ movl %eax, nbytes_r
+ movl wsize(%esp), %eax /* prepare for dist compare */
+ negl nbytes_r /* nbytes = -nbytes */
+ movl window(%esp), from_r /* from = window */
+
+ cmpl dist_r, %eax
+ jb .L_invalid_distance_too_far /* if (dist > wsize) */
+
+ addl dist_r, nbytes_r /* nbytes = dist - nbytes */
+ cmpl $0, write(%esp)
+ jne .L_wrap_around_window_mmx /* if (write != 0) */
+
+ subl nbytes_r, %eax
+ addl %eax, from_r /* from += wsize - nbytes */
+
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1_mmx /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1_mmx
+
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1_mmx /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1_mmx
+
+.L_wrap_around_window_mmx:
+#define write_r %eax
+ movl write(%esp), write_r
+ cmpl write_r, nbytes_r
+ jbe .L_contiguous_in_window_mmx /* if (write >= nbytes) */
+
+ addl wsize(%esp), from_r
+ addl write_r, from_r
+ subl nbytes_r, from_r /* from += wsize + write - nbytes */
+ subl write_r, nbytes_r /* nbytes -= write */
+#undef write_r
+
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1_mmx /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl window(%esp), from_r /* from = window */
+ movl write(%esp), nbytes_r /* nbytes = write */
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1_mmx /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+ jmp .L_do_copy1_mmx
+
+.L_contiguous_in_window_mmx:
+#define write_r %eax
+ addl write_r, from_r
+ subl nbytes_r, from_r /* from += write - nbytes */
+#undef write_r
+
+ cmpl nbytes_r, len_r
+ jbe .L_do_copy1_mmx /* if (nbytes >= len) */
+
+ subl nbytes_r, len_r /* len -= nbytes */
+ rep movsb
+ movl out_r, from_r
+ subl dist_r, from_r /* from = out - dist */
+
+.L_do_copy1_mmx:
+#undef nbytes_r
+#define in_r %esi
+ movl len_r, %ecx
+ rep movsb
+
+ movl in(%esp), in_r /* move in back to %esi, toss from */
+ movl lcode(%esp), %ebx /* move lcode back to %ebx, toss dist */
+ jmp .L_while_test_mmx
+
+#undef hold_r
+#undef bitslong_r
+
+#endif /* USE_MMX || RUN_TIME_MMX */
+
+
+/*** USE_MMX, NO_MMX, and RUNTIME_MMX from here on ***/
+
+.L_invalid_distance_code:
+ /* else {
+ * strm->msg = "invalid distance code";
+ * state->mode = BAD;
+ * }
+ */
+ movl $.L_invalid_distance_code_msg, %ecx
+ movl $INFLATE_MODE_BAD, %edx
+ jmp .L_update_stream_state
+
+.L_test_for_end_of_block:
+ /* else if (op & 32) {
+ * state->mode = TYPE;
+ * break;
+ * }
+ */
+ testb $32, %al
+ jz .L_invalid_literal_length_code /* if ((op & 32) == 0) */
+
+ movl $0, %ecx
+ movl $INFLATE_MODE_TYPE, %edx
+ jmp .L_update_stream_state
+
+.L_invalid_literal_length_code:
+ /* else {
+ * strm->msg = "invalid literal/length code";
+ * state->mode = BAD;
+ * }
+ */
+ movl $.L_invalid_literal_length_code_msg, %ecx
+ movl $INFLATE_MODE_BAD, %edx
+ jmp .L_update_stream_state
+
+.L_invalid_distance_too_far:
+ /* strm->msg = "invalid distance too far back";
+ * state->mode = BAD;
+ */
+ movl in(%esp), in_r /* from_r has in's reg, put in back */
+ movl $.L_invalid_distance_too_far_msg, %ecx
+ movl $INFLATE_MODE_BAD, %edx
+ jmp .L_update_stream_state
+
+.L_update_stream_state:
+ /* set strm->msg = %ecx, strm->state->mode = %edx */
+ movl strm_sp(%esp), %eax
+ testl %ecx, %ecx /* if (msg != NULL) */
+ jz .L_skip_msg
+ movl %ecx, msg_strm(%eax) /* strm->msg = msg */
+.L_skip_msg:
+ movl state_strm(%eax), %eax /* state = strm->state */
+ movl %edx, mode_state(%eax) /* state->mode = edx (BAD | TYPE) */
+ jmp .L_break_loop
+
+.align 32,0x90
+.L_break_loop:
+
+/*
+ * Regs:
+ *
+ * bits = %ebp when mmx, and in %ebx when non-mmx
+ * hold = %hold_mm when mmx, and in %ebp when non-mmx
+ * in = %esi
+ * out = %edi
+ */
+
+#if defined( USE_MMX ) || defined( RUN_TIME_MMX )
+
+#if defined( RUN_TIME_MMX )
+
+ cmpl $DO_USE_MMX, inflate_fast_use_mmx
+ jne .L_update_next_in
+
+#endif /* RUN_TIME_MMX */
+
+ movl %ebp, %ebx
+
+.L_update_next_in:
+
+#endif
+
+#define strm_r %eax
+#define state_r %edx
+
+ /* len = bits >> 3;
+ * in -= len;
+ * bits -= len << 3;
+ * hold &= (1U << bits) - 1;
+ * state->hold = hold;
+ * state->bits = bits;
+ * strm->next_in = in;
+ * strm->next_out = out;
+ */
+ movl strm_sp(%esp), strm_r
+ movl %ebx, %ecx
+ movl state_strm(strm_r), state_r
+ shrl $3, %ecx
+ subl %ecx, in_r
+ shll $3, %ecx
+ subl %ecx, %ebx
+ movl out_r, next_out_strm(strm_r)
+ movl %ebx, bits_state(state_r)
+ movl %ebx, %ecx
+
+ leal buf(%esp), %ebx
+ cmpl %ebx, last(%esp)
+ jne .L_buf_not_used /* if buf != last */
+
+ subl %ebx, in_r /* in -= buf */
+ movl next_in_strm(strm_r), %ebx
+ movl %ebx, last(%esp) /* last = strm->next_in */
+ addl %ebx, in_r /* in += strm->next_in */
+ movl avail_in_strm(strm_r), %ebx
+ subl $11, %ebx
+ addl %ebx, last(%esp) /* last = &strm->next_in[ avail_in - 11 ] */
+
+.L_buf_not_used:
+ movl in_r, next_in_strm(strm_r)
+
+ movl $1, %ebx
+ shll %cl, %ebx
+ decl %ebx
+
+#if defined( USE_MMX ) || defined( RUN_TIME_MMX )
+
+#if defined( RUN_TIME_MMX )
+
+ cmpl $DO_USE_MMX, inflate_fast_use_mmx
+ jne .L_update_hold
+
+#endif /* RUN_TIME_MMX */
+
+ psrlq used_mm, hold_mm /* hold_mm >>= last bit length */
+ movd hold_mm, %ebp
+
+ emms
+
+.L_update_hold:
+
+#endif /* USE_MMX || RUN_TIME_MMX */
+
+ andl %ebx, %ebp
+ movl %ebp, hold_state(state_r)
+
+#define last_r %ebx
+
+ /* strm->avail_in = in < last ? 11 + (last - in) : 11 - (in - last) */
+ movl last(%esp), last_r
+ cmpl in_r, last_r
+ jbe .L_last_is_smaller /* if (in >= last) */
+
+ subl in_r, last_r /* last -= in */
+ addl $11, last_r /* last += 11 */
+ movl last_r, avail_in_strm(strm_r)
+ jmp .L_fixup_out
+.L_last_is_smaller:
+ subl last_r, in_r /* in -= last */
+ negl in_r /* in = -in */
+ addl $11, in_r /* in += 11 */
+ movl in_r, avail_in_strm(strm_r)
+
+#undef last_r
+#define end_r %ebx
+
+.L_fixup_out:
+ /* strm->avail_out = out < end ? 257 + (end - out) : 257 - (out - end)*/
+ movl end(%esp), end_r
+ cmpl out_r, end_r
+ jbe .L_end_is_smaller /* if (out >= end) */
+
+ subl out_r, end_r /* end -= out */
+ addl $257, end_r /* end += 257 */
+ movl end_r, avail_out_strm(strm_r)
+ jmp .L_done
+.L_end_is_smaller:
+ subl end_r, out_r /* out -= end */
+ negl out_r /* out = -out */
+ addl $257, out_r /* out += 257 */
+ movl out_r, avail_out_strm(strm_r)
+
+#undef end_r
+#undef strm_r
+#undef state_r
+
+.L_done:
+ addl $local_var_size, %esp
+ popf
+ popl %ebx
+ popl %ebp
+ popl %esi
+ popl %edi
+ ret
+
+#if defined( GAS_ELF )
+/* elf info */
+.type inflate_fast,@function
+.size inflate_fast,.-inflate_fast
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/test.cpp b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/test.cpp
new file mode 100644
index 000000000..7d265b3b5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/test.cpp
@@ -0,0 +1,24 @@
+
+#include "zfstream.h"
+
+int main() {
+
+ // Construct a stream object with this filebuffer. Anything sent
+ // to this stream will go to standard out.
+ gzofstream os( 1, ios::out );
+
+ // This text is getting compressed and sent to stdout.
+ // To prove this, run 'test | zcat'.
+ os << "Hello, Mommy" << endl;
+
+ os << setcompressionlevel( Z_NO_COMPRESSION );
+ os << "hello, hello, hi, ho!" << endl;
+
+ setcompressionlevel( os, Z_DEFAULT_COMPRESSION )
+ << "I'm compressing again" << endl;
+
+ os.close();
+
+ return 0;
+
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.cpp b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.cpp
new file mode 100644
index 000000000..d0cd85faa
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.cpp
@@ -0,0 +1,329 @@
+
+#include "zfstream.h"
+
+gzfilebuf::gzfilebuf() :
+ file(NULL),
+ mode(0),
+ own_file_descriptor(0)
+{ }
+
+gzfilebuf::~gzfilebuf() {
+
+ sync();
+ if ( own_file_descriptor )
+ close();
+
+}
+
+gzfilebuf *gzfilebuf::open( const char *name,
+ int io_mode ) {
+
+ if ( is_open() )
+ return NULL;
+
+ char char_mode[10];
+ char *p = char_mode;
+
+ if ( io_mode & ios::in ) {
+ mode = ios::in;
+ *p++ = 'r';
+ } else if ( io_mode & ios::app ) {
+ mode = ios::app;
+ *p++ = 'a';
+ } else {
+ mode = ios::out;
+ *p++ = 'w';
+ }
+
+ if ( io_mode & ios::binary ) {
+ mode |= ios::binary;
+ *p++ = 'b';
+ }
+
+ // Hard code the compression level
+ if ( io_mode & (ios::out|ios::app )) {
+ *p++ = '9';
+ }
+
+ // Put the end-of-string indicator
+ *p = '\0';
+
+ if ( (file = gzopen(name, char_mode)) == NULL )
+ return NULL;
+
+ own_file_descriptor = 1;
+
+ return this;
+
+}
+
+gzfilebuf *gzfilebuf::attach( int file_descriptor,
+ int io_mode ) {
+
+ if ( is_open() )
+ return NULL;
+
+ char char_mode[10];
+ char *p = char_mode;
+
+ if ( io_mode & ios::in ) {
+ mode = ios::in;
+ *p++ = 'r';
+ } else if ( io_mode & ios::app ) {
+ mode = ios::app;
+ *p++ = 'a';
+ } else {
+ mode = ios::out;
+ *p++ = 'w';
+ }
+
+ if ( io_mode & ios::binary ) {
+ mode |= ios::binary;
+ *p++ = 'b';
+ }
+
+ // Hard code the compression level
+ if ( io_mode & (ios::out|ios::app )) {
+ *p++ = '9';
+ }
+
+ // Put the end-of-string indicator
+ *p = '\0';
+
+ if ( (file = gzdopen(file_descriptor, char_mode)) == NULL )
+ return NULL;
+
+ own_file_descriptor = 0;
+
+ return this;
+
+}
+
+gzfilebuf *gzfilebuf::close() {
+
+ if ( is_open() ) {
+
+ sync();
+ gzclose( file );
+ file = NULL;
+
+ }
+
+ return this;
+
+}
+
+int gzfilebuf::setcompressionlevel( int comp_level ) {
+
+ return gzsetparams(file, comp_level, -2);
+
+}
+
+int gzfilebuf::setcompressionstrategy( int comp_strategy ) {
+
+ return gzsetparams(file, -2, comp_strategy);
+
+}
+
+
+streampos gzfilebuf::seekoff( streamoff off, ios::seek_dir dir, int which ) {
+
+ return streampos(EOF);
+
+}
+
+int gzfilebuf::underflow() {
+
+ // If the file hasn't been opened for reading, error.
+ if ( !is_open() || !(mode & ios::in) )
+ return EOF;
+
+ // if a buffer doesn't exists, allocate one.
+ if ( !base() ) {
+
+ if ( (allocate()) == EOF )
+ return EOF;
+ setp(0,0);
+
+ } else {
+
+ if ( in_avail() )
+ return (unsigned char) *gptr();
+
+ if ( out_waiting() ) {
+ if ( flushbuf() == EOF )
+ return EOF;
+ }
+
+ }
+
+ // Attempt to fill the buffer.
+
+ int result = fillbuf();
+ if ( result == EOF ) {
+ // disable get area
+ setg(0,0,0);
+ return EOF;
+ }
+
+ return (unsigned char) *gptr();
+
+}
+
+int gzfilebuf::overflow( int c ) {
+
+ if ( !is_open() || !(mode & ios::out) )
+ return EOF;
+
+ if ( !base() ) {
+ if ( allocate() == EOF )
+ return EOF;
+ setg(0,0,0);
+ } else {
+ if (in_avail()) {
+ return EOF;
+ }
+ if (out_waiting()) {
+ if (flushbuf() == EOF)
+ return EOF;
+ }
+ }
+
+ int bl = blen();
+ setp( base(), base() + bl);
+
+ if ( c != EOF ) {
+
+ *pptr() = c;
+ pbump(1);
+
+ }
+
+ return 0;
+
+}
+
+int gzfilebuf::sync() {
+
+ if ( !is_open() )
+ return EOF;
+
+ if ( out_waiting() )
+ return flushbuf();
+
+ return 0;
+
+}
+
+int gzfilebuf::flushbuf() {
+
+ int n;
+ char *q;
+
+ q = pbase();
+ n = pptr() - q;
+
+ if ( gzwrite( file, q, n) < n )
+ return EOF;
+
+ setp(0,0);
+
+ return 0;
+
+}
+
+int gzfilebuf::fillbuf() {
+
+ int required;
+ char *p;
+
+ p = base();
+
+ required = blen();
+
+ int t = gzread( file, p, required );
+
+ if ( t <= 0) return EOF;
+
+ setg( base(), base(), base()+t);
+
+ return t;
+
+}
+
+gzfilestream_common::gzfilestream_common() :
+ ios( gzfilestream_common::rdbuf() )
+{ }
+
+gzfilestream_common::~gzfilestream_common()
+{ }
+
+void gzfilestream_common::attach( int fd, int io_mode ) {
+
+ if ( !buffer.attach( fd, io_mode) )
+ clear( ios::failbit | ios::badbit );
+ else
+ clear();
+
+}
+
+void gzfilestream_common::open( const char *name, int io_mode ) {
+
+ if ( !buffer.open( name, io_mode ) )
+ clear( ios::failbit | ios::badbit );
+ else
+ clear();
+
+}
+
+void gzfilestream_common::close() {
+
+ if ( !buffer.close() )
+ clear( ios::failbit | ios::badbit );
+
+}
+
+gzfilebuf *gzfilestream_common::rdbuf()
+{
+ return &buffer;
+}
+
+gzifstream::gzifstream() :
+ ios( gzfilestream_common::rdbuf() )
+{
+ clear( ios::badbit );
+}
+
+gzifstream::gzifstream( const char *name, int io_mode ) :
+ ios( gzfilestream_common::rdbuf() )
+{
+ gzfilestream_common::open( name, io_mode );
+}
+
+gzifstream::gzifstream( int fd, int io_mode ) :
+ ios( gzfilestream_common::rdbuf() )
+{
+ gzfilestream_common::attach( fd, io_mode );
+}
+
+gzifstream::~gzifstream() { }
+
+gzofstream::gzofstream() :
+ ios( gzfilestream_common::rdbuf() )
+{
+ clear( ios::badbit );
+}
+
+gzofstream::gzofstream( const char *name, int io_mode ) :
+ ios( gzfilestream_common::rdbuf() )
+{
+ gzfilestream_common::open( name, io_mode );
+}
+
+gzofstream::gzofstream( int fd, int io_mode ) :
+ ios( gzfilestream_common::rdbuf() )
+{
+ gzfilestream_common::attach( fd, io_mode );
+}
+
+gzofstream::~gzofstream() { }
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.h
new file mode 100644
index 000000000..ed79098a3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream/zfstream.h
@@ -0,0 +1,128 @@
+
+#ifndef zfstream_h
+#define zfstream_h
+
+#include <fstream.h>
+#include "zlib.h"
+
+class gzfilebuf : public streambuf {
+
+public:
+
+ gzfilebuf( );
+ virtual ~gzfilebuf();
+
+ gzfilebuf *open( const char *name, int io_mode );
+ gzfilebuf *attach( int file_descriptor, int io_mode );
+ gzfilebuf *close();
+
+ int setcompressionlevel( int comp_level );
+ int setcompressionstrategy( int comp_strategy );
+
+ inline int is_open() const { return (file !=NULL); }
+
+ virtual streampos seekoff( streamoff, ios::seek_dir, int );
+
+ virtual int sync();
+
+protected:
+
+ virtual int underflow();
+ virtual int overflow( int = EOF );
+
+private:
+
+ gzFile file;
+ short mode;
+ short own_file_descriptor;
+
+ int flushbuf();
+ int fillbuf();
+
+};
+
+class gzfilestream_common : virtual public ios {
+
+ friend class gzifstream;
+ friend class gzofstream;
+ friend gzofstream &setcompressionlevel( gzofstream &, int );
+ friend gzofstream &setcompressionstrategy( gzofstream &, int );
+
+public:
+ virtual ~gzfilestream_common();
+
+ void attach( int fd, int io_mode );
+ void open( const char *name, int io_mode );
+ void close();
+
+protected:
+ gzfilestream_common();
+
+private:
+ gzfilebuf *rdbuf();
+
+ gzfilebuf buffer;
+
+};
+
+class gzifstream : public gzfilestream_common, public istream {
+
+public:
+
+ gzifstream();
+ gzifstream( const char *name, int io_mode = ios::in );
+ gzifstream( int fd, int io_mode = ios::in );
+
+ virtual ~gzifstream();
+
+};
+
+class gzofstream : public gzfilestream_common, public ostream {
+
+public:
+
+ gzofstream();
+ gzofstream( const char *name, int io_mode = ios::out );
+ gzofstream( int fd, int io_mode = ios::out );
+
+ virtual ~gzofstream();
+
+};
+
+template<class T> class gzomanip {
+ friend gzofstream &operator<<(gzofstream &, const gzomanip<T> &);
+public:
+ gzomanip(gzofstream &(*f)(gzofstream &, T), T v) : func(f), val(v) { }
+private:
+ gzofstream &(*func)(gzofstream &, T);
+ T val;
+};
+
+template<class T> gzofstream &operator<<(gzofstream &s, const gzomanip<T> &m)
+{
+ return (*m.func)(s, m.val);
+}
+
+inline gzofstream &setcompressionlevel( gzofstream &s, int l )
+{
+ (s.rdbuf())->setcompressionlevel(l);
+ return s;
+}
+
+inline gzofstream &setcompressionstrategy( gzofstream &s, int l )
+{
+ (s.rdbuf())->setcompressionstrategy(l);
+ return s;
+}
+
+inline gzomanip<int> setcompressionlevel(int l)
+{
+ return gzomanip<int>(&setcompressionlevel,l);
+}
+
+inline gzomanip<int> setcompressionstrategy(int l)
+{
+ return gzomanip<int>(&setcompressionstrategy,l);
+}
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream.h
new file mode 100644
index 000000000..43d2332b7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream.h
@@ -0,0 +1,307 @@
+/*
+ *
+ * Copyright (c) 1997
+ * Christian Michelsen Research AS
+ * Advanced Computing
+ * Fantoftvegen 38, 5036 BERGEN, Norway
+ * http://www.cmr.no
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Christian Michelsen Research AS makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ */
+
+#ifndef ZSTREAM__H
+#define ZSTREAM__H
+
+/*
+ * zstream.h - C++ interface to the 'zlib' general purpose compression library
+ * $Id: zstream.h 1.1 1997-06-25 12:00:56+02 tyge Exp tyge $
+ */
+
+#include <strstream.h>
+#include <string.h>
+#include <stdio.h>
+#include "zlib.h"
+
+#if defined(_WIN32)
+# include <fcntl.h>
+# include <io.h>
+# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+
+class zstringlen {
+public:
+ zstringlen(class izstream&);
+ zstringlen(class ozstream&, const char*);
+ size_t value() const { return val.word; }
+private:
+ struct Val { unsigned char byte; size_t word; } val;
+};
+
+// ----------------------------- izstream -----------------------------
+
+class izstream
+{
+ public:
+ izstream() : m_fp(0) {}
+ izstream(FILE* fp) : m_fp(0) { open(fp); }
+ izstream(const char* name) : m_fp(0) { open(name); }
+ ~izstream() { close(); }
+
+ /* Opens a gzip (.gz) file for reading.
+ * open() can be used to read a file which is not in gzip format;
+ * in this case read() will directly read from the file without
+ * decompression. errno can be checked to distinguish two error
+ * cases (if errno is zero, the zlib error is Z_MEM_ERROR).
+ */
+ void open(const char* name) {
+ if (m_fp) close();
+ m_fp = ::gzopen(name, "rb");
+ }
+
+ void open(FILE* fp) {
+ SET_BINARY_MODE(fp);
+ if (m_fp) close();
+ m_fp = ::gzdopen(fileno(fp), "rb");
+ }
+
+ /* Flushes all pending input if necessary, closes the compressed file
+ * and deallocates all the (de)compression state. The return value is
+ * the zlib error number (see function error() below).
+ */
+ int close() {
+ int r = ::gzclose(m_fp);
+ m_fp = 0; return r;
+ }
+
+ /* Binary read the given number of bytes from the compressed file.
+ */
+ int read(void* buf, size_t len) {
+ return ::gzread(m_fp, buf, len);
+ }
+
+ /* Returns the error message for the last error which occurred on the
+ * given compressed file. errnum is set to zlib error number. If an
+ * error occurred in the file system and not in the compression library,
+ * errnum is set to Z_ERRNO and the application may consult errno
+ * to get the exact error code.
+ */
+ const char* error(int* errnum) {
+ return ::gzerror(m_fp, errnum);
+ }
+
+ gzFile fp() { return m_fp; }
+
+ private:
+ gzFile m_fp;
+};
+
+/*
+ * Binary read the given (array of) object(s) from the compressed file.
+ * If the input file was not in gzip format, read() copies the objects number
+ * of bytes into the buffer.
+ * returns the number of uncompressed bytes actually read
+ * (0 for end of file, -1 for error).
+ */
+template <class T, class Items>
+inline int read(izstream& zs, T* x, Items items) {
+ return ::gzread(zs.fp(), x, items*sizeof(T));
+}
+
+/*
+ * Binary input with the '>' operator.
+ */
+template <class T>
+inline izstream& operator>(izstream& zs, T& x) {
+ ::gzread(zs.fp(), &x, sizeof(T));
+ return zs;
+}
+
+
+inline zstringlen::zstringlen(izstream& zs) {
+ zs > val.byte;
+ if (val.byte == 255) zs > val.word;
+ else val.word = val.byte;
+}
+
+/*
+ * Read length of string + the string with the '>' operator.
+ */
+inline izstream& operator>(izstream& zs, char* x) {
+ zstringlen len(zs);
+ ::gzread(zs.fp(), x, len.value());
+ x[len.value()] = '\0';
+ return zs;
+}
+
+inline char* read_string(izstream& zs) {
+ zstringlen len(zs);
+ char* x = new char[len.value()+1];
+ ::gzread(zs.fp(), x, len.value());
+ x[len.value()] = '\0';
+ return x;
+}
+
+// ----------------------------- ozstream -----------------------------
+
+class ozstream
+{
+ public:
+ ozstream() : m_fp(0), m_os(0) {
+ }
+ ozstream(FILE* fp, int level = Z_DEFAULT_COMPRESSION)
+ : m_fp(0), m_os(0) {
+ open(fp, level);
+ }
+ ozstream(const char* name, int level = Z_DEFAULT_COMPRESSION)
+ : m_fp(0), m_os(0) {
+ open(name, level);
+ }
+ ~ozstream() {
+ close();
+ }
+
+ /* Opens a gzip (.gz) file for writing.
+ * The compression level parameter should be in 0..9
+ * errno can be checked to distinguish two error cases
+ * (if errno is zero, the zlib error is Z_MEM_ERROR).
+ */
+ void open(const char* name, int level = Z_DEFAULT_COMPRESSION) {
+ char mode[4] = "wb\0";
+ if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
+ if (m_fp) close();
+ m_fp = ::gzopen(name, mode);
+ }
+
+ /* open from a FILE pointer.
+ */
+ void open(FILE* fp, int level = Z_DEFAULT_COMPRESSION) {
+ SET_BINARY_MODE(fp);
+ char mode[4] = "wb\0";
+ if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
+ if (m_fp) close();
+ m_fp = ::gzdopen(fileno(fp), mode);
+ }
+
+ /* Flushes all pending output if necessary, closes the compressed file
+ * and deallocates all the (de)compression state. The return value is
+ * the zlib error number (see function error() below).
+ */
+ int close() {
+ if (m_os) {
+ ::gzwrite(m_fp, m_os->str(), m_os->pcount());
+ delete[] m_os->str(); delete m_os; m_os = 0;
+ }
+ int r = ::gzclose(m_fp); m_fp = 0; return r;
+ }
+
+ /* Binary write the given number of bytes into the compressed file.
+ */
+ int write(const void* buf, size_t len) {
+ return ::gzwrite(m_fp, (voidp) buf, len);
+ }
+
+ /* Flushes all pending output into the compressed file. The parameter
+ * _flush is as in the deflate() function. The return value is the zlib
+ * error number (see function gzerror below). flush() returns Z_OK if
+ * the flush_ parameter is Z_FINISH and all output could be flushed.
+ * flush() should be called only when strictly necessary because it can
+ * degrade compression.
+ */
+ int flush(int _flush) {
+ os_flush();
+ return ::gzflush(m_fp, _flush);
+ }
+
+ /* Returns the error message for the last error which occurred on the
+ * given compressed file. errnum is set to zlib error number. If an
+ * error occurred in the file system and not in the compression library,
+ * errnum is set to Z_ERRNO and the application may consult errno
+ * to get the exact error code.
+ */
+ const char* error(int* errnum) {
+ return ::gzerror(m_fp, errnum);
+ }
+
+ gzFile fp() { return m_fp; }
+
+ ostream& os() {
+ if (m_os == 0) m_os = new ostrstream;
+ return *m_os;
+ }
+
+ void os_flush() {
+ if (m_os && m_os->pcount()>0) {
+ ostrstream* oss = new ostrstream;
+ oss->fill(m_os->fill());
+ oss->flags(m_os->flags());
+ oss->precision(m_os->precision());
+ oss->width(m_os->width());
+ ::gzwrite(m_fp, m_os->str(), m_os->pcount());
+ delete[] m_os->str(); delete m_os; m_os = oss;
+ }
+ }
+
+ private:
+ gzFile m_fp;
+ ostrstream* m_os;
+};
+
+/*
+ * Binary write the given (array of) object(s) into the compressed file.
+ * returns the number of uncompressed bytes actually written
+ * (0 in case of error).
+ */
+template <class T, class Items>
+inline int write(ozstream& zs, const T* x, Items items) {
+ return ::gzwrite(zs.fp(), (voidp) x, items*sizeof(T));
+}
+
+/*
+ * Binary output with the '<' operator.
+ */
+template <class T>
+inline ozstream& operator<(ozstream& zs, const T& x) {
+ ::gzwrite(zs.fp(), (voidp) &x, sizeof(T));
+ return zs;
+}
+
+inline zstringlen::zstringlen(ozstream& zs, const char* x) {
+ val.byte = 255; val.word = ::strlen(x);
+ if (val.word < 255) zs < (val.byte = val.word);
+ else zs < val;
+}
+
+/*
+ * Write length of string + the string with the '<' operator.
+ */
+inline ozstream& operator<(ozstream& zs, const char* x) {
+ zstringlen len(zs, x);
+ ::gzwrite(zs.fp(), (voidp) x, len.value());
+ return zs;
+}
+
+#ifdef _MSC_VER
+inline ozstream& operator<(ozstream& zs, char* const& x) {
+ return zs < (const char*) x;
+}
+#endif
+
+/*
+ * Ascii write with the << operator;
+ */
+template <class T>
+inline ostream& operator<<(ozstream& zs, const T& x) {
+ zs.os_flush();
+ return zs.os() << x;
+}
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream_test.cpp b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream_test.cpp
new file mode 100644
index 000000000..6273f62d6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream2/zstream_test.cpp
@@ -0,0 +1,25 @@
+#include "zstream.h"
+#include <math.h>
+#include <stdlib.h>
+#include <iomanip.h>
+
+void main() {
+ char h[256] = "Hello";
+ char* g = "Goodbye";
+ ozstream out("temp.gz");
+ out < "This works well" < h < g;
+ out.close();
+
+ izstream in("temp.gz"); // read it back
+ char *x = read_string(in), *y = new char[256], z[256];
+ in > y > z;
+ in.close();
+ cout << x << endl << y << endl << z << endl;
+
+ out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results
+ out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl;
+ out << z << endl << y << endl << x << endl;
+ out << 1.1234567890123456789 << endl;
+
+ delete[] x; delete[] y;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/README
new file mode 100644
index 000000000..f7b319ab9
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/README
@@ -0,0 +1,35 @@
+These classes provide a C++ stream interface to the zlib library. It allows you
+to do things like:
+
+ gzofstream outf("blah.gz");
+ outf << "These go into the gzip file " << 123 << endl;
+
+It does this by deriving a specialized stream buffer for gzipped files, which is
+the way Stroustrup would have done it. :->
+
+The gzifstream and gzofstream classes were originally written by Kevin Ruland
+and made available in the zlib contrib/iostream directory. The older version still
+compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of
+this version.
+
+The new classes are as standard-compliant as possible, closely following the
+approach of the standard library's fstream classes. It compiles under gcc versions
+3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard
+library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs
+from the previous one in the following respects:
+- added showmanyc
+- added setbuf, with support for unbuffered output via setbuf(0,0)
+- a few bug fixes of stream behavior
+- gzipped output file opened with default compression level instead of maximum level
+- setcompressionlevel()/strategy() members replaced by single setcompression()
+
+The code is provided "as is", with the permission to use, copy, modify, distribute
+and sell it for any purpose without fee.
+
+Ludwig Schwardt
+<schwardt@sun.ac.za>
+
+DSP Lab
+Electrical & Electronic Engineering Department
+University of Stellenbosch
+South Africa
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/TODO b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/TODO
new file mode 100644
index 000000000..7032f97be
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/TODO
@@ -0,0 +1,17 @@
+Possible upgrades to gzfilebuf:
+
+- The ability to do putback (e.g. putbackfail)
+
+- The ability to seek (zlib supports this, but could be slow/tricky)
+
+- Simultaneous read/write access (does it make sense?)
+
+- Support for ios_base::ate open mode
+
+- Locale support?
+
+- Check public interface to see which calls give problems
+ (due to dependence on library internals)
+
+- Override operator<<(ostream&, gzfilebuf*) to allow direct copying
+ of stream buffer to stream ( i.e. os << is.rdbuf(); )
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/test.cc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/test.cc
new file mode 100644
index 000000000..94235334f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/test.cc
@@ -0,0 +1,50 @@
+/*
+ * Test program for gzifstream and gzofstream
+ *
+ * by Ludwig Schwardt <schwardt@sun.ac.za>
+ * original version by Kevin Ruland <kevin@rodin.wustl.edu>
+ */
+
+#include "zfstream.h"
+#include <iostream> // for cout
+
+int main() {
+
+ gzofstream outf;
+ gzifstream inf;
+ char buf[80];
+
+ outf.open("test1.txt.gz");
+ outf << "The quick brown fox sidestepped the lazy canine\n"
+ << 1.3 << "\nPlan " << 9 << std::endl;
+ outf.close();
+ std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
+ << "The quick brown fox sidestepped the lazy canine\n"
+ << 1.3 << "\nPlan " << 9 << std::endl;
+
+ std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
+ inf.open("test1.txt.gz");
+ while (inf.getline(buf,80,'\n')) {
+ std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
+ }
+ inf.close();
+
+ outf.rdbuf()->pubsetbuf(0,0);
+ outf.open("test2.txt.gz");
+ outf << setcompression(Z_NO_COMPRESSION)
+ << "The quick brown fox sidestepped the lazy canine\n"
+ << 1.3 << "\nPlan " << 9 << std::endl;
+ outf.close();
+ std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
+
+ std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
+ inf.rdbuf()->pubsetbuf(0,0);
+ inf.open("test2.txt.gz");
+ while (inf.getline(buf,80,'\n')) {
+ std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
+ }
+ inf.close();
+
+ return 0;
+
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.cc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.cc
new file mode 100644
index 000000000..94eb93344
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.cc
@@ -0,0 +1,479 @@
+/*
+ * A C++ I/O streams interface to the zlib gz* functions
+ *
+ * by Ludwig Schwardt <schwardt@sun.ac.za>
+ * original version by Kevin Ruland <kevin@rodin.wustl.edu>
+ *
+ * This version is standard-compliant and compatible with gcc 3.x.
+ */
+
+#include "zfstream.h"
+#include <cstring> // for strcpy, strcat, strlen (mode strings)
+#include <cstdio> // for BUFSIZ
+
+// Internal buffer sizes (default and "unbuffered" versions)
+#define BIGBUFSIZE BUFSIZ
+#define SMALLBUFSIZE 1
+
+/*****************************************************************************/
+
+// Default constructor
+gzfilebuf::gzfilebuf()
+: file(NULL), io_mode(std::ios_base::openmode(0)), own_fd(false),
+ buffer(NULL), buffer_size(BIGBUFSIZE), own_buffer(true)
+{
+ // No buffers to start with
+ this->disable_buffer();
+}
+
+// Destructor
+gzfilebuf::~gzfilebuf()
+{
+ // Sync output buffer and close only if responsible for file
+ // (i.e. attached streams should be left open at this stage)
+ this->sync();
+ if (own_fd)
+ this->close();
+ // Make sure internal buffer is deallocated
+ this->disable_buffer();
+}
+
+// Set compression level and strategy
+int
+gzfilebuf::setcompression(int comp_level,
+ int comp_strategy)
+{
+ return gzsetparams(file, comp_level, comp_strategy);
+}
+
+// Open gzipped file
+gzfilebuf*
+gzfilebuf::open(const char *name,
+ std::ios_base::openmode mode)
+{
+ // Fail if file already open
+ if (this->is_open())
+ return NULL;
+ // Don't support simultaneous read/write access (yet)
+ if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
+ return NULL;
+
+ // Build mode string for gzopen and check it [27.8.1.3.2]
+ char char_mode[6] = "\0\0\0\0\0";
+ if (!this->open_mode(mode, char_mode))
+ return NULL;
+
+ // Attempt to open file
+ if ((file = gzopen(name, char_mode)) == NULL)
+ return NULL;
+
+ // On success, allocate internal buffer and set flags
+ this->enable_buffer();
+ io_mode = mode;
+ own_fd = true;
+ return this;
+}
+
+// Attach to gzipped file
+gzfilebuf*
+gzfilebuf::attach(int fd,
+ std::ios_base::openmode mode)
+{
+ // Fail if file already open
+ if (this->is_open())
+ return NULL;
+ // Don't support simultaneous read/write access (yet)
+ if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
+ return NULL;
+
+ // Build mode string for gzdopen and check it [27.8.1.3.2]
+ char char_mode[6] = "\0\0\0\0\0";
+ if (!this->open_mode(mode, char_mode))
+ return NULL;
+
+ // Attempt to attach to file
+ if ((file = gzdopen(fd, char_mode)) == NULL)
+ return NULL;
+
+ // On success, allocate internal buffer and set flags
+ this->enable_buffer();
+ io_mode = mode;
+ own_fd = false;
+ return this;
+}
+
+// Close gzipped file
+gzfilebuf*
+gzfilebuf::close()
+{
+ // Fail immediately if no file is open
+ if (!this->is_open())
+ return NULL;
+ // Assume success
+ gzfilebuf* retval = this;
+ // Attempt to sync and close gzipped file
+ if (this->sync() == -1)
+ retval = NULL;
+ if (gzclose(file) < 0)
+ retval = NULL;
+ // File is now gone anyway (postcondition [27.8.1.3.8])
+ file = NULL;
+ own_fd = false;
+ // Destroy internal buffer if it exists
+ this->disable_buffer();
+ return retval;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+// Convert int open mode to mode string
+bool
+gzfilebuf::open_mode(std::ios_base::openmode mode,
+ char* c_mode) const
+{
+ bool testb = mode & std::ios_base::binary;
+ bool testi = mode & std::ios_base::in;
+ bool testo = mode & std::ios_base::out;
+ bool testt = mode & std::ios_base::trunc;
+ bool testa = mode & std::ios_base::app;
+
+ // Check for valid flag combinations - see [27.8.1.3.2] (Table 92)
+ // Original zfstream hardcoded the compression level to maximum here...
+ // Double the time for less than 1% size improvement seems
+ // excessive though - keeping it at the default level
+ // To change back, just append "9" to the next three mode strings
+ if (!testi && testo && !testt && !testa)
+ strcpy(c_mode, "w");
+ if (!testi && testo && !testt && testa)
+ strcpy(c_mode, "a");
+ if (!testi && testo && testt && !testa)
+ strcpy(c_mode, "w");
+ if (testi && !testo && !testt && !testa)
+ strcpy(c_mode, "r");
+ // No read/write mode yet
+// if (testi && testo && !testt && !testa)
+// strcpy(c_mode, "r+");
+// if (testi && testo && testt && !testa)
+// strcpy(c_mode, "w+");
+
+ // Mode string should be empty for invalid combination of flags
+ if (strlen(c_mode) == 0)
+ return false;
+ if (testb)
+ strcat(c_mode, "b");
+ return true;
+}
+
+// Determine number of characters in internal get buffer
+std::streamsize
+gzfilebuf::showmanyc()
+{
+ // Calls to underflow will fail if file not opened for reading
+ if (!this->is_open() || !(io_mode & std::ios_base::in))
+ return -1;
+ // Make sure get area is in use
+ if (this->gptr() && (this->gptr() < this->egptr()))
+ return std::streamsize(this->egptr() - this->gptr());
+ else
+ return 0;
+}
+
+// Fill get area from gzipped file
+gzfilebuf::int_type
+gzfilebuf::underflow()
+{
+ // If something is left in the get area by chance, return it
+ // (this shouldn't normally happen, as underflow is only supposed
+ // to be called when gptr >= egptr, but it serves as error check)
+ if (this->gptr() && (this->gptr() < this->egptr()))
+ return traits_type::to_int_type(*(this->gptr()));
+
+ // If the file hasn't been opened for reading, produce error
+ if (!this->is_open() || !(io_mode & std::ios_base::in))
+ return traits_type::eof();
+
+ // Attempt to fill internal buffer from gzipped file
+ // (buffer must be guaranteed to exist...)
+ int bytes_read = gzread(file, buffer, buffer_size);
+ // Indicates error or EOF
+ if (bytes_read <= 0)
+ {
+ // Reset get area
+ this->setg(buffer, buffer, buffer);
+ return traits_type::eof();
+ }
+ // Make all bytes read from file available as get area
+ this->setg(buffer, buffer, buffer + bytes_read);
+
+ // Return next character in get area
+ return traits_type::to_int_type(*(this->gptr()));
+}
+
+// Write put area to gzipped file
+gzfilebuf::int_type
+gzfilebuf::overflow(int_type c)
+{
+ // Determine whether put area is in use
+ if (this->pbase())
+ {
+ // Double-check pointer range
+ if (this->pptr() > this->epptr() || this->pptr() < this->pbase())
+ return traits_type::eof();
+ // Add extra character to buffer if not EOF
+ if (!traits_type::eq_int_type(c, traits_type::eof()))
+ {
+ *(this->pptr()) = traits_type::to_char_type(c);
+ this->pbump(1);
+ }
+ // Number of characters to write to file
+ int bytes_to_write = this->pptr() - this->pbase();
+ // Overflow doesn't fail if nothing is to be written
+ if (bytes_to_write > 0)
+ {
+ // If the file hasn't been opened for writing, produce error
+ if (!this->is_open() || !(io_mode & std::ios_base::out))
+ return traits_type::eof();
+ // If gzipped file won't accept all bytes written to it, fail
+ if (gzwrite(file, this->pbase(), bytes_to_write) != bytes_to_write)
+ return traits_type::eof();
+ // Reset next pointer to point to pbase on success
+ this->pbump(-bytes_to_write);
+ }
+ }
+ // Write extra character to file if not EOF
+ else if (!traits_type::eq_int_type(c, traits_type::eof()))
+ {
+ // If the file hasn't been opened for writing, produce error
+ if (!this->is_open() || !(io_mode & std::ios_base::out))
+ return traits_type::eof();
+ // Impromptu char buffer (allows "unbuffered" output)
+ char_type last_char = traits_type::to_char_type(c);
+ // If gzipped file won't accept this character, fail
+ if (gzwrite(file, &last_char, 1) != 1)
+ return traits_type::eof();
+ }
+
+ // If you got here, you have succeeded (even if c was EOF)
+ // The return value should therefore be non-EOF
+ if (traits_type::eq_int_type(c, traits_type::eof()))
+ return traits_type::not_eof(c);
+ else
+ return c;
+}
+
+// Assign new buffer
+std::streambuf*
+gzfilebuf::setbuf(char_type* p,
+ std::streamsize n)
+{
+ // First make sure stuff is sync'ed, for safety
+ if (this->sync() == -1)
+ return NULL;
+ // If buffering is turned off on purpose via setbuf(0,0), still allocate one...
+ // "Unbuffered" only really refers to put [27.8.1.4.10], while get needs at
+ // least a buffer of size 1 (very inefficient though, therefore make it bigger?)
+ // This follows from [27.5.2.4.3]/12 (gptr needs to point at something, it seems)
+ if (!p || !n)
+ {
+ // Replace existing buffer (if any) with small internal buffer
+ this->disable_buffer();
+ buffer = NULL;
+ buffer_size = 0;
+ own_buffer = true;
+ this->enable_buffer();
+ }
+ else
+ {
+ // Replace existing buffer (if any) with external buffer
+ this->disable_buffer();
+ buffer = p;
+ buffer_size = n;
+ own_buffer = false;
+ this->enable_buffer();
+ }
+ return this;
+}
+
+// Write put area to gzipped file (i.e. ensures that put area is empty)
+int
+gzfilebuf::sync()
+{
+ return traits_type::eq_int_type(this->overflow(), traits_type::eof()) ? -1 : 0;
+}
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+// Allocate internal buffer
+void
+gzfilebuf::enable_buffer()
+{
+ // If internal buffer required, allocate one
+ if (own_buffer && !buffer)
+ {
+ // Check for buffered vs. "unbuffered"
+ if (buffer_size > 0)
+ {
+ // Allocate internal buffer
+ buffer = new char_type[buffer_size];
+ // Get area starts empty and will be expanded by underflow as need arises
+ this->setg(buffer, buffer, buffer);
+ // Setup entire internal buffer as put area.
+ // The one-past-end pointer actually points to the last element of the buffer,
+ // so that overflow(c) can safely add the extra character c to the sequence.
+ // These pointers remain in place for the duration of the buffer
+ this->setp(buffer, buffer + buffer_size - 1);
+ }
+ else
+ {
+ // Even in "unbuffered" case, (small?) get buffer is still required
+ buffer_size = SMALLBUFSIZE;
+ buffer = new char_type[buffer_size];
+ this->setg(buffer, buffer, buffer);
+ // "Unbuffered" means no put buffer
+ this->setp(0, 0);
+ }
+ }
+ else
+ {
+ // If buffer already allocated, reset buffer pointers just to make sure no
+ // stale chars are lying around
+ this->setg(buffer, buffer, buffer);
+ this->setp(buffer, buffer + buffer_size - 1);
+ }
+}
+
+// Destroy internal buffer
+void
+gzfilebuf::disable_buffer()
+{
+ // If internal buffer exists, deallocate it
+ if (own_buffer && buffer)
+ {
+ // Preserve unbuffered status by zeroing size
+ if (!this->pbase())
+ buffer_size = 0;
+ delete[] buffer;
+ buffer = NULL;
+ this->setg(0, 0, 0);
+ this->setp(0, 0);
+ }
+ else
+ {
+ // Reset buffer pointers to initial state if external buffer exists
+ this->setg(buffer, buffer, buffer);
+ if (buffer)
+ this->setp(buffer, buffer + buffer_size - 1);
+ else
+ this->setp(0, 0);
+ }
+}
+
+/*****************************************************************************/
+
+// Default constructor initializes stream buffer
+gzifstream::gzifstream()
+: std::istream(NULL), sb()
+{ this->init(&sb); }
+
+// Initialize stream buffer and open file
+gzifstream::gzifstream(const char* name,
+ std::ios_base::openmode mode)
+: std::istream(NULL), sb()
+{
+ this->init(&sb);
+ this->open(name, mode);
+}
+
+// Initialize stream buffer and attach to file
+gzifstream::gzifstream(int fd,
+ std::ios_base::openmode mode)
+: std::istream(NULL), sb()
+{
+ this->init(&sb);
+ this->attach(fd, mode);
+}
+
+// Open file and go into fail() state if unsuccessful
+void
+gzifstream::open(const char* name,
+ std::ios_base::openmode mode)
+{
+ if (!sb.open(name, mode | std::ios_base::in))
+ this->setstate(std::ios_base::failbit);
+ else
+ this->clear();
+}
+
+// Attach to file and go into fail() state if unsuccessful
+void
+gzifstream::attach(int fd,
+ std::ios_base::openmode mode)
+{
+ if (!sb.attach(fd, mode | std::ios_base::in))
+ this->setstate(std::ios_base::failbit);
+ else
+ this->clear();
+}
+
+// Close file
+void
+gzifstream::close()
+{
+ if (!sb.close())
+ this->setstate(std::ios_base::failbit);
+}
+
+/*****************************************************************************/
+
+// Default constructor initializes stream buffer
+gzofstream::gzofstream()
+: std::ostream(NULL), sb()
+{ this->init(&sb); }
+
+// Initialize stream buffer and open file
+gzofstream::gzofstream(const char* name,
+ std::ios_base::openmode mode)
+: std::ostream(NULL), sb()
+{
+ this->init(&sb);
+ this->open(name, mode);
+}
+
+// Initialize stream buffer and attach to file
+gzofstream::gzofstream(int fd,
+ std::ios_base::openmode mode)
+: std::ostream(NULL), sb()
+{
+ this->init(&sb);
+ this->attach(fd, mode);
+}
+
+// Open file and go into fail() state if unsuccessful
+void
+gzofstream::open(const char* name,
+ std::ios_base::openmode mode)
+{
+ if (!sb.open(name, mode | std::ios_base::out))
+ this->setstate(std::ios_base::failbit);
+ else
+ this->clear();
+}
+
+// Attach to file and go into fail() state if unsuccessful
+void
+gzofstream::attach(int fd,
+ std::ios_base::openmode mode)
+{
+ if (!sb.attach(fd, mode | std::ios_base::out))
+ this->setstate(std::ios_base::failbit);
+ else
+ this->clear();
+}
+
+// Close file
+void
+gzofstream::close()
+{
+ if (!sb.close())
+ this->setstate(std::ios_base::failbit);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.h
new file mode 100644
index 000000000..8574479ae
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/iostream3/zfstream.h
@@ -0,0 +1,466 @@
+/*
+ * A C++ I/O streams interface to the zlib gz* functions
+ *
+ * by Ludwig Schwardt <schwardt@sun.ac.za>
+ * original version by Kevin Ruland <kevin@rodin.wustl.edu>
+ *
+ * This version is standard-compliant and compatible with gcc 3.x.
+ */
+
+#ifndef ZFSTREAM_H
+#define ZFSTREAM_H
+
+#include <istream> // not iostream, since we don't need cin/cout
+#include <ostream>
+#include "zlib.h"
+
+/*****************************************************************************/
+
+/**
+ * @brief Gzipped file stream buffer class.
+ *
+ * This class implements basic_filebuf for gzipped files. It doesn't yet support
+ * seeking (allowed by zlib but slow/limited), putback and read/write access
+ * (tricky). Otherwise, it attempts to be a drop-in replacement for the standard
+ * file streambuf.
+*/
+class gzfilebuf : public std::streambuf
+{
+public:
+ // Default constructor.
+ gzfilebuf();
+
+ // Destructor.
+ virtual
+ ~gzfilebuf();
+
+ /**
+ * @brief Set compression level and strategy on the fly.
+ * @param comp_level Compression level (see zlib.h for allowed values)
+ * @param comp_strategy Compression strategy (see zlib.h for allowed values)
+ * @return Z_OK on success, Z_STREAM_ERROR otherwise.
+ *
+ * Unfortunately, these parameters cannot be modified separately, as the
+ * previous zfstream version assumed. Since the strategy is seldom changed,
+ * it can default and setcompression(level) then becomes like the old
+ * setcompressionlevel(level).
+ */
+ int
+ setcompression(int comp_level,
+ int comp_strategy = Z_DEFAULT_STRATEGY);
+
+ /**
+ * @brief Check if file is open.
+ * @return True if file is open.
+ */
+ bool
+ is_open() const { return (file != NULL); }
+
+ /**
+ * @brief Open gzipped file.
+ * @param name File name.
+ * @param mode Open mode flags.
+ * @return @c this on success, NULL on failure.
+ */
+ gzfilebuf*
+ open(const char* name,
+ std::ios_base::openmode mode);
+
+ /**
+ * @brief Attach to already open gzipped file.
+ * @param fd File descriptor.
+ * @param mode Open mode flags.
+ * @return @c this on success, NULL on failure.
+ */
+ gzfilebuf*
+ attach(int fd,
+ std::ios_base::openmode mode);
+
+ /**
+ * @brief Close gzipped file.
+ * @return @c this on success, NULL on failure.
+ */
+ gzfilebuf*
+ close();
+
+protected:
+ /**
+ * @brief Convert ios open mode int to mode string used by zlib.
+ * @return True if valid mode flag combination.
+ */
+ bool
+ open_mode(std::ios_base::openmode mode,
+ char* c_mode) const;
+
+ /**
+ * @brief Number of characters available in stream buffer.
+ * @return Number of characters.
+ *
+ * This indicates number of characters in get area of stream buffer.
+ * These characters can be read without accessing the gzipped file.
+ */
+ virtual std::streamsize
+ showmanyc();
+
+ /**
+ * @brief Fill get area from gzipped file.
+ * @return First character in get area on success, EOF on error.
+ *
+ * This actually reads characters from gzipped file to stream
+ * buffer. Always buffered.
+ */
+ virtual int_type
+ underflow();
+
+ /**
+ * @brief Write put area to gzipped file.
+ * @param c Extra character to add to buffer contents.
+ * @return Non-EOF on success, EOF on error.
+ *
+ * This actually writes characters in stream buffer to
+ * gzipped file. With unbuffered output this is done one
+ * character at a time.
+ */
+ virtual int_type
+ overflow(int_type c = traits_type::eof());
+
+ /**
+ * @brief Installs external stream buffer.
+ * @param p Pointer to char buffer.
+ * @param n Size of external buffer.
+ * @return @c this on success, NULL on failure.
+ *
+ * Call setbuf(0,0) to enable unbuffered output.
+ */
+ virtual std::streambuf*
+ setbuf(char_type* p,
+ std::streamsize n);
+
+ /**
+ * @brief Flush stream buffer to file.
+ * @return 0 on success, -1 on error.
+ *
+ * This calls underflow(EOF) to do the job.
+ */
+ virtual int
+ sync();
+
+//
+// Some future enhancements
+//
+// virtual int_type uflow();
+// virtual int_type pbackfail(int_type c = traits_type::eof());
+// virtual pos_type
+// seekoff(off_type off,
+// std::ios_base::seekdir way,
+// std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
+// virtual pos_type
+// seekpos(pos_type sp,
+// std::ios_base::openmode mode = std::ios_base::in|std::ios_base::out);
+
+private:
+ /**
+ * @brief Allocate internal buffer.
+ *
+ * This function is safe to call multiple times. It will ensure
+ * that a proper internal buffer exists if it is required. If the
+ * buffer already exists or is external, the buffer pointers will be
+ * reset to their original state.
+ */
+ void
+ enable_buffer();
+
+ /**
+ * @brief Destroy internal buffer.
+ *
+ * This function is safe to call multiple times. It will ensure
+ * that the internal buffer is deallocated if it exists. In any
+ * case, it will also reset the buffer pointers.
+ */
+ void
+ disable_buffer();
+
+ /**
+ * Underlying file pointer.
+ */
+ gzFile file;
+
+ /**
+ * Mode in which file was opened.
+ */
+ std::ios_base::openmode io_mode;
+
+ /**
+ * @brief True if this object owns file descriptor.
+ *
+ * This makes the class responsible for closing the file
+ * upon destruction.
+ */
+ bool own_fd;
+
+ /**
+ * @brief Stream buffer.
+ *
+ * For simplicity this remains allocated on the free store for the
+ * entire life span of the gzfilebuf object, unless replaced by setbuf.
+ */
+ char_type* buffer;
+
+ /**
+ * @brief Stream buffer size.
+ *
+ * Defaults to system default buffer size (typically 8192 bytes).
+ * Modified by setbuf.
+ */
+ std::streamsize buffer_size;
+
+ /**
+ * @brief True if this object owns stream buffer.
+ *
+ * This makes the class responsible for deleting the buffer
+ * upon destruction.
+ */
+ bool own_buffer;
+};
+
+/*****************************************************************************/
+
+/**
+ * @brief Gzipped file input stream class.
+ *
+ * This class implements ifstream for gzipped files. Seeking and putback
+ * is not supported yet.
+*/
+class gzifstream : public std::istream
+{
+public:
+ // Default constructor
+ gzifstream();
+
+ /**
+ * @brief Construct stream on gzipped file to be opened.
+ * @param name File name.
+ * @param mode Open mode flags (forced to contain ios::in).
+ */
+ explicit
+ gzifstream(const char* name,
+ std::ios_base::openmode mode = std::ios_base::in);
+
+ /**
+ * @brief Construct stream on already open gzipped file.
+ * @param fd File descriptor.
+ * @param mode Open mode flags (forced to contain ios::in).
+ */
+ explicit
+ gzifstream(int fd,
+ std::ios_base::openmode mode = std::ios_base::in);
+
+ /**
+ * Obtain underlying stream buffer.
+ */
+ gzfilebuf*
+ rdbuf() const
+ { return const_cast<gzfilebuf*>(&sb); }
+
+ /**
+ * @brief Check if file is open.
+ * @return True if file is open.
+ */
+ bool
+ is_open() { return sb.is_open(); }
+
+ /**
+ * @brief Open gzipped file.
+ * @param name File name.
+ * @param mode Open mode flags (forced to contain ios::in).
+ *
+ * Stream will be in state good() if file opens successfully;
+ * otherwise in state fail(). This differs from the behavior of
+ * ifstream, which never sets the state to good() and therefore
+ * won't allow you to reuse the stream for a second file unless
+ * you manually clear() the state. The choice is a matter of
+ * convenience.
+ */
+ void
+ open(const char* name,
+ std::ios_base::openmode mode = std::ios_base::in);
+
+ /**
+ * @brief Attach to already open gzipped file.
+ * @param fd File descriptor.
+ * @param mode Open mode flags (forced to contain ios::in).
+ *
+ * Stream will be in state good() if attach succeeded; otherwise
+ * in state fail().
+ */
+ void
+ attach(int fd,
+ std::ios_base::openmode mode = std::ios_base::in);
+
+ /**
+ * @brief Close gzipped file.
+ *
+ * Stream will be in state fail() if close failed.
+ */
+ void
+ close();
+
+private:
+ /**
+ * Underlying stream buffer.
+ */
+ gzfilebuf sb;
+};
+
+/*****************************************************************************/
+
+/**
+ * @brief Gzipped file output stream class.
+ *
+ * This class implements ofstream for gzipped files. Seeking and putback
+ * is not supported yet.
+*/
+class gzofstream : public std::ostream
+{
+public:
+ // Default constructor
+ gzofstream();
+
+ /**
+ * @brief Construct stream on gzipped file to be opened.
+ * @param name File name.
+ * @param mode Open mode flags (forced to contain ios::out).
+ */
+ explicit
+ gzofstream(const char* name,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+ /**
+ * @brief Construct stream on already open gzipped file.
+ * @param fd File descriptor.
+ * @param mode Open mode flags (forced to contain ios::out).
+ */
+ explicit
+ gzofstream(int fd,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+ /**
+ * Obtain underlying stream buffer.
+ */
+ gzfilebuf*
+ rdbuf() const
+ { return const_cast<gzfilebuf*>(&sb); }
+
+ /**
+ * @brief Check if file is open.
+ * @return True if file is open.
+ */
+ bool
+ is_open() { return sb.is_open(); }
+
+ /**
+ * @brief Open gzipped file.
+ * @param name File name.
+ * @param mode Open mode flags (forced to contain ios::out).
+ *
+ * Stream will be in state good() if file opens successfully;
+ * otherwise in state fail(). This differs from the behavior of
+ * ofstream, which never sets the state to good() and therefore
+ * won't allow you to reuse the stream for a second file unless
+ * you manually clear() the state. The choice is a matter of
+ * convenience.
+ */
+ void
+ open(const char* name,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+ /**
+ * @brief Attach to already open gzipped file.
+ * @param fd File descriptor.
+ * @param mode Open mode flags (forced to contain ios::out).
+ *
+ * Stream will be in state good() if attach succeeded; otherwise
+ * in state fail().
+ */
+ void
+ attach(int fd,
+ std::ios_base::openmode mode = std::ios_base::out);
+
+ /**
+ * @brief Close gzipped file.
+ *
+ * Stream will be in state fail() if close failed.
+ */
+ void
+ close();
+
+private:
+ /**
+ * Underlying stream buffer.
+ */
+ gzfilebuf sb;
+};
+
+/*****************************************************************************/
+
+/**
+ * @brief Gzipped file output stream manipulator class.
+ *
+ * This class defines a two-argument manipulator for gzofstream. It is used
+ * as base for the setcompression(int,int) manipulator.
+*/
+template<typename T1, typename T2>
+ class gzomanip2
+ {
+ public:
+ // Allows insertor to peek at internals
+ template <typename Ta, typename Tb>
+ friend gzofstream&
+ operator<<(gzofstream&,
+ const gzomanip2<Ta,Tb>&);
+
+ // Constructor
+ gzomanip2(gzofstream& (*f)(gzofstream&, T1, T2),
+ T1 v1,
+ T2 v2);
+ private:
+ // Underlying manipulator function
+ gzofstream&
+ (*func)(gzofstream&, T1, T2);
+
+ // Arguments for manipulator function
+ T1 val1;
+ T2 val2;
+ };
+
+/*****************************************************************************/
+
+// Manipulator function thunks through to stream buffer
+inline gzofstream&
+setcompression(gzofstream &gzs, int l, int s = Z_DEFAULT_STRATEGY)
+{
+ (gzs.rdbuf())->setcompression(l, s);
+ return gzs;
+}
+
+// Manipulator constructor stores arguments
+template<typename T1, typename T2>
+ inline
+ gzomanip2<T1,T2>::gzomanip2(gzofstream &(*f)(gzofstream &, T1, T2),
+ T1 v1,
+ T2 v2)
+ : func(f), val1(v1), val2(v2)
+ { }
+
+// Insertor applies underlying manipulator function to stream
+template<typename T1, typename T2>
+ inline gzofstream&
+ operator<<(gzofstream& s, const gzomanip2<T1,T2>& m)
+ { return (*m.func)(s, m.val1, m.val2); }
+
+// Insert this onto stream to simplify setting of compression level
+inline gzomanip2<int,int>
+setcompression(int l, int s = Z_DEFAULT_STRATEGY)
+{ return gzomanip2<int,int>(&setcompression, l, s); }
+
+#endif // ZFSTREAM_H
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/bld_ml64.bat b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/bld_ml64.bat
new file mode 100644
index 000000000..f74bcef5b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/bld_ml64.bat
@@ -0,0 +1,2 @@
+ml64.exe /Flinffasx64 /c /Zi inffasx64.asm
+ml64.exe /Flgvmat64 /c /Zi gvmat64.asm
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/gvmat64.asm b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/gvmat64.asm
new file mode 100644
index 000000000..c1817f1be
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/gvmat64.asm
@@ -0,0 +1,553 @@
+;uInt longest_match_x64(
+; deflate_state *s,
+; IPos cur_match); /* current match */
+
+; gvmat64.asm -- Asm portion of the optimized longest_match for 32 bits x86_64
+; (AMD64 on Athlon 64, Opteron, Phenom
+; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7)
+; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
+;
+; File written by Gilles Vollant, by converting to assembly the longest_match
+; from Jean-loup Gailly in deflate.c of zLib and infoZip zip.
+;
+; and by taking inspiration on asm686 with masm, optimised assembly code
+; from Brian Raiter, written 1998
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Permission is granted to anyone to use this software for any purpose,
+; including commercial applications, and to alter it and redistribute it
+; freely, subject to the following restrictions:
+;
+; 1. The origin of this software must not be misrepresented; you must not
+; claim that you wrote the original software. If you use this software
+; in a product, an acknowledgment in the product documentation would be
+; appreciated but is not required.
+; 2. Altered source versions must be plainly marked as such, and must not be
+; misrepresented as being the original software
+; 3. This notice may not be removed or altered from any source distribution.
+;
+;
+;
+; http://www.zlib.net
+; http://www.winimage.com/zLibDll
+; http://www.muppetlabs.com/~breadbox/software/assembly.html
+;
+; to compile this file for infozip Zip, I use option:
+; ml64.exe /Flgvmat64 /c /Zi /DINFOZIP gvmat64.asm
+;
+; to compile this file for zLib, I use option:
+; ml64.exe /Flgvmat64 /c /Zi gvmat64.asm
+; Be carrefull to adapt zlib1222add below to your version of zLib
+; (if you use a version of zLib before 1.0.4 or after 1.2.2.2, change
+; value of zlib1222add later)
+;
+; This file compile with Microsoft Macro Assembler (x64) for AMD64
+;
+; ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK
+;
+; (you can get Windows WDK with ml64 for AMD64 from
+; http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price)
+;
+
+
+;uInt longest_match(s, cur_match)
+; deflate_state *s;
+; IPos cur_match; /* current match */
+.code
+longest_match PROC
+
+
+;LocalVarsSize equ 88
+ LocalVarsSize equ 72
+
+; register used : rax,rbx,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12
+; free register : r14,r15
+; register can be saved : rsp
+
+ chainlenwmask equ rsp + 8 - LocalVarsSize ; high word: current chain len
+ ; low word: s->wmask
+;window equ rsp + xx - LocalVarsSize ; local copy of s->window ; stored in r10
+;windowbestlen equ rsp + xx - LocalVarsSize ; s->window + bestlen , use r10+r11
+;scanstart equ rsp + xx - LocalVarsSize ; first two bytes of string ; stored in r12w
+;scanend equ rsp + xx - LocalVarsSize ; last two bytes of string use ebx
+;scanalign equ rsp + xx - LocalVarsSize ; dword-misalignment of string r13
+;bestlen equ rsp + xx - LocalVarsSize ; size of best match so far -> r11d
+;scan equ rsp + xx - LocalVarsSize ; ptr to string wanting match -> r9
+IFDEF INFOZIP
+ELSE
+ nicematch equ (rsp + 16 - LocalVarsSize) ; a good enough match size
+ENDIF
+
+save_rdi equ rsp + 24 - LocalVarsSize
+save_rsi equ rsp + 32 - LocalVarsSize
+save_rbx equ rsp + 40 - LocalVarsSize
+save_rbp equ rsp + 48 - LocalVarsSize
+save_r12 equ rsp + 56 - LocalVarsSize
+save_r13 equ rsp + 64 - LocalVarsSize
+;save_r14 equ rsp + 72 - LocalVarsSize
+;save_r15 equ rsp + 80 - LocalVarsSize
+
+
+; summary of register usage
+; scanend ebx
+; scanendw bx
+; chainlenwmask edx
+; curmatch rsi
+; curmatchd esi
+; windowbestlen r8
+; scanalign r9
+; scanalignd r9d
+; window r10
+; bestlen r11
+; bestlend r11d
+; scanstart r12d
+; scanstartw r12w
+; scan r13
+; nicematch r14d
+; limit r15
+; limitd r15d
+; prev rcx
+
+; all the +4 offsets are due to the addition of pending_buf_size (in zlib
+; in the deflate_state structure since the asm code was first written
+; (if you compile with zlib 1.0.4 or older, remove the +4).
+; Note : these value are good with a 8 bytes boundary pack structure
+
+
+ MAX_MATCH equ 258
+ MIN_MATCH equ 3
+ MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1)
+
+
+;;; Offsets for fields in the deflate_state structure. These numbers
+;;; are calculated from the definition of deflate_state, with the
+;;; assumption that the compiler will dword-align the fields. (Thus,
+;;; changing the definition of deflate_state could easily cause this
+;;; program to crash horribly, without so much as a warning at
+;;; compile time. Sigh.)
+
+; all the +zlib1222add offsets are due to the addition of fields
+; in zlib in the deflate_state structure since the asm code was first written
+; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
+; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
+; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
+
+
+IFDEF INFOZIP
+
+_DATA SEGMENT
+COMM window_size:DWORD
+; WMask ; 7fff
+COMM window:BYTE:010040H
+COMM prev:WORD:08000H
+; MatchLen : unused
+; PrevMatch : unused
+COMM strstart:DWORD
+COMM match_start:DWORD
+; Lookahead : ignore
+COMM prev_length:DWORD ; PrevLen
+COMM max_chain_length:DWORD
+COMM good_match:DWORD
+COMM nice_match:DWORD
+prev_ad equ OFFSET prev
+window_ad equ OFFSET window
+nicematch equ nice_match
+_DATA ENDS
+WMask equ 07fffh
+
+ELSE
+
+ IFNDEF zlib1222add
+ zlib1222add equ 8
+ ENDIF
+dsWSize equ 56+zlib1222add+(zlib1222add/2)
+dsWMask equ 64+zlib1222add+(zlib1222add/2)
+dsWindow equ 72+zlib1222add
+dsPrev equ 88+zlib1222add
+dsMatchLen equ 128+zlib1222add
+dsPrevMatch equ 132+zlib1222add
+dsStrStart equ 140+zlib1222add
+dsMatchStart equ 144+zlib1222add
+dsLookahead equ 148+zlib1222add
+dsPrevLen equ 152+zlib1222add
+dsMaxChainLen equ 156+zlib1222add
+dsGoodMatch equ 172+zlib1222add
+dsNiceMatch equ 176+zlib1222add
+
+window_size equ [ rcx + dsWSize]
+WMask equ [ rcx + dsWMask]
+window_ad equ [ rcx + dsWindow]
+prev_ad equ [ rcx + dsPrev]
+strstart equ [ rcx + dsStrStart]
+match_start equ [ rcx + dsMatchStart]
+Lookahead equ [ rcx + dsLookahead] ; 0ffffffffh on infozip
+prev_length equ [ rcx + dsPrevLen]
+max_chain_length equ [ rcx + dsMaxChainLen]
+good_match equ [ rcx + dsGoodMatch]
+nice_match equ [ rcx + dsNiceMatch]
+ENDIF
+
+; parameter 1 in r8(deflate state s), param 2 in rdx (cur match)
+
+; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and
+; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp
+;
+; All registers must be preserved across the call, except for
+; rax, rcx, rdx, r8, r9, r10, and r11, which are scratch.
+
+
+
+;;; Save registers that the compiler may be using, and adjust esp to
+;;; make room for our stack frame.
+
+
+;;; Retrieve the function arguments. r8d will hold cur_match
+;;; throughout the entire function. edx will hold the pointer to the
+;;; deflate_state structure during the function's setup (before
+;;; entering the main loop.
+
+; parameter 1 in rcx (deflate_state* s), param 2 in edx -> r8 (cur match)
+
+; this clear high 32 bits of r8, which can be garbage in both r8 and rdx
+
+ mov [save_rdi],rdi
+ mov [save_rsi],rsi
+ mov [save_rbx],rbx
+ mov [save_rbp],rbp
+IFDEF INFOZIP
+ mov r8d,ecx
+ELSE
+ mov r8d,edx
+ENDIF
+ mov [save_r12],r12
+ mov [save_r13],r13
+; mov [save_r14],r14
+; mov [save_r15],r15
+
+
+;;; uInt wmask = s->w_mask;
+;;; unsigned chain_length = s->max_chain_length;
+;;; if (s->prev_length >= s->good_match) {
+;;; chain_length >>= 2;
+;;; }
+
+ mov edi, prev_length
+ mov esi, good_match
+ mov eax, WMask
+ mov ebx, max_chain_length
+ cmp edi, esi
+ jl LastMatchGood
+ shr ebx, 2
+LastMatchGood:
+
+;;; chainlen is decremented once beforehand so that the function can
+;;; use the sign flag instead of the zero flag for the exit test.
+;;; It is then shifted into the high word, to make room for the wmask
+;;; value, which it will always accompany.
+
+ dec ebx
+ shl ebx, 16
+ or ebx, eax
+
+;;; on zlib only
+;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
+
+IFDEF INFOZIP
+ mov [chainlenwmask], ebx
+; on infozip nice_match = [nice_match]
+ELSE
+ mov eax, nice_match
+ mov [chainlenwmask], ebx
+ mov r10d, Lookahead
+ cmp r10d, eax
+ cmovnl r10d, eax
+ mov [nicematch],r10d
+ENDIF
+
+;;; register Bytef *scan = s->window + s->strstart;
+ mov r10, window_ad
+ mov ebp, strstart
+ lea r13, [r10 + rbp]
+
+;;; Determine how many bytes the scan ptr is off from being
+;;; dword-aligned.
+
+ mov r9,r13
+ neg r13
+ and r13,3
+
+;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
+;;; s->strstart - (IPos)MAX_DIST(s) : NIL;
+IFDEF INFOZIP
+ mov eax,07efah ; MAX_DIST = (WSIZE-MIN_LOOKAHEAD) (0x8000-(3+8+1))
+ELSE
+ mov eax, window_size
+ sub eax, MIN_LOOKAHEAD
+ENDIF
+ xor edi,edi
+ sub ebp, eax
+
+ mov r11d, prev_length
+
+ cmovng ebp,edi
+
+;;; int best_len = s->prev_length;
+
+
+;;; Store the sum of s->window + best_len in esi locally, and in esi.
+
+ lea rsi,[r10+r11]
+
+;;; register ush scan_start = *(ushf*)scan;
+;;; register ush scan_end = *(ushf*)(scan+best_len-1);
+;;; Posf *prev = s->prev;
+
+ movzx r12d,word ptr [r9]
+ movzx ebx, word ptr [r9 + r11 - 1]
+
+ mov rdi, prev_ad
+
+;;; Jump into the main loop.
+
+ mov edx, [chainlenwmask]
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ jz LookupLoopIsZero
+
+LookupLoop1:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ jbe LeaveNow
+ sub edx, 00010000h
+ js LeaveNow
+
+LoopEntry1:
+ cmp bx,word ptr [rsi + r8 - 1]
+ jz LookupLoopIsZero
+
+LookupLoop2:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ jbe LeaveNow
+ sub edx, 00010000h
+ js LeaveNow
+
+LoopEntry2:
+ cmp bx,word ptr [rsi + r8 - 1]
+ jz LookupLoopIsZero
+
+LookupLoop4:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ jbe LeaveNow
+ sub edx, 00010000h
+ js LeaveNow
+
+LoopEntry4:
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ jnz LookupLoop1
+ jmp LookupLoopIsZero
+
+
+;;; do {
+;;; match = s->window + cur_match;
+;;; if (*(ushf*)(match+best_len-1) != scan_end ||
+;;; *(ushf*)match != scan_start) continue;
+;;; [...]
+;;; } while ((cur_match = prev[cur_match & wmask]) > limit
+;;; && --chain_length != 0);
+;;;
+;;; Here is the inner loop of the function. The function will spend the
+;;; majority of its time in this loop, and majority of that time will
+;;; be spent in the first ten instructions.
+;;;
+;;; Within this loop:
+;;; ebx = scanend
+;;; r8d = curmatch
+;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
+;;; esi = windowbestlen - i.e., (window + bestlen)
+;;; edi = prev
+;;; ebp = limit
+
+LookupLoop:
+ and r8d, edx
+
+ movzx r8d, word ptr [rdi + r8*2]
+ cmp r8d, ebp
+ jbe LeaveNow
+ sub edx, 00010000h
+ js LeaveNow
+
+LoopEntry:
+
+ cmp bx,word ptr [rsi + r8 - 1]
+ jnz LookupLoop1
+LookupLoopIsZero:
+ cmp r12w, word ptr [r10 + r8]
+ jnz LookupLoop1
+
+
+;;; Store the current value of chainlen.
+ mov [chainlenwmask], edx
+
+;;; Point edi to the string under scrutiny, and esi to the string we
+;;; are hoping to match it up with. In actuality, esi and edi are
+;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
+;;; initialized to -(MAX_MATCH_8 - scanalign).
+
+ lea rsi,[r8+r10]
+ mov rdx, 0fffffffffffffef8h; -(MAX_MATCH_8)
+ lea rsi, [rsi + r13 + 0108h] ;MAX_MATCH_8]
+ lea rdi, [r9 + r13 + 0108h] ;MAX_MATCH_8]
+
+ prefetcht1 [rsi+rdx]
+ prefetcht1 [rdi+rdx]
+
+
+;;; Test the strings for equality, 8 bytes at a time. At the end,
+;;; adjust rdx so that it is offset to the exact byte that mismatched.
+;;;
+;;; We already know at this point that the first three bytes of the
+;;; strings match each other, and they can be safely passed over before
+;;; starting the compare loop. So what this code does is skip over 0-3
+;;; bytes, as much as necessary in order to dword-align the edi
+;;; pointer. (rsi will still be misaligned three times out of four.)
+;;;
+;;; It should be confessed that this loop usually does not represent
+;;; much of the total running time. Replacing it with a more
+;;; straightforward "rep cmpsb" would not drastically degrade
+;;; performance.
+
+
+LoopCmps:
+ mov rax, [rsi + rdx]
+ xor rax, [rdi + rdx]
+ jnz LeaveLoopCmps
+
+ mov rax, [rsi + rdx + 8]
+ xor rax, [rdi + rdx + 8]
+ jnz LeaveLoopCmps8
+
+
+ mov rax, [rsi + rdx + 8+8]
+ xor rax, [rdi + rdx + 8+8]
+ jnz LeaveLoopCmps16
+
+ add rdx,8+8+8
+
+ jnz short LoopCmps
+ jmp short LenMaximum
+LeaveLoopCmps16: add rdx,8
+LeaveLoopCmps8: add rdx,8
+LeaveLoopCmps:
+
+ test eax, 0000FFFFh
+ jnz LenLower
+
+ test eax,0ffffffffh
+
+ jnz LenLower32
+
+ add rdx,4
+ shr rax,32
+ or ax,ax
+ jnz LenLower
+
+LenLower32:
+ shr eax,16
+ add rdx,2
+LenLower: sub al, 1
+ adc rdx, 0
+;;; Calculate the length of the match. If it is longer than MAX_MATCH,
+;;; then automatically accept it as the best possible match and leave.
+
+ lea rax, [rdi + rdx]
+ sub rax, r9
+ cmp eax, MAX_MATCH
+ jge LenMaximum
+
+;;; If the length of the match is not longer than the best match we
+;;; have so far, then forget it and return to the lookup loop.
+;///////////////////////////////////
+
+ cmp eax, r11d
+ jg LongerMatch
+
+ lea rsi,[r10+r11]
+
+ mov rdi, prev_ad
+ mov edx, [chainlenwmask]
+ jmp LookupLoop
+
+;;; s->match_start = cur_match;
+;;; best_len = len;
+;;; if (len >= nice_match) break;
+;;; scan_end = *(ushf*)(scan+best_len-1);
+
+LongerMatch:
+ mov r11d, eax
+ mov match_start, r8d
+ cmp eax, [nicematch]
+ jge LeaveNow
+
+ lea rsi,[r10+rax]
+
+ movzx ebx, word ptr [r9 + rax - 1]
+ mov rdi, prev_ad
+ mov edx, [chainlenwmask]
+ jmp LookupLoop
+
+;;; Accept the current string, with the maximum possible length.
+
+LenMaximum:
+ mov r11d,MAX_MATCH
+ mov match_start, r8d
+
+;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
+;;; return s->lookahead;
+
+LeaveNow:
+IFDEF INFOZIP
+ mov eax,r11d
+ELSE
+ mov eax, Lookahead
+ cmp r11d, eax
+ cmovng eax, r11d
+ENDIF
+
+;;; Restore the stack and return from whence we came.
+
+
+ mov rsi,[save_rsi]
+ mov rdi,[save_rdi]
+ mov rbx,[save_rbx]
+ mov rbp,[save_rbp]
+ mov r12,[save_r12]
+ mov r13,[save_r13]
+; mov r14,[save_r14]
+; mov r15,[save_r15]
+
+
+ ret 0
+; please don't remove this string !
+; Your can freely use gvmat64 in any free or commercial app
+; but it is far better don't remove the string in the binary!
+ db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998, converted to amd 64 by Gilles Vollant 2005",0dh,0ah,0
+longest_match ENDP
+
+match_init PROC
+ ret 0
+match_init ENDP
+
+
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffas8664.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffas8664.c
new file mode 100644
index 000000000..aa861a333
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffas8664.c
@@ -0,0 +1,186 @@
+/* inffas8664.c is a hand tuned assembler version of inffast.c - fast decoding
+ * version for AMD64 on Windows using Microsoft C compiler
+ *
+ * Copyright (C) 1995-2003 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ * Copyright (C) 2003 Chris Anderson <christop@charm.net>
+ * Please use the copyright conditions above.
+ *
+ * 2005 - Adaptation to Microsoft C Compiler for AMD64 by Gilles Vollant
+ *
+ * inffas8664.c call function inffas8664fnc in inffasx64.asm
+ * inffasx64.asm is automatically convert from AMD64 portion of inffas86.c
+ *
+ * Dec-29-2003 -- I added AMD64 inflate asm support. This version is also
+ * slightly quicker on x86 systems because, instead of using rep movsb to copy
+ * data, it uses rep movsw, which moves data in 2-byte chunks instead of single
+ * bytes. I've tested the AMD64 code on a Fedora Core 1 + the x86_64 updates
+ * from http://fedora.linux.duke.edu/fc1_x86_64
+ * which is running on an Athlon 64 3000+ / Gigabyte GA-K8VT800M system with
+ * 1GB ram. The 64-bit version is about 4% faster than the 32-bit version,
+ * when decompressing mozilla-source-1.3.tar.gz.
+ *
+ * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
+ * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
+ * the moment. I have successfully compiled and tested this code with gcc2.96,
+ * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
+ * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
+ * enabled. I will attempt to merge the MMX code into this version. Newer
+ * versions of this and inffast.S can be found at
+ * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
+ *
+ */
+
+#include <stdio.h>
+#include "zutil.h"
+#include "inftrees.h"
+#include "inflate.h"
+#include "inffast.h"
+
+/* Mark Adler's comments from inffast.c: */
+
+/*
+ Decode literal, length, and distance codes and write out the resulting
+ literal and match bytes until either not enough input or output is
+ available, an end-of-block is encountered, or a data error is encountered.
+ When large enough input and output buffers are supplied to inflate(), for
+ example, a 16K input buffer and a 64K output buffer, more than 95% of the
+ inflate execution time is spent in this routine.
+
+ Entry assumptions:
+
+ state->mode == LEN
+ strm->avail_in >= 6
+ strm->avail_out >= 258
+ start >= strm->avail_out
+ state->bits < 8
+
+ On return, state->mode is one of:
+
+ LEN -- ran out of enough output space or enough available input
+ TYPE -- reached end of block code, inflate() to interpret next block
+ BAD -- error in block data
+
+ Notes:
+
+ - The maximum input bits used by a length/distance pair is 15 bits for the
+ length code, 5 bits for the length extra, 15 bits for the distance code,
+ and 13 bits for the distance extra. This totals 48 bits, or six bytes.
+ Therefore if strm->avail_in >= 6, then there is enough input to avoid
+ checking for available input while decoding.
+
+ - The maximum bytes that a single length/distance pair can output is 258
+ bytes, which is the maximum length that can be coded. inflate_fast()
+ requires strm->avail_out >= 258 for each loop to avoid checking for
+ output space.
+ */
+
+
+
+ typedef struct inffast_ar {
+/* 64 32 x86 x86_64 */
+/* ar offset register */
+/* 0 0 */ void *esp; /* esp save */
+/* 8 4 */ void *ebp; /* ebp save */
+/* 16 8 */ unsigned char FAR *in; /* esi rsi local strm->next_in */
+/* 24 12 */ unsigned char FAR *last; /* r9 while in < last */
+/* 32 16 */ unsigned char FAR *out; /* edi rdi local strm->next_out */
+/* 40 20 */ unsigned char FAR *beg; /* inflate()'s init next_out */
+/* 48 24 */ unsigned char FAR *end; /* r10 while out < end */
+/* 56 28 */ unsigned char FAR *window;/* size of window, wsize!=0 */
+/* 64 32 */ code const FAR *lcode; /* ebp rbp local strm->lencode */
+/* 72 36 */ code const FAR *dcode; /* r11 local strm->distcode */
+/* 80 40 */ size_t /*unsigned long */hold; /* edx rdx local strm->hold */
+/* 88 44 */ unsigned bits; /* ebx rbx local strm->bits */
+/* 92 48 */ unsigned wsize; /* window size */
+/* 96 52 */ unsigned write; /* window write index */
+/*100 56 */ unsigned lmask; /* r12 mask for lcode */
+/*104 60 */ unsigned dmask; /* r13 mask for dcode */
+/*108 64 */ unsigned len; /* r14 match length */
+/*112 68 */ unsigned dist; /* r15 match distance */
+/*116 72 */ unsigned status; /* set when state chng*/
+ } type_ar;
+#ifdef ASMINF
+
+void inflate_fast(strm, start)
+z_streamp strm;
+unsigned start; /* inflate()'s starting value for strm->avail_out */
+{
+ struct inflate_state FAR *state;
+ type_ar ar;
+ void inffas8664fnc(struct inffast_ar * par);
+
+
+
+#if (defined( __GNUC__ ) && defined( __amd64__ ) && ! defined( __i386 )) || (defined(_MSC_VER) && defined(_M_AMD64))
+#define PAD_AVAIL_IN 6
+#define PAD_AVAIL_OUT 258
+#else
+#define PAD_AVAIL_IN 5
+#define PAD_AVAIL_OUT 257
+#endif
+
+ /* copy state to local variables */
+ state = (struct inflate_state FAR *)strm->state;
+
+ ar.in = strm->next_in;
+ ar.last = ar.in + (strm->avail_in - PAD_AVAIL_IN);
+ ar.out = strm->next_out;
+ ar.beg = ar.out - (start - strm->avail_out);
+ ar.end = ar.out + (strm->avail_out - PAD_AVAIL_OUT);
+ ar.wsize = state->wsize;
+ ar.write = state->wnext;
+ ar.window = state->window;
+ ar.hold = state->hold;
+ ar.bits = state->bits;
+ ar.lcode = state->lencode;
+ ar.dcode = state->distcode;
+ ar.lmask = (1U << state->lenbits) - 1;
+ ar.dmask = (1U << state->distbits) - 1;
+
+ /* decode literals and length/distances until end-of-block or not enough
+ input data or output space */
+
+ /* align in on 1/2 hold size boundary */
+ while (((size_t)(void *)ar.in & (sizeof(ar.hold) / 2 - 1)) != 0) {
+ ar.hold += (unsigned long)*ar.in++ << ar.bits;
+ ar.bits += 8;
+ }
+
+ inffas8664fnc(&ar);
+
+ if (ar.status > 1) {
+ if (ar.status == 2)
+ strm->msg = "invalid literal/length code";
+ else if (ar.status == 3)
+ strm->msg = "invalid distance code";
+ else
+ strm->msg = "invalid distance too far back";
+ state->mode = BAD;
+ }
+ else if ( ar.status == 1 ) {
+ state->mode = TYPE;
+ }
+
+ /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+ ar.len = ar.bits >> 3;
+ ar.in -= ar.len;
+ ar.bits -= ar.len << 3;
+ ar.hold &= (1U << ar.bits) - 1;
+
+ /* update state and return */
+ strm->next_in = ar.in;
+ strm->next_out = ar.out;
+ strm->avail_in = (unsigned)(ar.in < ar.last ?
+ PAD_AVAIL_IN + (ar.last - ar.in) :
+ PAD_AVAIL_IN - (ar.in - ar.last));
+ strm->avail_out = (unsigned)(ar.out < ar.end ?
+ PAD_AVAIL_OUT + (ar.end - ar.out) :
+ PAD_AVAIL_OUT - (ar.out - ar.end));
+ state->hold = (unsigned long)ar.hold;
+ state->bits = ar.bits;
+ return;
+}
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffasx64.asm b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffasx64.asm
new file mode 100644
index 000000000..41ec82392
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/inffasx64.asm
@@ -0,0 +1,396 @@
+; inffasx64.asm is a hand tuned assembler version of inffast.c - fast decoding
+; version for AMD64 on Windows using Microsoft C compiler
+;
+; inffasx64.asm is automatically convert from AMD64 portion of inffas86.c
+; inffasx64.asm is called by inffas8664.c, which contain more info.
+
+
+; to compile this file, I use option
+; ml64.exe /Flinffasx64 /c /Zi inffasx64.asm
+; with Microsoft Macro Assembler (x64) for AMD64
+;
+
+; This file compile with Microsoft Macro Assembler (x64) for AMD64
+;
+; ml64.exe is given with Visual Studio 2005/2008/2010 and Windows WDK
+;
+; (you can get Windows WDK with ml64 for AMD64 from
+; http://www.microsoft.com/whdc/Devtools/wdk/default.mspx for low price)
+;
+
+
+.code
+inffas8664fnc PROC
+
+; see http://weblogs.asp.net/oldnewthing/archive/2004/01/14/58579.aspx and
+; http://msdn.microsoft.com/library/en-us/kmarch/hh/kmarch/64bitAMD_8e951dd2-ee77-4728-8702-55ce4b5dd24a.xml.asp
+;
+; All registers must be preserved across the call, except for
+; rax, rcx, rdx, r8, r-9, r10, and r11, which are scratch.
+
+
+ mov [rsp-8],rsi
+ mov [rsp-16],rdi
+ mov [rsp-24],r12
+ mov [rsp-32],r13
+ mov [rsp-40],r14
+ mov [rsp-48],r15
+ mov [rsp-56],rbx
+
+ mov rax,rcx
+
+ mov [rax+8], rbp ; /* save regs rbp and rsp */
+ mov [rax], rsp
+
+ mov rsp, rax ; /* make rsp point to &ar */
+
+ mov rsi, [rsp+16] ; /* rsi = in */
+ mov rdi, [rsp+32] ; /* rdi = out */
+ mov r9, [rsp+24] ; /* r9 = last */
+ mov r10, [rsp+48] ; /* r10 = end */
+ mov rbp, [rsp+64] ; /* rbp = lcode */
+ mov r11, [rsp+72] ; /* r11 = dcode */
+ mov rdx, [rsp+80] ; /* rdx = hold */
+ mov ebx, [rsp+88] ; /* ebx = bits */
+ mov r12d, [rsp+100] ; /* r12d = lmask */
+ mov r13d, [rsp+104] ; /* r13d = dmask */
+ ; /* r14d = len */
+ ; /* r15d = dist */
+
+
+ cld
+ cmp r10, rdi
+ je L_one_time ; /* if only one decode left */
+ cmp r9, rsi
+
+ jne L_do_loop
+
+
+L_one_time:
+ mov r8, r12 ; /* r8 = lmask */
+ cmp bl, 32
+ ja L_get_length_code_one_time
+
+ lodsd ; /* eax = *(uint *)in++ */
+ mov cl, bl ; /* cl = bits, needs it for shifting */
+ add bl, 32 ; /* bits += 32 */
+ shl rax, cl
+ or rdx, rax ; /* hold |= *((uint *)in)++ << bits */
+ jmp L_get_length_code_one_time
+
+ALIGN 4
+L_while_test:
+ cmp r10, rdi
+ jbe L_break_loop
+ cmp r9, rsi
+ jbe L_break_loop
+
+L_do_loop:
+ mov r8, r12 ; /* r8 = lmask */
+ cmp bl, 32
+ ja L_get_length_code ; /* if (32 < bits) */
+
+ lodsd ; /* eax = *(uint *)in++ */
+ mov cl, bl ; /* cl = bits, needs it for shifting */
+ add bl, 32 ; /* bits += 32 */
+ shl rax, cl
+ or rdx, rax ; /* hold |= *((uint *)in)++ << bits */
+
+L_get_length_code:
+ and r8, rdx ; /* r8 &= hold */
+ mov eax, [rbp+r8*4] ; /* eax = lcode[hold & lmask] */
+
+ mov cl, ah ; /* cl = this.bits */
+ sub bl, ah ; /* bits -= this.bits */
+ shr rdx, cl ; /* hold >>= this.bits */
+
+ test al, al
+ jnz L_test_for_length_base ; /* if (op != 0) 45.7% */
+
+ mov r8, r12 ; /* r8 = lmask */
+ shr eax, 16 ; /* output this.val char */
+ stosb
+
+L_get_length_code_one_time:
+ and r8, rdx ; /* r8 &= hold */
+ mov eax, [rbp+r8*4] ; /* eax = lcode[hold & lmask] */
+
+L_dolen:
+ mov cl, ah ; /* cl = this.bits */
+ sub bl, ah ; /* bits -= this.bits */
+ shr rdx, cl ; /* hold >>= this.bits */
+
+ test al, al
+ jnz L_test_for_length_base ; /* if (op != 0) 45.7% */
+
+ shr eax, 16 ; /* output this.val char */
+ stosb
+ jmp L_while_test
+
+ALIGN 4
+L_test_for_length_base:
+ mov r14d, eax ; /* len = this */
+ shr r14d, 16 ; /* len = this.val */
+ mov cl, al
+
+ test al, 16
+ jz L_test_for_second_level_length ; /* if ((op & 16) == 0) 8% */
+ and cl, 15 ; /* op &= 15 */
+ jz L_decode_distance ; /* if (!op) */
+
+L_add_bits_to_len:
+ sub bl, cl
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx ; /* eax &= hold */
+ shr rdx, cl
+ add r14d, eax ; /* len += hold & mask[op] */
+
+L_decode_distance:
+ mov r8, r13 ; /* r8 = dmask */
+ cmp bl, 32
+ ja L_get_distance_code ; /* if (32 < bits) */
+
+ lodsd ; /* eax = *(uint *)in++ */
+ mov cl, bl ; /* cl = bits, needs it for shifting */
+ add bl, 32 ; /* bits += 32 */
+ shl rax, cl
+ or rdx, rax ; /* hold |= *((uint *)in)++ << bits */
+
+L_get_distance_code:
+ and r8, rdx ; /* r8 &= hold */
+ mov eax, [r11+r8*4] ; /* eax = dcode[hold & dmask] */
+
+L_dodist:
+ mov r15d, eax ; /* dist = this */
+ shr r15d, 16 ; /* dist = this.val */
+ mov cl, ah
+ sub bl, ah ; /* bits -= this.bits */
+ shr rdx, cl ; /* hold >>= this.bits */
+ mov cl, al ; /* cl = this.op */
+
+ test al, 16 ; /* if ((op & 16) == 0) */
+ jz L_test_for_second_level_dist
+ and cl, 15 ; /* op &= 15 */
+ jz L_check_dist_one
+
+L_add_bits_to_dist:
+ sub bl, cl
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax ; /* (1 << op) - 1 */
+ and eax, edx ; /* eax &= hold */
+ shr rdx, cl
+ add r15d, eax ; /* dist += hold & ((1 << op) - 1) */
+
+L_check_window:
+ mov r8, rsi ; /* save in so from can use it's reg */
+ mov rax, rdi
+ sub rax, [rsp+40] ; /* nbytes = out - beg */
+
+ cmp eax, r15d
+ jb L_clip_window ; /* if (dist > nbytes) 4.2% */
+
+ mov ecx, r14d ; /* ecx = len */
+ mov rsi, rdi
+ sub rsi, r15 ; /* from = out - dist */
+
+ sar ecx, 1
+ jnc L_copy_two ; /* if len % 2 == 0 */
+
+ rep movsw
+ mov al, [rsi]
+ mov [rdi], al
+ inc rdi
+
+ mov rsi, r8 ; /* move in back to %rsi, toss from */
+ jmp L_while_test
+
+L_copy_two:
+ rep movsw
+ mov rsi, r8 ; /* move in back to %rsi, toss from */
+ jmp L_while_test
+
+ALIGN 4
+L_check_dist_one:
+ cmp r15d, 1 ; /* if dist 1, is a memset */
+ jne L_check_window
+ cmp [rsp+40], rdi ; /* if out == beg, outside window */
+ je L_check_window
+
+ mov ecx, r14d ; /* ecx = len */
+ mov al, [rdi-1]
+ mov ah, al
+
+ sar ecx, 1
+ jnc L_set_two
+ mov [rdi], al
+ inc rdi
+
+L_set_two:
+ rep stosw
+ jmp L_while_test
+
+ALIGN 4
+L_test_for_second_level_length:
+ test al, 64
+ jnz L_test_for_end_of_block ; /* if ((op & 64) != 0) */
+
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx ; /* eax &= hold */
+ add eax, r14d ; /* eax += len */
+ mov eax, [rbp+rax*4] ; /* eax = lcode[val+(hold&mask[op])]*/
+ jmp L_dolen
+
+ALIGN 4
+L_test_for_second_level_dist:
+ test al, 64
+ jnz L_invalid_distance_code ; /* if ((op & 64) != 0) */
+
+ xor eax, eax
+ inc eax
+ shl eax, cl
+ dec eax
+ and eax, edx ; /* eax &= hold */
+ add eax, r15d ; /* eax += dist */
+ mov eax, [r11+rax*4] ; /* eax = dcode[val+(hold&mask[op])]*/
+ jmp L_dodist
+
+ALIGN 4
+L_clip_window:
+ mov ecx, eax ; /* ecx = nbytes */
+ mov eax, [rsp+92] ; /* eax = wsize, prepare for dist cmp */
+ neg ecx ; /* nbytes = -nbytes */
+
+ cmp eax, r15d
+ jb L_invalid_distance_too_far ; /* if (dist > wsize) */
+
+ add ecx, r15d ; /* nbytes = dist - nbytes */
+ cmp dword ptr [rsp+96], 0
+ jne L_wrap_around_window ; /* if (write != 0) */
+
+ mov rsi, [rsp+56] ; /* from = window */
+ sub eax, ecx ; /* eax -= nbytes */
+ add rsi, rax ; /* from += wsize - nbytes */
+
+ mov eax, r14d ; /* eax = len */
+ cmp r14d, ecx
+ jbe L_do_copy ; /* if (nbytes >= len) */
+
+ sub eax, ecx ; /* eax -= nbytes */
+ rep movsb
+ mov rsi, rdi
+ sub rsi, r15 ; /* from = &out[ -dist ] */
+ jmp L_do_copy
+
+ALIGN 4
+L_wrap_around_window:
+ mov eax, [rsp+96] ; /* eax = write */
+ cmp ecx, eax
+ jbe L_contiguous_in_window ; /* if (write >= nbytes) */
+
+ mov esi, [rsp+92] ; /* from = wsize */
+ add rsi, [rsp+56] ; /* from += window */
+ add rsi, rax ; /* from += write */
+ sub rsi, rcx ; /* from -= nbytes */
+ sub ecx, eax ; /* nbytes -= write */
+
+ mov eax, r14d ; /* eax = len */
+ cmp eax, ecx
+ jbe L_do_copy ; /* if (nbytes >= len) */
+
+ sub eax, ecx ; /* len -= nbytes */
+ rep movsb
+ mov rsi, [rsp+56] ; /* from = window */
+ mov ecx, [rsp+96] ; /* nbytes = write */
+ cmp eax, ecx
+ jbe L_do_copy ; /* if (nbytes >= len) */
+
+ sub eax, ecx ; /* len -= nbytes */
+ rep movsb
+ mov rsi, rdi
+ sub rsi, r15 ; /* from = out - dist */
+ jmp L_do_copy
+
+ALIGN 4
+L_contiguous_in_window:
+ mov rsi, [rsp+56] ; /* rsi = window */
+ add rsi, rax
+ sub rsi, rcx ; /* from += write - nbytes */
+
+ mov eax, r14d ; /* eax = len */
+ cmp eax, ecx
+ jbe L_do_copy ; /* if (nbytes >= len) */
+
+ sub eax, ecx ; /* len -= nbytes */
+ rep movsb
+ mov rsi, rdi
+ sub rsi, r15 ; /* from = out - dist */
+ jmp L_do_copy ; /* if (nbytes >= len) */
+
+ALIGN 4
+L_do_copy:
+ mov ecx, eax ; /* ecx = len */
+ rep movsb
+
+ mov rsi, r8 ; /* move in back to %esi, toss from */
+ jmp L_while_test
+
+L_test_for_end_of_block:
+ test al, 32
+ jz L_invalid_literal_length_code
+ mov dword ptr [rsp+116], 1
+ jmp L_break_loop_with_status
+
+L_invalid_literal_length_code:
+ mov dword ptr [rsp+116], 2
+ jmp L_break_loop_with_status
+
+L_invalid_distance_code:
+ mov dword ptr [rsp+116], 3
+ jmp L_break_loop_with_status
+
+L_invalid_distance_too_far:
+ mov dword ptr [rsp+116], 4
+ jmp L_break_loop_with_status
+
+L_break_loop:
+ mov dword ptr [rsp+116], 0
+
+L_break_loop_with_status:
+; /* put in, out, bits, and hold back into ar and pop esp */
+ mov [rsp+16], rsi ; /* in */
+ mov [rsp+32], rdi ; /* out */
+ mov [rsp+88], ebx ; /* bits */
+ mov [rsp+80], rdx ; /* hold */
+
+ mov rax, [rsp] ; /* restore rbp and rsp */
+ mov rbp, [rsp+8]
+ mov rsp, rax
+
+
+
+ mov rsi,[rsp-8]
+ mov rdi,[rsp-16]
+ mov r12,[rsp-24]
+ mov r13,[rsp-32]
+ mov r14,[rsp-40]
+ mov r15,[rsp-48]
+ mov rbx,[rsp-56]
+
+ ret 0
+; :
+; : "m" (ar)
+; : "memory", "%rax", "%rbx", "%rcx", "%rdx", "%rsi", "%rdi",
+; "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15"
+; );
+
+inffas8664fnc ENDP
+;_TEXT ENDS
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/readme.txt
new file mode 100644
index 000000000..652571c7a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx64/readme.txt
@@ -0,0 +1,31 @@
+Summary
+-------
+This directory contains ASM implementations of the functions
+longest_match() and inflate_fast(), for 64 bits x86 (both AMD64 and Intel EM64t),
+for use with Microsoft Macro Assembler (x64) for AMD64 and Microsoft C++ 64 bits.
+
+gvmat64.asm is written by Gilles Vollant (2005), by using Brian Raiter 686/32 bits
+ assembly optimized version from Jean-loup Gailly original longest_match function
+
+inffasx64.asm and inffas8664.c were written by Chris Anderson, by optimizing
+ original function from Mark Adler
+
+Use instructions
+----------------
+Assemble the .asm files using MASM and put the object files into the zlib source
+directory. You can also get object files here:
+
+ http://www.winimage.com/zLibDll/zlib124_masm_obj.zip
+
+define ASMV and ASMINF in your project. Include inffas8664.c in your source tree,
+and inffasx64.obj and gvmat64.obj as object to link.
+
+
+Build instructions
+------------------
+run bld_64.bat with Microsoft Macro Assembler (x64) for AMD64 (ml64.exe)
+
+ml64.exe is given with Visual Studio 2005, Windows 2003 server DDK
+
+You can get Windows 2003 server DDK with ml64 and cl for AMD64 from
+ http://www.microsoft.com/whdc/devtools/ddk/default.mspx for low price)
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/bld_ml32.bat b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/bld_ml32.bat
new file mode 100644
index 000000000..fcf5755e4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/bld_ml32.bat
@@ -0,0 +1,2 @@
+ml /coff /Zi /c /Flmatch686.lst match686.asm
+ml /coff /Zi /c /Flinffas32.lst inffas32.asm
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/inffas32.asm b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/inffas32.asm
new file mode 100644
index 000000000..cb37a81e4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/inffas32.asm
@@ -0,0 +1,1080 @@
+;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
+; *
+; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
+; *
+; * Copyright (C) 1995-2003 Mark Adler
+; * For conditions of distribution and use, see copyright notice in zlib.h
+; *
+; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
+; * Please use the copyright conditions above.
+; *
+; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
+; * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
+; * the moment. I have successfully compiled and tested this code with gcc2.96,
+; * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
+; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
+; * enabled. I will attempt to merge the MMX code into this version. Newer
+; * versions of this and inffast.S can be found at
+; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
+; *
+; * 2005 : modification by Gilles Vollant
+; */
+; For Visual C++ 4.x and higher and ML 6.x and higher
+; ml.exe is in directory \MASM611C of Win95 DDK
+; ml.exe is also distributed in http://www.masm32.com/masmdl.htm
+; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
+;
+;
+; compile with command line option
+; ml /coff /Zi /c /Flinffas32.lst inffas32.asm
+
+; if you define NO_GZIP (see inflate.h), compile with
+; ml /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm
+
+
+; zlib122sup is 0 fort zlib 1.2.2.1 and lower
+; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head
+; in inflate_state in inflate.h)
+zlib1222sup equ 8
+
+
+IFDEF GUNZIP
+ INFLATE_MODE_TYPE equ 11
+ INFLATE_MODE_BAD equ 26
+ELSE
+ IFNDEF NO_GUNZIP
+ INFLATE_MODE_TYPE equ 11
+ INFLATE_MODE_BAD equ 26
+ ELSE
+ INFLATE_MODE_TYPE equ 3
+ INFLATE_MODE_BAD equ 17
+ ENDIF
+ENDIF
+
+
+; 75 "inffast.S"
+;FILE "inffast.S"
+
+;;;GLOBAL _inflate_fast
+
+;;;SECTION .text
+
+
+
+ .586p
+ .mmx
+
+ name inflate_fast_x86
+ .MODEL FLAT
+
+_DATA segment
+inflate_fast_use_mmx:
+ dd 1
+
+
+_TEXT segment
+
+
+
+ALIGN 4
+ db 'Fast decoding Code from Chris Anderson'
+ db 0
+
+ALIGN 4
+invalid_literal_length_code_msg:
+ db 'invalid literal/length code'
+ db 0
+
+ALIGN 4
+invalid_distance_code_msg:
+ db 'invalid distance code'
+ db 0
+
+ALIGN 4
+invalid_distance_too_far_msg:
+ db 'invalid distance too far back'
+ db 0
+
+
+ALIGN 4
+inflate_fast_mask:
+dd 0
+dd 1
+dd 3
+dd 7
+dd 15
+dd 31
+dd 63
+dd 127
+dd 255
+dd 511
+dd 1023
+dd 2047
+dd 4095
+dd 8191
+dd 16383
+dd 32767
+dd 65535
+dd 131071
+dd 262143
+dd 524287
+dd 1048575
+dd 2097151
+dd 4194303
+dd 8388607
+dd 16777215
+dd 33554431
+dd 67108863
+dd 134217727
+dd 268435455
+dd 536870911
+dd 1073741823
+dd 2147483647
+dd 4294967295
+
+
+mode_state equ 0 ;/* state->mode */
+wsize_state equ (32+zlib1222sup) ;/* state->wsize */
+write_state equ (36+4+zlib1222sup) ;/* state->write */
+window_state equ (40+4+zlib1222sup) ;/* state->window */
+hold_state equ (44+4+zlib1222sup) ;/* state->hold */
+bits_state equ (48+4+zlib1222sup) ;/* state->bits */
+lencode_state equ (64+4+zlib1222sup) ;/* state->lencode */
+distcode_state equ (68+4+zlib1222sup) ;/* state->distcode */
+lenbits_state equ (72+4+zlib1222sup) ;/* state->lenbits */
+distbits_state equ (76+4+zlib1222sup) ;/* state->distbits */
+
+
+;;SECTION .text
+; 205 "inffast.S"
+;GLOBAL inflate_fast_use_mmx
+
+;SECTION .data
+
+
+; GLOBAL inflate_fast_use_mmx:object
+;.size inflate_fast_use_mmx, 4
+; 226 "inffast.S"
+;SECTION .text
+
+ALIGN 4
+_inflate_fast proc near
+.FPO (16, 4, 0, 0, 1, 0)
+ push edi
+ push esi
+ push ebp
+ push ebx
+ pushfd
+ sub esp,64
+ cld
+
+
+
+
+ mov esi, [esp+88]
+ mov edi, [esi+28]
+
+
+
+
+
+
+
+ mov edx, [esi+4]
+ mov eax, [esi+0]
+
+ add edx,eax
+ sub edx,11
+
+ mov [esp+44],eax
+ mov [esp+20],edx
+
+ mov ebp, [esp+92]
+ mov ecx, [esi+16]
+ mov ebx, [esi+12]
+
+ sub ebp,ecx
+ neg ebp
+ add ebp,ebx
+
+ sub ecx,257
+ add ecx,ebx
+
+ mov [esp+60],ebx
+ mov [esp+40],ebp
+ mov [esp+16],ecx
+; 285 "inffast.S"
+ mov eax, [edi+lencode_state]
+ mov ecx, [edi+distcode_state]
+
+ mov [esp+8],eax
+ mov [esp+12],ecx
+
+ mov eax,1
+ mov ecx, [edi+lenbits_state]
+ shl eax,cl
+ dec eax
+ mov [esp+0],eax
+
+ mov eax,1
+ mov ecx, [edi+distbits_state]
+ shl eax,cl
+ dec eax
+ mov [esp+4],eax
+
+ mov eax, [edi+wsize_state]
+ mov ecx, [edi+write_state]
+ mov edx, [edi+window_state]
+
+ mov [esp+52],eax
+ mov [esp+48],ecx
+ mov [esp+56],edx
+
+ mov ebp, [edi+hold_state]
+ mov ebx, [edi+bits_state]
+; 321 "inffast.S"
+ mov esi, [esp+44]
+ mov ecx, [esp+20]
+ cmp ecx,esi
+ ja L_align_long
+
+ add ecx,11
+ sub ecx,esi
+ mov eax,12
+ sub eax,ecx
+ lea edi, [esp+28]
+ rep movsb
+ mov ecx,eax
+ xor eax,eax
+ rep stosb
+ lea esi, [esp+28]
+ mov [esp+20],esi
+ jmp L_is_aligned
+
+
+L_align_long:
+ test esi,3
+ jz L_is_aligned
+ xor eax,eax
+ mov al, [esi]
+ inc esi
+ mov ecx,ebx
+ add ebx,8
+ shl eax,cl
+ or ebp,eax
+ jmp L_align_long
+
+L_is_aligned:
+ mov edi, [esp+60]
+; 366 "inffast.S"
+L_check_mmx:
+ cmp dword ptr [inflate_fast_use_mmx],2
+ je L_init_mmx
+ ja L_do_loop
+
+ push eax
+ push ebx
+ push ecx
+ push edx
+ pushfd
+ mov eax, [esp]
+ xor dword ptr [esp],0200000h
+
+
+
+
+ popfd
+ pushfd
+ pop edx
+ xor edx,eax
+ jz L_dont_use_mmx
+ xor eax,eax
+ cpuid
+ cmp ebx,0756e6547h
+ jne L_dont_use_mmx
+ cmp ecx,06c65746eh
+ jne L_dont_use_mmx
+ cmp edx,049656e69h
+ jne L_dont_use_mmx
+ mov eax,1
+ cpuid
+ shr eax,8
+ and eax,15
+ cmp eax,6
+ jne L_dont_use_mmx
+ test edx,0800000h
+ jnz L_use_mmx
+ jmp L_dont_use_mmx
+L_use_mmx:
+ mov dword ptr [inflate_fast_use_mmx],2
+ jmp L_check_mmx_pop
+L_dont_use_mmx:
+ mov dword ptr [inflate_fast_use_mmx],3
+L_check_mmx_pop:
+ pop edx
+ pop ecx
+ pop ebx
+ pop eax
+ jmp L_check_mmx
+; 426 "inffast.S"
+ALIGN 4
+L_do_loop:
+; 437 "inffast.S"
+ cmp bl,15
+ ja L_get_length_code
+
+ xor eax,eax
+ lodsw
+ mov cl,bl
+ add bl,16
+ shl eax,cl
+ or ebp,eax
+
+L_get_length_code:
+ mov edx, [esp+0]
+ mov ecx, [esp+8]
+ and edx,ebp
+ mov eax, [ecx+edx*4]
+
+L_dolen:
+
+
+
+
+
+
+ mov cl,ah
+ sub bl,ah
+ shr ebp,cl
+
+
+
+
+
+
+ test al,al
+ jnz L_test_for_length_base
+
+ shr eax,16
+ stosb
+
+L_while_test:
+
+
+ cmp [esp+16],edi
+ jbe L_break_loop
+
+ cmp [esp+20],esi
+ ja L_do_loop
+ jmp L_break_loop
+
+L_test_for_length_base:
+; 502 "inffast.S"
+ mov edx,eax
+ shr edx,16
+ mov cl,al
+
+ test al,16
+ jz L_test_for_second_level_length
+ and cl,15
+ jz L_save_len
+ cmp bl,cl
+ jae L_add_bits_to_len
+
+ mov ch,cl
+ xor eax,eax
+ lodsw
+ mov cl,bl
+ add bl,16
+ shl eax,cl
+ or ebp,eax
+ mov cl,ch
+
+L_add_bits_to_len:
+ mov eax,1
+ shl eax,cl
+ dec eax
+ sub bl,cl
+ and eax,ebp
+ shr ebp,cl
+ add edx,eax
+
+L_save_len:
+ mov [esp+24],edx
+
+
+L_decode_distance:
+; 549 "inffast.S"
+ cmp bl,15
+ ja L_get_distance_code
+
+ xor eax,eax
+ lodsw
+ mov cl,bl
+ add bl,16
+ shl eax,cl
+ or ebp,eax
+
+L_get_distance_code:
+ mov edx, [esp+4]
+ mov ecx, [esp+12]
+ and edx,ebp
+ mov eax, [ecx+edx*4]
+
+
+L_dodist:
+ mov edx,eax
+ shr edx,16
+ mov cl,ah
+ sub bl,ah
+ shr ebp,cl
+; 584 "inffast.S"
+ mov cl,al
+
+ test al,16
+ jz L_test_for_second_level_dist
+ and cl,15
+ jz L_check_dist_one
+ cmp bl,cl
+ jae L_add_bits_to_dist
+
+ mov ch,cl
+ xor eax,eax
+ lodsw
+ mov cl,bl
+ add bl,16
+ shl eax,cl
+ or ebp,eax
+ mov cl,ch
+
+L_add_bits_to_dist:
+ mov eax,1
+ shl eax,cl
+ dec eax
+ sub bl,cl
+ and eax,ebp
+ shr ebp,cl
+ add edx,eax
+ jmp L_check_window
+
+L_check_window:
+; 625 "inffast.S"
+ mov [esp+44],esi
+ mov eax,edi
+ sub eax, [esp+40]
+
+ cmp eax,edx
+ jb L_clip_window
+
+ mov ecx, [esp+24]
+ mov esi,edi
+ sub esi,edx
+
+ sub ecx,3
+ mov al, [esi]
+ mov [edi],al
+ mov al, [esi+1]
+ mov dl, [esi+2]
+ add esi,3
+ mov [edi+1],al
+ mov [edi+2],dl
+ add edi,3
+ rep movsb
+
+ mov esi, [esp+44]
+ jmp L_while_test
+
+ALIGN 4
+L_check_dist_one:
+ cmp edx,1
+ jne L_check_window
+ cmp [esp+40],edi
+ je L_check_window
+
+ dec edi
+ mov ecx, [esp+24]
+ mov al, [edi]
+ sub ecx,3
+
+ mov [edi+1],al
+ mov [edi+2],al
+ mov [edi+3],al
+ add edi,4
+ rep stosb
+
+ jmp L_while_test
+
+ALIGN 4
+L_test_for_second_level_length:
+
+
+
+
+ test al,64
+ jnz L_test_for_end_of_block
+
+ mov eax,1
+ shl eax,cl
+ dec eax
+ and eax,ebp
+ add eax,edx
+ mov edx, [esp+8]
+ mov eax, [edx+eax*4]
+ jmp L_dolen
+
+ALIGN 4
+L_test_for_second_level_dist:
+
+
+
+
+ test al,64
+ jnz L_invalid_distance_code
+
+ mov eax,1
+ shl eax,cl
+ dec eax
+ and eax,ebp
+ add eax,edx
+ mov edx, [esp+12]
+ mov eax, [edx+eax*4]
+ jmp L_dodist
+
+ALIGN 4
+L_clip_window:
+; 721 "inffast.S"
+ mov ecx,eax
+ mov eax, [esp+52]
+ neg ecx
+ mov esi, [esp+56]
+
+ cmp eax,edx
+ jb L_invalid_distance_too_far
+
+ add ecx,edx
+ cmp dword ptr [esp+48],0
+ jne L_wrap_around_window
+
+ sub eax,ecx
+ add esi,eax
+; 749 "inffast.S"
+ mov eax, [esp+24]
+ cmp eax,ecx
+ jbe L_do_copy1
+
+ sub eax,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,edx
+ jmp L_do_copy1
+
+ cmp eax,ecx
+ jbe L_do_copy1
+
+ sub eax,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,edx
+ jmp L_do_copy1
+
+L_wrap_around_window:
+; 793 "inffast.S"
+ mov eax, [esp+48]
+ cmp ecx,eax
+ jbe L_contiguous_in_window
+
+ add esi, [esp+52]
+ add esi,eax
+ sub esi,ecx
+ sub ecx,eax
+
+
+ mov eax, [esp+24]
+ cmp eax,ecx
+ jbe L_do_copy1
+
+ sub eax,ecx
+ rep movsb
+ mov esi, [esp+56]
+ mov ecx, [esp+48]
+ cmp eax,ecx
+ jbe L_do_copy1
+
+ sub eax,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,edx
+ jmp L_do_copy1
+
+L_contiguous_in_window:
+; 836 "inffast.S"
+ add esi,eax
+ sub esi,ecx
+
+
+ mov eax, [esp+24]
+ cmp eax,ecx
+ jbe L_do_copy1
+
+ sub eax,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,edx
+
+L_do_copy1:
+; 862 "inffast.S"
+ mov ecx,eax
+ rep movsb
+
+ mov esi, [esp+44]
+ jmp L_while_test
+; 878 "inffast.S"
+ALIGN 4
+L_init_mmx:
+ emms
+
+
+
+
+
+ movd mm0,ebp
+ mov ebp,ebx
+; 896 "inffast.S"
+ movd mm4,dword ptr [esp+0]
+ movq mm3,mm4
+ movd mm5,dword ptr [esp+4]
+ movq mm2,mm5
+ pxor mm1,mm1
+ mov ebx, [esp+8]
+ jmp L_do_loop_mmx
+
+ALIGN 4
+L_do_loop_mmx:
+ psrlq mm0,mm1
+
+ cmp ebp,32
+ ja L_get_length_code_mmx
+
+ movd mm6,ebp
+ movd mm7,dword ptr [esi]
+ add esi,4
+ psllq mm7,mm6
+ add ebp,32
+ por mm0,mm7
+
+L_get_length_code_mmx:
+ pand mm4,mm0
+ movd eax,mm4
+ movq mm4,mm3
+ mov eax, [ebx+eax*4]
+
+L_dolen_mmx:
+ movzx ecx,ah
+ movd mm1,ecx
+ sub ebp,ecx
+
+ test al,al
+ jnz L_test_for_length_base_mmx
+
+ shr eax,16
+ stosb
+
+L_while_test_mmx:
+
+
+ cmp [esp+16],edi
+ jbe L_break_loop
+
+ cmp [esp+20],esi
+ ja L_do_loop_mmx
+ jmp L_break_loop
+
+L_test_for_length_base_mmx:
+
+ mov edx,eax
+ shr edx,16
+
+ test al,16
+ jz L_test_for_second_level_length_mmx
+ and eax,15
+ jz L_decode_distance_mmx
+
+ psrlq mm0,mm1
+ movd mm1,eax
+ movd ecx,mm0
+ sub ebp,eax
+ and ecx, [inflate_fast_mask+eax*4]
+ add edx,ecx
+
+L_decode_distance_mmx:
+ psrlq mm0,mm1
+
+ cmp ebp,32
+ ja L_get_dist_code_mmx
+
+ movd mm6,ebp
+ movd mm7,dword ptr [esi]
+ add esi,4
+ psllq mm7,mm6
+ add ebp,32
+ por mm0,mm7
+
+L_get_dist_code_mmx:
+ mov ebx, [esp+12]
+ pand mm5,mm0
+ movd eax,mm5
+ movq mm5,mm2
+ mov eax, [ebx+eax*4]
+
+L_dodist_mmx:
+
+ movzx ecx,ah
+ mov ebx,eax
+ shr ebx,16
+ sub ebp,ecx
+ movd mm1,ecx
+
+ test al,16
+ jz L_test_for_second_level_dist_mmx
+ and eax,15
+ jz L_check_dist_one_mmx
+
+L_add_bits_to_dist_mmx:
+ psrlq mm0,mm1
+ movd mm1,eax
+ movd ecx,mm0
+ sub ebp,eax
+ and ecx, [inflate_fast_mask+eax*4]
+ add ebx,ecx
+
+L_check_window_mmx:
+ mov [esp+44],esi
+ mov eax,edi
+ sub eax, [esp+40]
+
+ cmp eax,ebx
+ jb L_clip_window_mmx
+
+ mov ecx,edx
+ mov esi,edi
+ sub esi,ebx
+
+ sub ecx,3
+ mov al, [esi]
+ mov [edi],al
+ mov al, [esi+1]
+ mov dl, [esi+2]
+ add esi,3
+ mov [edi+1],al
+ mov [edi+2],dl
+ add edi,3
+ rep movsb
+
+ mov esi, [esp+44]
+ mov ebx, [esp+8]
+ jmp L_while_test_mmx
+
+ALIGN 4
+L_check_dist_one_mmx:
+ cmp ebx,1
+ jne L_check_window_mmx
+ cmp [esp+40],edi
+ je L_check_window_mmx
+
+ dec edi
+ mov ecx,edx
+ mov al, [edi]
+ sub ecx,3
+
+ mov [edi+1],al
+ mov [edi+2],al
+ mov [edi+3],al
+ add edi,4
+ rep stosb
+
+ mov ebx, [esp+8]
+ jmp L_while_test_mmx
+
+ALIGN 4
+L_test_for_second_level_length_mmx:
+ test al,64
+ jnz L_test_for_end_of_block
+
+ and eax,15
+ psrlq mm0,mm1
+ movd ecx,mm0
+ and ecx, [inflate_fast_mask+eax*4]
+ add ecx,edx
+ mov eax, [ebx+ecx*4]
+ jmp L_dolen_mmx
+
+ALIGN 4
+L_test_for_second_level_dist_mmx:
+ test al,64
+ jnz L_invalid_distance_code
+
+ and eax,15
+ psrlq mm0,mm1
+ movd ecx,mm0
+ and ecx, [inflate_fast_mask+eax*4]
+ mov eax, [esp+12]
+ add ecx,ebx
+ mov eax, [eax+ecx*4]
+ jmp L_dodist_mmx
+
+ALIGN 4
+L_clip_window_mmx:
+
+ mov ecx,eax
+ mov eax, [esp+52]
+ neg ecx
+ mov esi, [esp+56]
+
+ cmp eax,ebx
+ jb L_invalid_distance_too_far
+
+ add ecx,ebx
+ cmp dword ptr [esp+48],0
+ jne L_wrap_around_window_mmx
+
+ sub eax,ecx
+ add esi,eax
+
+ cmp edx,ecx
+ jbe L_do_copy1_mmx
+
+ sub edx,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,ebx
+ jmp L_do_copy1_mmx
+
+ cmp edx,ecx
+ jbe L_do_copy1_mmx
+
+ sub edx,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,ebx
+ jmp L_do_copy1_mmx
+
+L_wrap_around_window_mmx:
+
+ mov eax, [esp+48]
+ cmp ecx,eax
+ jbe L_contiguous_in_window_mmx
+
+ add esi, [esp+52]
+ add esi,eax
+ sub esi,ecx
+ sub ecx,eax
+
+
+ cmp edx,ecx
+ jbe L_do_copy1_mmx
+
+ sub edx,ecx
+ rep movsb
+ mov esi, [esp+56]
+ mov ecx, [esp+48]
+ cmp edx,ecx
+ jbe L_do_copy1_mmx
+
+ sub edx,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,ebx
+ jmp L_do_copy1_mmx
+
+L_contiguous_in_window_mmx:
+
+ add esi,eax
+ sub esi,ecx
+
+
+ cmp edx,ecx
+ jbe L_do_copy1_mmx
+
+ sub edx,ecx
+ rep movsb
+ mov esi,edi
+ sub esi,ebx
+
+L_do_copy1_mmx:
+
+
+ mov ecx,edx
+ rep movsb
+
+ mov esi, [esp+44]
+ mov ebx, [esp+8]
+ jmp L_while_test_mmx
+; 1174 "inffast.S"
+L_invalid_distance_code:
+
+
+
+
+
+ mov ecx, invalid_distance_code_msg
+ mov edx,INFLATE_MODE_BAD
+ jmp L_update_stream_state
+
+L_test_for_end_of_block:
+
+
+
+
+
+ test al,32
+ jz L_invalid_literal_length_code
+
+ mov ecx,0
+ mov edx,INFLATE_MODE_TYPE
+ jmp L_update_stream_state
+
+L_invalid_literal_length_code:
+
+
+
+
+
+ mov ecx, invalid_literal_length_code_msg
+ mov edx,INFLATE_MODE_BAD
+ jmp L_update_stream_state
+
+L_invalid_distance_too_far:
+
+
+
+ mov esi, [esp+44]
+ mov ecx, invalid_distance_too_far_msg
+ mov edx,INFLATE_MODE_BAD
+ jmp L_update_stream_state
+
+L_update_stream_state:
+
+ mov eax, [esp+88]
+ test ecx,ecx
+ jz L_skip_msg
+ mov [eax+24],ecx
+L_skip_msg:
+ mov eax, [eax+28]
+ mov [eax+mode_state],edx
+ jmp L_break_loop
+
+ALIGN 4
+L_break_loop:
+; 1243 "inffast.S"
+ cmp dword ptr [inflate_fast_use_mmx],2
+ jne L_update_next_in
+
+
+
+ mov ebx,ebp
+
+L_update_next_in:
+; 1266 "inffast.S"
+ mov eax, [esp+88]
+ mov ecx,ebx
+ mov edx, [eax+28]
+ shr ecx,3
+ sub esi,ecx
+ shl ecx,3
+ sub ebx,ecx
+ mov [eax+12],edi
+ mov [edx+bits_state],ebx
+ mov ecx,ebx
+
+ lea ebx, [esp+28]
+ cmp [esp+20],ebx
+ jne L_buf_not_used
+
+ sub esi,ebx
+ mov ebx, [eax+0]
+ mov [esp+20],ebx
+ add esi,ebx
+ mov ebx, [eax+4]
+ sub ebx,11
+ add [esp+20],ebx
+
+L_buf_not_used:
+ mov [eax+0],esi
+
+ mov ebx,1
+ shl ebx,cl
+ dec ebx
+
+
+
+
+
+ cmp dword ptr [inflate_fast_use_mmx],2
+ jne L_update_hold
+
+
+
+ psrlq mm0,mm1
+ movd ebp,mm0
+
+ emms
+
+L_update_hold:
+
+
+
+ and ebp,ebx
+ mov [edx+hold_state],ebp
+
+
+
+
+ mov ebx, [esp+20]
+ cmp ebx,esi
+ jbe L_last_is_smaller
+
+ sub ebx,esi
+ add ebx,11
+ mov [eax+4],ebx
+ jmp L_fixup_out
+L_last_is_smaller:
+ sub esi,ebx
+ neg esi
+ add esi,11
+ mov [eax+4],esi
+
+
+
+
+L_fixup_out:
+
+ mov ebx, [esp+16]
+ cmp ebx,edi
+ jbe L_end_is_smaller
+
+ sub ebx,edi
+ add ebx,257
+ mov [eax+16],ebx
+ jmp L_done
+L_end_is_smaller:
+ sub edi,ebx
+ neg edi
+ add edi,257
+ mov [eax+16],edi
+
+
+
+
+
+L_done:
+ add esp,64
+ popfd
+ pop ebx
+ pop ebp
+ pop esi
+ pop edi
+ ret
+_inflate_fast endp
+
+_TEXT ends
+end
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/match686.asm b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/match686.asm
new file mode 100644
index 000000000..69e0eed01
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/match686.asm
@@ -0,0 +1,479 @@
+; match686.asm -- Asm portion of the optimized longest_match for 32 bits x86
+; Copyright (C) 1995-1996 Jean-loup Gailly, Brian Raiter and Gilles Vollant.
+; File written by Gilles Vollant, by converting match686.S from Brian Raiter
+; for MASM. This is as assembly version of longest_match
+; from Jean-loup Gailly in deflate.c
+;
+; http://www.zlib.net
+; http://www.winimage.com/zLibDll
+; http://www.muppetlabs.com/~breadbox/software/assembly.html
+;
+; For Visual C++ 4.x and higher and ML 6.x and higher
+; ml.exe is distributed in
+; http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
+;
+; this file contain two implementation of longest_match
+;
+; this longest_match was written by Brian raiter (1998), optimized for Pentium Pro
+; (and the faster known version of match_init on modern Core 2 Duo and AMD Phenom)
+;
+; for using an assembly version of longest_match, you need define ASMV in project
+;
+; compile the asm file running
+; ml /coff /Zi /c /Flmatch686.lst match686.asm
+; and do not include match686.obj in your project
+;
+; note: contrib of zLib 1.2.3 and earlier contained both a deprecated version for
+; Pentium (prior Pentium Pro) and this version for Pentium Pro and modern processor
+; with autoselect (with cpu detection code)
+; if you want support the old pentium optimization, you can still use these version
+;
+; this file is not optimized for old pentium, but it compatible with all x86 32 bits
+; processor (starting 80386)
+;
+;
+; see below : zlib1222add must be adjuster if you use a zlib version < 1.2.2.2
+
+;uInt longest_match(s, cur_match)
+; deflate_state *s;
+; IPos cur_match; /* current match */
+
+ NbStack equ 76
+ cur_match equ dword ptr[esp+NbStack-0]
+ str_s equ dword ptr[esp+NbStack-4]
+; 5 dword on top (ret,ebp,esi,edi,ebx)
+ adrret equ dword ptr[esp+NbStack-8]
+ pushebp equ dword ptr[esp+NbStack-12]
+ pushedi equ dword ptr[esp+NbStack-16]
+ pushesi equ dword ptr[esp+NbStack-20]
+ pushebx equ dword ptr[esp+NbStack-24]
+
+ chain_length equ dword ptr [esp+NbStack-28]
+ limit equ dword ptr [esp+NbStack-32]
+ best_len equ dword ptr [esp+NbStack-36]
+ window equ dword ptr [esp+NbStack-40]
+ prev equ dword ptr [esp+NbStack-44]
+ scan_start equ word ptr [esp+NbStack-48]
+ wmask equ dword ptr [esp+NbStack-52]
+ match_start_ptr equ dword ptr [esp+NbStack-56]
+ nice_match equ dword ptr [esp+NbStack-60]
+ scan equ dword ptr [esp+NbStack-64]
+
+ windowlen equ dword ptr [esp+NbStack-68]
+ match_start equ dword ptr [esp+NbStack-72]
+ strend equ dword ptr [esp+NbStack-76]
+ NbStackAdd equ (NbStack-24)
+
+ .386p
+
+ name gvmatch
+ .MODEL FLAT
+
+
+
+; all the +zlib1222add offsets are due to the addition of fields
+; in zlib in the deflate_state structure since the asm code was first written
+; (if you compile with zlib 1.0.4 or older, use "zlib1222add equ (-4)").
+; (if you compile with zlib between 1.0.5 and 1.2.2.1, use "zlib1222add equ 0").
+; if you compile with zlib 1.2.2.2 or later , use "zlib1222add equ 8").
+
+ zlib1222add equ 8
+
+; Note : these value are good with a 8 bytes boundary pack structure
+ dep_chain_length equ 74h+zlib1222add
+ dep_window equ 30h+zlib1222add
+ dep_strstart equ 64h+zlib1222add
+ dep_prev_length equ 70h+zlib1222add
+ dep_nice_match equ 88h+zlib1222add
+ dep_w_size equ 24h+zlib1222add
+ dep_prev equ 38h+zlib1222add
+ dep_w_mask equ 2ch+zlib1222add
+ dep_good_match equ 84h+zlib1222add
+ dep_match_start equ 68h+zlib1222add
+ dep_lookahead equ 6ch+zlib1222add
+
+
+_TEXT segment
+
+IFDEF NOUNDERLINE
+ public longest_match
+ public match_init
+ELSE
+ public _longest_match
+ public _match_init
+ENDIF
+
+ MAX_MATCH equ 258
+ MIN_MATCH equ 3
+ MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1)
+
+
+
+MAX_MATCH equ 258
+MIN_MATCH equ 3
+MIN_LOOKAHEAD equ (MAX_MATCH + MIN_MATCH + 1)
+MAX_MATCH_8_ equ ((MAX_MATCH + 7) AND 0FFF0h)
+
+
+;;; stack frame offsets
+
+chainlenwmask equ esp + 0 ; high word: current chain len
+ ; low word: s->wmask
+window equ esp + 4 ; local copy of s->window
+windowbestlen equ esp + 8 ; s->window + bestlen
+scanstart equ esp + 16 ; first two bytes of string
+scanend equ esp + 12 ; last two bytes of string
+scanalign equ esp + 20 ; dword-misalignment of string
+nicematch equ esp + 24 ; a good enough match size
+bestlen equ esp + 28 ; size of best match so far
+scan equ esp + 32 ; ptr to string wanting match
+
+LocalVarsSize equ 36
+; saved ebx byte esp + 36
+; saved edi byte esp + 40
+; saved esi byte esp + 44
+; saved ebp byte esp + 48
+; return address byte esp + 52
+deflatestate equ esp + 56 ; the function arguments
+curmatch equ esp + 60
+
+;;; Offsets for fields in the deflate_state structure. These numbers
+;;; are calculated from the definition of deflate_state, with the
+;;; assumption that the compiler will dword-align the fields. (Thus,
+;;; changing the definition of deflate_state could easily cause this
+;;; program to crash horribly, without so much as a warning at
+;;; compile time. Sigh.)
+
+dsWSize equ 36+zlib1222add
+dsWMask equ 44+zlib1222add
+dsWindow equ 48+zlib1222add
+dsPrev equ 56+zlib1222add
+dsMatchLen equ 88+zlib1222add
+dsPrevMatch equ 92+zlib1222add
+dsStrStart equ 100+zlib1222add
+dsMatchStart equ 104+zlib1222add
+dsLookahead equ 108+zlib1222add
+dsPrevLen equ 112+zlib1222add
+dsMaxChainLen equ 116+zlib1222add
+dsGoodMatch equ 132+zlib1222add
+dsNiceMatch equ 136+zlib1222add
+
+
+;;; match686.asm -- Pentium-Pro-optimized version of longest_match()
+;;; Written for zlib 1.1.2
+;;; Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
+;;; You can look at http://www.muppetlabs.com/~breadbox/software/assembly.html
+;;;
+;;
+;; This software is provided 'as-is', without any express or implied
+;; warranty. In no event will the authors be held liable for any damages
+;; arising from the use of this software.
+;;
+;; Permission is granted to anyone to use this software for any purpose,
+;; including commercial applications, and to alter it and redistribute it
+;; freely, subject to the following restrictions:
+;;
+;; 1. The origin of this software must not be misrepresented; you must not
+;; claim that you wrote the original software. If you use this software
+;; in a product, an acknowledgment in the product documentation would be
+;; appreciated but is not required.
+;; 2. Altered source versions must be plainly marked as such, and must not be
+;; misrepresented as being the original software
+;; 3. This notice may not be removed or altered from any source distribution.
+;;
+
+;GLOBAL _longest_match, _match_init
+
+
+;SECTION .text
+
+;;; uInt longest_match(deflate_state *deflatestate, IPos curmatch)
+
+;_longest_match:
+ IFDEF NOUNDERLINE
+ longest_match proc near
+ ELSE
+ _longest_match proc near
+ ENDIF
+.FPO (9, 4, 0, 0, 1, 0)
+
+;;; Save registers that the compiler may be using, and adjust esp to
+;;; make room for our stack frame.
+
+ push ebp
+ push edi
+ push esi
+ push ebx
+ sub esp, LocalVarsSize
+
+;;; Retrieve the function arguments. ecx will hold cur_match
+;;; throughout the entire function. edx will hold the pointer to the
+;;; deflate_state structure during the function's setup (before
+;;; entering the main loop.
+
+ mov edx, [deflatestate]
+ mov ecx, [curmatch]
+
+;;; uInt wmask = s->w_mask;
+;;; unsigned chain_length = s->max_chain_length;
+;;; if (s->prev_length >= s->good_match) {
+;;; chain_length >>= 2;
+;;; }
+
+ mov eax, [edx + dsPrevLen]
+ mov ebx, [edx + dsGoodMatch]
+ cmp eax, ebx
+ mov eax, [edx + dsWMask]
+ mov ebx, [edx + dsMaxChainLen]
+ jl LastMatchGood
+ shr ebx, 2
+LastMatchGood:
+
+;;; chainlen is decremented once beforehand so that the function can
+;;; use the sign flag instead of the zero flag for the exit test.
+;;; It is then shifted into the high word, to make room for the wmask
+;;; value, which it will always accompany.
+
+ dec ebx
+ shl ebx, 16
+ or ebx, eax
+ mov [chainlenwmask], ebx
+
+;;; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
+
+ mov eax, [edx + dsNiceMatch]
+ mov ebx, [edx + dsLookahead]
+ cmp ebx, eax
+ jl LookaheadLess
+ mov ebx, eax
+LookaheadLess: mov [nicematch], ebx
+
+;;; register Bytef *scan = s->window + s->strstart;
+
+ mov esi, [edx + dsWindow]
+ mov [window], esi
+ mov ebp, [edx + dsStrStart]
+ lea edi, [esi + ebp]
+ mov [scan], edi
+
+;;; Determine how many bytes the scan ptr is off from being
+;;; dword-aligned.
+
+ mov eax, edi
+ neg eax
+ and eax, 3
+ mov [scanalign], eax
+
+;;; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
+;;; s->strstart - (IPos)MAX_DIST(s) : NIL;
+
+ mov eax, [edx + dsWSize]
+ sub eax, MIN_LOOKAHEAD
+ sub ebp, eax
+ jg LimitPositive
+ xor ebp, ebp
+LimitPositive:
+
+;;; int best_len = s->prev_length;
+
+ mov eax, [edx + dsPrevLen]
+ mov [bestlen], eax
+
+;;; Store the sum of s->window + best_len in esi locally, and in esi.
+
+ add esi, eax
+ mov [windowbestlen], esi
+
+;;; register ush scan_start = *(ushf*)scan;
+;;; register ush scan_end = *(ushf*)(scan+best_len-1);
+;;; Posf *prev = s->prev;
+
+ movzx ebx, word ptr [edi]
+ mov [scanstart], ebx
+ movzx ebx, word ptr [edi + eax - 1]
+ mov [scanend], ebx
+ mov edi, [edx + dsPrev]
+
+;;; Jump into the main loop.
+
+ mov edx, [chainlenwmask]
+ jmp short LoopEntry
+
+align 4
+
+;;; do {
+;;; match = s->window + cur_match;
+;;; if (*(ushf*)(match+best_len-1) != scan_end ||
+;;; *(ushf*)match != scan_start) continue;
+;;; [...]
+;;; } while ((cur_match = prev[cur_match & wmask]) > limit
+;;; && --chain_length != 0);
+;;;
+;;; Here is the inner loop of the function. The function will spend the
+;;; majority of its time in this loop, and majority of that time will
+;;; be spent in the first ten instructions.
+;;;
+;;; Within this loop:
+;;; ebx = scanend
+;;; ecx = curmatch
+;;; edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
+;;; esi = windowbestlen - i.e., (window + bestlen)
+;;; edi = prev
+;;; ebp = limit
+
+LookupLoop:
+ and ecx, edx
+ movzx ecx, word ptr [edi + ecx*2]
+ cmp ecx, ebp
+ jbe LeaveNow
+ sub edx, 00010000h
+ js LeaveNow
+LoopEntry: movzx eax, word ptr [esi + ecx - 1]
+ cmp eax, ebx
+ jnz LookupLoop
+ mov eax, [window]
+ movzx eax, word ptr [eax + ecx]
+ cmp eax, [scanstart]
+ jnz LookupLoop
+
+;;; Store the current value of chainlen.
+
+ mov [chainlenwmask], edx
+
+;;; Point edi to the string under scrutiny, and esi to the string we
+;;; are hoping to match it up with. In actuality, esi and edi are
+;;; both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and edx is
+;;; initialized to -(MAX_MATCH_8 - scanalign).
+
+ mov esi, [window]
+ mov edi, [scan]
+ add esi, ecx
+ mov eax, [scanalign]
+ mov edx, 0fffffef8h; -(MAX_MATCH_8)
+ lea edi, [edi + eax + 0108h] ;MAX_MATCH_8]
+ lea esi, [esi + eax + 0108h] ;MAX_MATCH_8]
+
+;;; Test the strings for equality, 8 bytes at a time. At the end,
+;;; adjust edx so that it is offset to the exact byte that mismatched.
+;;;
+;;; We already know at this point that the first three bytes of the
+;;; strings match each other, and they can be safely passed over before
+;;; starting the compare loop. So what this code does is skip over 0-3
+;;; bytes, as much as necessary in order to dword-align the edi
+;;; pointer. (esi will still be misaligned three times out of four.)
+;;;
+;;; It should be confessed that this loop usually does not represent
+;;; much of the total running time. Replacing it with a more
+;;; straightforward "rep cmpsb" would not drastically degrade
+;;; performance.
+
+LoopCmps:
+ mov eax, [esi + edx]
+ xor eax, [edi + edx]
+ jnz LeaveLoopCmps
+ mov eax, [esi + edx + 4]
+ xor eax, [edi + edx + 4]
+ jnz LeaveLoopCmps4
+ add edx, 8
+ jnz LoopCmps
+ jmp short LenMaximum
+LeaveLoopCmps4: add edx, 4
+LeaveLoopCmps: test eax, 0000FFFFh
+ jnz LenLower
+ add edx, 2
+ shr eax, 16
+LenLower: sub al, 1
+ adc edx, 0
+
+;;; Calculate the length of the match. If it is longer than MAX_MATCH,
+;;; then automatically accept it as the best possible match and leave.
+
+ lea eax, [edi + edx]
+ mov edi, [scan]
+ sub eax, edi
+ cmp eax, MAX_MATCH
+ jge LenMaximum
+
+;;; If the length of the match is not longer than the best match we
+;;; have so far, then forget it and return to the lookup loop.
+
+ mov edx, [deflatestate]
+ mov ebx, [bestlen]
+ cmp eax, ebx
+ jg LongerMatch
+ mov esi, [windowbestlen]
+ mov edi, [edx + dsPrev]
+ mov ebx, [scanend]
+ mov edx, [chainlenwmask]
+ jmp LookupLoop
+
+;;; s->match_start = cur_match;
+;;; best_len = len;
+;;; if (len >= nice_match) break;
+;;; scan_end = *(ushf*)(scan+best_len-1);
+
+LongerMatch: mov ebx, [nicematch]
+ mov [bestlen], eax
+ mov [edx + dsMatchStart], ecx
+ cmp eax, ebx
+ jge LeaveNow
+ mov esi, [window]
+ add esi, eax
+ mov [windowbestlen], esi
+ movzx ebx, word ptr [edi + eax - 1]
+ mov edi, [edx + dsPrev]
+ mov [scanend], ebx
+ mov edx, [chainlenwmask]
+ jmp LookupLoop
+
+;;; Accept the current string, with the maximum possible length.
+
+LenMaximum: mov edx, [deflatestate]
+ mov dword ptr [bestlen], MAX_MATCH
+ mov [edx + dsMatchStart], ecx
+
+;;; if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
+;;; return s->lookahead;
+
+LeaveNow:
+ mov edx, [deflatestate]
+ mov ebx, [bestlen]
+ mov eax, [edx + dsLookahead]
+ cmp ebx, eax
+ jg LookaheadRet
+ mov eax, ebx
+LookaheadRet:
+
+;;; Restore the stack and return from whence we came.
+
+ add esp, LocalVarsSize
+ pop ebx
+ pop esi
+ pop edi
+ pop ebp
+
+ ret
+; please don't remove this string !
+; Your can freely use match686 in any free or commercial app if you don't remove the string in the binary!
+ db 0dh,0ah,"asm686 with masm, optimised assembly code from Brian Raiter, written 1998",0dh,0ah
+
+
+ IFDEF NOUNDERLINE
+ longest_match endp
+ ELSE
+ _longest_match endp
+ ENDIF
+
+ IFDEF NOUNDERLINE
+ match_init proc near
+ ret
+ match_init endp
+ ELSE
+ _match_init proc near
+ ret
+ _match_init endp
+ ENDIF
+
+
+_TEXT ends
+end
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/readme.txt
new file mode 100644
index 000000000..3f8888679
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/masmx86/readme.txt
@@ -0,0 +1,27 @@
+
+Summary
+-------
+This directory contains ASM implementations of the functions
+longest_match() and inflate_fast().
+
+
+Use instructions
+----------------
+Assemble using MASM, and copy the object files into the zlib source
+directory, then run the appropriate makefile, as suggested below. You can
+donwload MASM from here:
+
+ http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64
+
+You can also get objects files here:
+
+ http://www.winimage.com/zLibDll/zlib124_masm_obj.zip
+
+Build instructions
+------------------
+* With Microsoft C and MASM:
+nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj"
+
+* With Borland C and TASM:
+make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="match686.obj inffas32.obj" OBJPA="+match686c.obj+match686.obj+inffas32.obj"
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile
new file mode 100644
index 000000000..84eaad20d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile
@@ -0,0 +1,25 @@
+CC=cc
+CFLAGS=-O -I../..
+
+UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a
+ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a
+
+.c.o:
+ $(CC) -c $(CFLAGS) $*.c
+
+all: miniunz minizip
+
+miniunz: $(UNZ_OBJS)
+ $(CC) $(CFLAGS) -o $@ $(UNZ_OBJS)
+
+minizip: $(ZIP_OBJS)
+ $(CC) $(CFLAGS) -o $@ $(ZIP_OBJS)
+
+test: miniunz minizip
+ ./minizip test readme.txt
+ ./miniunz -l test.zip
+ mv readme.txt readme.old
+ ./miniunz test.zip
+
+clean:
+ /bin/rm -f *.o *~ minizip miniunz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile.am b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile.am
new file mode 100644
index 000000000..d343011eb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/Makefile.am
@@ -0,0 +1,45 @@
+lib_LTLIBRARIES = libminizip.la
+
+if COND_DEMOS
+bin_PROGRAMS = miniunzip minizip
+endif
+
+zlib_top_srcdir = $(top_srcdir)/../..
+zlib_top_builddir = $(top_builddir)/../..
+
+AM_CPPFLAGS = -I$(zlib_top_srcdir)
+AM_LDFLAGS = -L$(zlib_top_builddir)
+
+if WIN32
+iowin32_src = iowin32.c
+iowin32_h = iowin32.h
+endif
+
+libminizip_la_SOURCES = \
+ ioapi.c \
+ mztools.c \
+ unzip.c \
+ zip.c \
+ ${iowin32_src}
+
+libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz
+
+minizip_includedir = $(includedir)/minizip
+minizip_include_HEADERS = \
+ crypt.h \
+ ioapi.h \
+ mztools.h \
+ unzip.h \
+ zip.h \
+ ${iowin32_h}
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = minizip.pc
+
+EXTRA_PROGRAMS = miniunzip minizip
+
+miniunzip_SOURCES = miniunz.c
+miniunzip_LDADD = libminizip.la
+
+minizip_SOURCES = minizip.c
+minizip_LDADD = libminizip.la -lz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_Changes.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_Changes.txt
new file mode 100644
index 000000000..13a1bd91a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_Changes.txt
@@ -0,0 +1,6 @@
+
+MiniZip 1.1 was derrived from MiniZip at version 1.01f
+
+Change in 1.0 (Okt 2009)
+ - **TODO - Add history**
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_info.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_info.txt
new file mode 100644
index 000000000..57d715242
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/MiniZip64_info.txt
@@ -0,0 +1,74 @@
+MiniZip - Copyright (c) 1998-2010 - by Gilles Vollant - version 1.1 64 bits from Mathias Svensson
+
+Introduction
+---------------------
+MiniZip 1.1 is built from MiniZip 1.0 by Gilles Vollant ( http://www.winimage.com/zLibDll/minizip.html )
+
+When adding ZIP64 support into minizip it would result into risk of breaking compatibility with minizip 1.0.
+All possible work was done for compatibility.
+
+
+Background
+---------------------
+When adding ZIP64 support Mathias Svensson found that Even Rouault have added ZIP64
+support for unzip.c into minizip for a open source project called gdal ( http://www.gdal.org/ )
+
+That was used as a starting point. And after that ZIP64 support was added to zip.c
+some refactoring and code cleanup was also done.
+
+
+Changed from MiniZip 1.0 to MiniZip 1.1
+---------------------------------------
+* Added ZIP64 support for unzip ( by Even Rouault )
+* Added ZIP64 support for zip ( by Mathias Svensson )
+* Reverted some changed that Even Rouault did.
+* Bunch of patches received from Gulles Vollant that he received for MiniZip from various users.
+* Added unzip patch for BZIP Compression method (patch create by Daniel Borca)
+* Added BZIP Compress method for zip
+* Did some refactoring and code cleanup
+
+
+Credits
+
+ Gilles Vollant - Original MiniZip author
+ Even Rouault - ZIP64 unzip Support
+ Daniel Borca - BZip Compression method support in unzip
+ Mathias Svensson - ZIP64 zip support
+ Mathias Svensson - BZip Compression method support in zip
+
+ Resources
+
+ ZipLayout http://result42.com/projects/ZipFileLayout
+ Command line tool for Windows that shows the layout and information of the headers in a zip archive.
+ Used when debugging and validating the creation of zip files using MiniZip64
+
+
+ ZIP App Note http://www.pkware.com/documents/casestudies/APPNOTE.TXT
+ Zip File specification
+
+
+Notes.
+ * To be able to use BZip compression method in zip64.c or unzip64.c the BZIP2 lib is needed and HAVE_BZIP2 need to be defined.
+
+License
+----------------------------------------------------------
+ Condition of use and distribution are the same than zlib :
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+----------------------------------------------------------
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/configure.ac b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/configure.ac
new file mode 100644
index 000000000..5b1197097
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/configure.ac
@@ -0,0 +1,32 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_INIT([minizip], [1.2.11], [bugzilla.redhat.com])
+AC_CONFIG_SRCDIR([minizip.c])
+AM_INIT_AUTOMAKE([foreign])
+LT_INIT
+
+AC_MSG_CHECKING([whether to build example programs])
+AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs]))
+AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes])
+if test "$enable_demos" = yes
+then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+case "${host}" in
+ *-mingw* | mingw*)
+ WIN32="yes"
+ ;;
+ *)
+ ;;
+esac
+AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
+
+
+AC_SUBST([HAVE_UNISTD_H], [0])
+AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], [])
+AC_CONFIG_FILES([Makefile minizip.pc])
+AC_OUTPUT
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/crypt.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/crypt.h
new file mode 100644
index 000000000..1e9e8200b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/crypt.h
@@ -0,0 +1,131 @@
+/* crypt.h -- base code for crypt/uncrypt ZIPfile
+
+
+ Version 1.01e, February 12th, 2005
+
+ Copyright (C) 1998-2005 Gilles Vollant
+
+ This code is a modified version of crypting code in Infozip distribution
+
+ The encryption/decryption parts of this source code (as opposed to the
+ non-echoing password parts) were originally written in Europe. The
+ whole source package can be freely distributed, including from the USA.
+ (Prior to January 2000, re-export from the US was a violation of US law.)
+
+ This encryption code is a direct transcription of the algorithm from
+ Roger Schlafly, described by Phil Katz in the file appnote.txt. This
+ file (appnote.txt) is distributed with the PKZIP program (even in the
+ version without encryption capabilities).
+
+ If you don't need crypting in your application, just define symbols
+ NOCRYPT and NOUNCRYPT.
+
+ This code support the "Traditional PKWARE Encryption".
+
+ The new AES encryption added on Zip format by Winzip (see the page
+ http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
+ Encryption is not supported.
+*/
+
+#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
+
+/***********************************************************************
+ * Return the next byte in the pseudo-random sequence
+ */
+static int decrypt_byte(unsigned long* pkeys, const z_crc_t* pcrc_32_tab)
+{
+ unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
+ * unpredictable manner on 16-bit systems; not a problem
+ * with any known compiler so far, though */
+
+ temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
+ return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
+}
+
+/***********************************************************************
+ * Update the encryption keys with the next byte of plain text
+ */
+static int update_keys(unsigned long* pkeys,const z_crc_t* pcrc_32_tab,int c)
+{
+ (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
+ (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
+ (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
+ {
+ register int keyshift = (int)((*(pkeys+1)) >> 24);
+ (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
+ }
+ return c;
+}
+
+
+/***********************************************************************
+ * Initialize the encryption keys and the random header according to
+ * the given password.
+ */
+static void init_keys(const char* passwd,unsigned long* pkeys,const z_crc_t* pcrc_32_tab)
+{
+ *(pkeys+0) = 305419896L;
+ *(pkeys+1) = 591751049L;
+ *(pkeys+2) = 878082192L;
+ while (*passwd != '\0') {
+ update_keys(pkeys,pcrc_32_tab,(int)*passwd);
+ passwd++;
+ }
+}
+
+#define zdecode(pkeys,pcrc_32_tab,c) \
+ (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
+
+#define zencode(pkeys,pcrc_32_tab,c,t) \
+ (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
+
+#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
+
+#define RAND_HEAD_LEN 12
+ /* "last resort" source for second part of crypt seed pattern */
+# ifndef ZCR_SEED2
+# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
+# endif
+
+static int crypthead(const char* passwd, /* password string */
+ unsigned char* buf, /* where to write header */
+ int bufSize,
+ unsigned long* pkeys,
+ const z_crc_t* pcrc_32_tab,
+ unsigned long crcForCrypting)
+{
+ int n; /* index in random header */
+ int t; /* temporary */
+ int c; /* random byte */
+ unsigned char header[RAND_HEAD_LEN-2]; /* random header */
+ static unsigned calls = 0; /* ensure different random header each time */
+
+ if (bufSize<RAND_HEAD_LEN)
+ return 0;
+
+ /* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
+ * output of rand() to get less predictability, since rand() is
+ * often poorly implemented.
+ */
+ if (++calls == 1)
+ {
+ srand((unsigned)(time(NULL) ^ ZCR_SEED2));
+ }
+ init_keys(passwd, pkeys, pcrc_32_tab);
+ for (n = 0; n < RAND_HEAD_LEN-2; n++)
+ {
+ c = (rand() >> 7) & 0xff;
+ header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
+ }
+ /* Encrypt random header (last two bytes is high word of crc) */
+ init_keys(passwd, pkeys, pcrc_32_tab);
+ for (n = 0; n < RAND_HEAD_LEN-2; n++)
+ {
+ buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
+ }
+ buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
+ buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
+ return n;
+}
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.c
new file mode 100644
index 000000000..7f5c191b2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.c
@@ -0,0 +1,247 @@
+/* ioapi.h -- IO base function header for compress/uncompress .zip
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+*/
+
+#if defined(_WIN32) && (!(defined(_CRT_SECURE_NO_WARNINGS)))
+ #define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#if defined(__APPLE__) || defined(IOAPI_NO_64)
+// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
+#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
+#define FTELLO_FUNC(stream) ftello(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
+#else
+#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
+#define FTELLO_FUNC(stream) ftello64(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
+#endif
+
+
+#include "ioapi.h"
+
+voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
+{
+ if (pfilefunc->zfile_func64.zopen64_file != NULL)
+ return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode);
+ else
+ {
+ return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode);
+ }
+}
+
+long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin)
+{
+ if (pfilefunc->zfile_func64.zseek64_file != NULL)
+ return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin);
+ else
+ {
+ uLong offsetTruncated = (uLong)offset;
+ if (offsetTruncated != offset)
+ return -1;
+ else
+ return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin);
+ }
+}
+
+ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream)
+{
+ if (pfilefunc->zfile_func64.zseek64_file != NULL)
+ return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream);
+ else
+ {
+ uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
+ if ((tell_uLong) == MAXU32)
+ return (ZPOS64_T)-1;
+ else
+ return tell_uLong;
+ }
+}
+
+void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32)
+{
+ p_filefunc64_32->zfile_func64.zopen64_file = NULL;
+ p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file;
+ p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;
+ p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file;
+ p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file;
+ p_filefunc64_32->zfile_func64.ztell64_file = NULL;
+ p_filefunc64_32->zfile_func64.zseek64_file = NULL;
+ p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file;
+ p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;
+ p_filefunc64_32->zfile_func64.opaque = p_filefunc32->opaque;
+ p_filefunc64_32->zseek32_file = p_filefunc32->zseek_file;
+ p_filefunc64_32->ztell32_file = p_filefunc32->ztell_file;
+}
+
+
+
+static voidpf ZCALLBACK fopen_file_func OF((voidpf opaque, const char* filename, int mode));
+static uLong ZCALLBACK fread_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size));
+static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size));
+static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream));
+static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
+static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream));
+static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream));
+
+static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, int mode)
+{
+ FILE* file = NULL;
+ const char* mode_fopen = NULL;
+ if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
+ mode_fopen = "rb";
+ else
+ if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
+ mode_fopen = "r+b";
+ else
+ if (mode & ZLIB_FILEFUNC_MODE_CREATE)
+ mode_fopen = "wb";
+
+ if ((filename!=NULL) && (mode_fopen != NULL))
+ file = fopen(filename, mode_fopen);
+ return file;
+}
+
+static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename, int mode)
+{
+ FILE* file = NULL;
+ const char* mode_fopen = NULL;
+ if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
+ mode_fopen = "rb";
+ else
+ if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
+ mode_fopen = "r+b";
+ else
+ if (mode & ZLIB_FILEFUNC_MODE_CREATE)
+ mode_fopen = "wb";
+
+ if ((filename!=NULL) && (mode_fopen != NULL))
+ file = FOPEN_FUNC((const char*)filename, mode_fopen);
+ return file;
+}
+
+
+static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size)
+{
+ uLong ret;
+ ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
+ return ret;
+}
+
+static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const void* buf, uLong size)
+{
+ uLong ret;
+ ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
+ return ret;
+}
+
+static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
+{
+ long ret;
+ ret = ftell((FILE *)stream);
+ return ret;
+}
+
+
+static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
+{
+ ZPOS64_T ret;
+ ret = FTELLO_FUNC((FILE *)stream);
+ return ret;
+}
+
+static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offset, int origin)
+{
+ int fseek_origin=0;
+ long ret;
+ switch (origin)
+ {
+ case ZLIB_FILEFUNC_SEEK_CUR :
+ fseek_origin = SEEK_CUR;
+ break;
+ case ZLIB_FILEFUNC_SEEK_END :
+ fseek_origin = SEEK_END;
+ break;
+ case ZLIB_FILEFUNC_SEEK_SET :
+ fseek_origin = SEEK_SET;
+ break;
+ default: return -1;
+ }
+ ret = 0;
+ if (fseek((FILE *)stream, offset, fseek_origin) != 0)
+ ret = -1;
+ return ret;
+}
+
+static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)
+{
+ int fseek_origin=0;
+ long ret;
+ switch (origin)
+ {
+ case ZLIB_FILEFUNC_SEEK_CUR :
+ fseek_origin = SEEK_CUR;
+ break;
+ case ZLIB_FILEFUNC_SEEK_END :
+ fseek_origin = SEEK_END;
+ break;
+ case ZLIB_FILEFUNC_SEEK_SET :
+ fseek_origin = SEEK_SET;
+ break;
+ default: return -1;
+ }
+ ret = 0;
+
+ if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0)
+ ret = -1;
+
+ return ret;
+}
+
+
+static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream)
+{
+ int ret;
+ ret = fclose((FILE *)stream);
+ return ret;
+}
+
+static int ZCALLBACK ferror_file_func (voidpf opaque, voidpf stream)
+{
+ int ret;
+ ret = ferror((FILE *)stream);
+ return ret;
+}
+
+void fill_fopen_filefunc (pzlib_filefunc_def)
+ zlib_filefunc_def* pzlib_filefunc_def;
+{
+ pzlib_filefunc_def->zopen_file = fopen_file_func;
+ pzlib_filefunc_def->zread_file = fread_file_func;
+ pzlib_filefunc_def->zwrite_file = fwrite_file_func;
+ pzlib_filefunc_def->ztell_file = ftell_file_func;
+ pzlib_filefunc_def->zseek_file = fseek_file_func;
+ pzlib_filefunc_def->zclose_file = fclose_file_func;
+ pzlib_filefunc_def->zerror_file = ferror_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
+
+void fill_fopen64_filefunc (zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen64_file = fopen64_file_func;
+ pzlib_filefunc_def->zread_file = fread_file_func;
+ pzlib_filefunc_def->zwrite_file = fwrite_file_func;
+ pzlib_filefunc_def->ztell64_file = ftell64_file_func;
+ pzlib_filefunc_def->zseek64_file = fseek64_file_func;
+ pzlib_filefunc_def->zclose_file = fclose_file_func;
+ pzlib_filefunc_def->zerror_file = ferror_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.h
new file mode 100644
index 000000000..8dcbdb06e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/ioapi.h
@@ -0,0 +1,208 @@
+/* ioapi.h -- IO base function header for compress/uncompress .zip
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+ Changes
+
+ Oct-2009 - Defined ZPOS64_T to fpos_t on windows and u_int64_t on linux. (might need to find a better why for this)
+ Oct-2009 - Change to fseeko64, ftello64 and fopen64 so large files would work on linux.
+ More if/def section may be needed to support other platforms
+ Oct-2009 - Defined fxxxx64 calls to normal fopen/ftell/fseek so they would compile on windows.
+ (but you should use iowin32.c for windows instead)
+
+*/
+
+#ifndef _ZLIBIOAPI64_H
+#define _ZLIBIOAPI64_H
+
+#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
+
+ // Linux needs this to support file operation on files larger then 4+GB
+ // But might need better if/def to select just the platforms that needs them.
+
+ #ifndef __USE_FILE_OFFSET64
+ #define __USE_FILE_OFFSET64
+ #endif
+ #ifndef __USE_LARGEFILE64
+ #define __USE_LARGEFILE64
+ #endif
+ #ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
+ #endif
+ #ifndef _FILE_OFFSET_BIT
+ #define _FILE_OFFSET_BIT 64
+ #endif
+
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "zlib.h"
+
+#if defined(USE_FILE32API)
+#define fopen64 fopen
+#define ftello64 ftell
+#define fseeko64 fseek
+#else
+#ifdef __FreeBSD__
+#define fopen64 fopen
+#define ftello64 ftello
+#define fseeko64 fseeko
+#endif
+#ifdef _MSC_VER
+ #define fopen64 fopen
+ #if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
+ #define ftello64 _ftelli64
+ #define fseeko64 _fseeki64
+ #else // old MSC
+ #define ftello64 ftell
+ #define fseeko64 fseek
+ #endif
+#endif
+#endif
+
+/*
+#ifndef ZPOS64_T
+ #ifdef _WIN32
+ #define ZPOS64_T fpos_t
+ #else
+ #include <stdint.h>
+ #define ZPOS64_T uint64_t
+ #endif
+#endif
+*/
+
+#ifdef HAVE_MINIZIP64_CONF_H
+#include "mz64conf.h"
+#endif
+
+/* a type choosen by DEFINE */
+#ifdef HAVE_64BIT_INT_CUSTOM
+typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
+#else
+#ifdef HAS_STDINT_H
+#include "stdint.h"
+typedef uint64_t ZPOS64_T;
+#else
+
+/* Maximum unsigned 32-bit value used as placeholder for zip64 */
+#define MAXU32 0xffffffff
+
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+typedef unsigned __int64 ZPOS64_T;
+#else
+typedef unsigned long long int ZPOS64_T;
+#endif
+#endif
+#endif
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define ZLIB_FILEFUNC_SEEK_CUR (1)
+#define ZLIB_FILEFUNC_SEEK_END (2)
+#define ZLIB_FILEFUNC_SEEK_SET (0)
+
+#define ZLIB_FILEFUNC_MODE_READ (1)
+#define ZLIB_FILEFUNC_MODE_WRITE (2)
+#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
+
+#define ZLIB_FILEFUNC_MODE_EXISTING (4)
+#define ZLIB_FILEFUNC_MODE_CREATE (8)
+
+
+#ifndef ZCALLBACK
+ #if (defined(WIN32) || defined(_WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
+ #define ZCALLBACK CALLBACK
+ #else
+ #define ZCALLBACK
+ #endif
+#endif
+
+
+
+
+typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
+typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
+typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
+typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
+typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
+
+typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
+typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
+
+
+/* here is the "old" 32 bits structure structure */
+typedef struct zlib_filefunc_def_s
+{
+ open_file_func zopen_file;
+ read_file_func zread_file;
+ write_file_func zwrite_file;
+ tell_file_func ztell_file;
+ seek_file_func zseek_file;
+ close_file_func zclose_file;
+ testerror_file_func zerror_file;
+ voidpf opaque;
+} zlib_filefunc_def;
+
+typedef ZPOS64_T (ZCALLBACK *tell64_file_func) OF((voidpf opaque, voidpf stream));
+typedef long (ZCALLBACK *seek64_file_func) OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
+typedef voidpf (ZCALLBACK *open64_file_func) OF((voidpf opaque, const void* filename, int mode));
+
+typedef struct zlib_filefunc64_def_s
+{
+ open64_file_func zopen64_file;
+ read_file_func zread_file;
+ write_file_func zwrite_file;
+ tell64_file_func ztell64_file;
+ seek64_file_func zseek64_file;
+ close_file_func zclose_file;
+ testerror_file_func zerror_file;
+ voidpf opaque;
+} zlib_filefunc64_def;
+
+void fill_fopen64_filefunc OF((zlib_filefunc64_def* pzlib_filefunc_def));
+void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
+
+/* now internal definition, only for zip.c and unzip.h */
+typedef struct zlib_filefunc64_32_def_s
+{
+ zlib_filefunc64_def zfile_func64;
+ open_file_func zopen32_file;
+ tell_file_func ztell32_file;
+ seek_file_func zseek32_file;
+} zlib_filefunc64_32_def;
+
+
+#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
+#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
+//#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream))
+//#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode))
+#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream))
+#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream))
+
+voidpf call_zopen64 OF((const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode));
+long call_zseek64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin));
+ZPOS64_T call_ztell64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream));
+
+void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32);
+
+#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode)))
+#define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream)))
+#define ZSEEK64(filefunc,filestream,pos,mode) (call_zseek64((&(filefunc)),(filestream),(pos),(mode)))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.c
new file mode 100644
index 000000000..274f39eb1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.c
@@ -0,0 +1,462 @@
+/* iowin32.c -- IO base function header for compress/uncompress .zip
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+*/
+
+#include <stdlib.h>
+
+#include "zlib.h"
+#include "ioapi.h"
+#include "iowin32.h"
+
+#ifndef INVALID_HANDLE_VALUE
+#define INVALID_HANDLE_VALUE (0xFFFFFFFF)
+#endif
+
+#ifndef INVALID_SET_FILE_POINTER
+#define INVALID_SET_FILE_POINTER ((DWORD)-1)
+#endif
+
+
+// see Include/shared/winapifamily.h in the Windows Kit
+#if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
+#if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP)
+#define IOWIN32_USING_WINRT_API 1
+#endif
+#endif
+
+voidpf ZCALLBACK win32_open_file_func OF((voidpf opaque, const char* filename, int mode));
+uLong ZCALLBACK win32_read_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size));
+uLong ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
+ZPOS64_T ZCALLBACK win32_tell64_file_func OF((voidpf opaque, voidpf stream));
+long ZCALLBACK win32_seek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
+int ZCALLBACK win32_close_file_func OF((voidpf opaque, voidpf stream));
+int ZCALLBACK win32_error_file_func OF((voidpf opaque, voidpf stream));
+
+typedef struct
+{
+ HANDLE hf;
+ int error;
+} WIN32FILE_IOWIN;
+
+
+static void win32_translate_open_mode(int mode,
+ DWORD* lpdwDesiredAccess,
+ DWORD* lpdwCreationDisposition,
+ DWORD* lpdwShareMode,
+ DWORD* lpdwFlagsAndAttributes)
+{
+ *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0;
+
+ if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
+ {
+ *lpdwDesiredAccess = GENERIC_READ;
+ *lpdwCreationDisposition = OPEN_EXISTING;
+ *lpdwShareMode = FILE_SHARE_READ;
+ }
+ else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
+ {
+ *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
+ *lpdwCreationDisposition = OPEN_EXISTING;
+ }
+ else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
+ {
+ *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
+ *lpdwCreationDisposition = CREATE_ALWAYS;
+ }
+}
+
+static voidpf win32_build_iowin(HANDLE hFile)
+{
+ voidpf ret=NULL;
+
+ if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
+ {
+ WIN32FILE_IOWIN w32fiow;
+ w32fiow.hf = hFile;
+ w32fiow.error = 0;
+ ret = malloc(sizeof(WIN32FILE_IOWIN));
+
+ if (ret==NULL)
+ CloseHandle(hFile);
+ else
+ *((WIN32FILE_IOWIN*)ret) = w32fiow;
+ }
+ return ret;
+}
+
+voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int mode)
+{
+ const char* mode_fopen = NULL;
+ DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
+ HANDLE hFile = NULL;
+
+ win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
+
+#ifdef IOWIN32_USING_WINRT_API
+#ifdef UNICODE
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ {
+ WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
+ MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
+ hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
+ }
+#endif
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
+#endif
+
+ return win32_build_iowin(hFile);
+}
+
+
+voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int mode)
+{
+ const char* mode_fopen = NULL;
+ DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
+ HANDLE hFile = NULL;
+
+ win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
+
+#ifdef IOWIN32_USING_WINRT_API
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ {
+ WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
+ MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
+ hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
+ }
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
+#endif
+
+ return win32_build_iowin(hFile);
+}
+
+
+voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int mode)
+{
+ const char* mode_fopen = NULL;
+ DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
+ HANDLE hFile = NULL;
+
+ win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
+
+#ifdef IOWIN32_USING_WINRT_API
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFile2((LPCWSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition,NULL);
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
+#endif
+
+ return win32_build_iowin(hFile);
+}
+
+
+voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mode)
+{
+ const char* mode_fopen = NULL;
+ DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
+ HANDLE hFile = NULL;
+
+ win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
+
+#ifdef IOWIN32_USING_WINRT_API
+#ifdef UNICODE
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ {
+ WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
+ MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
+ hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
+ }
+#endif
+#else
+ if ((filename!=NULL) && (dwDesiredAccess != 0))
+ hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
+#endif
+
+ return win32_build_iowin(hFile);
+}
+
+
+uLong ZCALLBACK win32_read_file_func (voidpf opaque, voidpf stream, void* buf,uLong size)
+{
+ uLong ret=0;
+ HANDLE hFile = NULL;
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
+
+ if (hFile != NULL)
+ {
+ if (!ReadFile(hFile, buf, size, &ret, NULL))
+ {
+ DWORD dwErr = GetLastError();
+ if (dwErr == ERROR_HANDLE_EOF)
+ dwErr = 0;
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ }
+ }
+
+ return ret;
+}
+
+
+uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* buf,uLong size)
+{
+ uLong ret=0;
+ HANDLE hFile = NULL;
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
+
+ if (hFile != NULL)
+ {
+ if (!WriteFile(hFile, buf, size, &ret, NULL))
+ {
+ DWORD dwErr = GetLastError();
+ if (dwErr == ERROR_HANDLE_EOF)
+ dwErr = 0;
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ }
+ }
+
+ return ret;
+}
+
+static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos, DWORD dwMoveMethod)
+{
+#ifdef IOWIN32_USING_WINRT_API
+ return SetFilePointerEx(hFile, pos, newPos, dwMoveMethod);
+#else
+ LONG lHigh = pos.HighPart;
+ DWORD dwNewPos = SetFilePointer(hFile, pos.LowPart, &lHigh, dwMoveMethod);
+ BOOL fOk = TRUE;
+ if (dwNewPos == 0xFFFFFFFF)
+ if (GetLastError() != NO_ERROR)
+ fOk = FALSE;
+ if ((newPos != NULL) && (fOk))
+ {
+ newPos->LowPart = dwNewPos;
+ newPos->HighPart = lHigh;
+ }
+ return fOk;
+#endif
+}
+
+long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream)
+{
+ long ret=-1;
+ HANDLE hFile = NULL;
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
+ if (hFile != NULL)
+ {
+ LARGE_INTEGER pos;
+ pos.QuadPart = 0;
+
+ if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
+ {
+ DWORD dwErr = GetLastError();
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ ret = -1;
+ }
+ else
+ ret=(long)pos.LowPart;
+ }
+ return ret;
+}
+
+ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream)
+{
+ ZPOS64_T ret= (ZPOS64_T)-1;
+ HANDLE hFile = NULL;
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream)->hf;
+
+ if (hFile)
+ {
+ LARGE_INTEGER pos;
+ pos.QuadPart = 0;
+
+ if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
+ {
+ DWORD dwErr = GetLastError();
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ ret = (ZPOS64_T)-1;
+ }
+ else
+ ret=pos.QuadPart;
+ }
+ return ret;
+}
+
+
+long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,int origin)
+{
+ DWORD dwMoveMethod=0xFFFFFFFF;
+ HANDLE hFile = NULL;
+
+ long ret=-1;
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
+ switch (origin)
+ {
+ case ZLIB_FILEFUNC_SEEK_CUR :
+ dwMoveMethod = FILE_CURRENT;
+ break;
+ case ZLIB_FILEFUNC_SEEK_END :
+ dwMoveMethod = FILE_END;
+ break;
+ case ZLIB_FILEFUNC_SEEK_SET :
+ dwMoveMethod = FILE_BEGIN;
+ break;
+ default: return -1;
+ }
+
+ if (hFile != NULL)
+ {
+ LARGE_INTEGER pos;
+ pos.QuadPart = offset;
+ if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod))
+ {
+ DWORD dwErr = GetLastError();
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ ret = -1;
+ }
+ else
+ ret=0;
+ }
+ return ret;
+}
+
+long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T offset,int origin)
+{
+ DWORD dwMoveMethod=0xFFFFFFFF;
+ HANDLE hFile = NULL;
+ long ret=-1;
+
+ if (stream!=NULL)
+ hFile = ((WIN32FILE_IOWIN*)stream)->hf;
+
+ switch (origin)
+ {
+ case ZLIB_FILEFUNC_SEEK_CUR :
+ dwMoveMethod = FILE_CURRENT;
+ break;
+ case ZLIB_FILEFUNC_SEEK_END :
+ dwMoveMethod = FILE_END;
+ break;
+ case ZLIB_FILEFUNC_SEEK_SET :
+ dwMoveMethod = FILE_BEGIN;
+ break;
+ default: return -1;
+ }
+
+ if (hFile)
+ {
+ LARGE_INTEGER pos;
+ pos.QuadPart = offset;
+ if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod))
+ {
+ DWORD dwErr = GetLastError();
+ ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
+ ret = -1;
+ }
+ else
+ ret=0;
+ }
+ return ret;
+}
+
+int ZCALLBACK win32_close_file_func (voidpf opaque, voidpf stream)
+{
+ int ret=-1;
+
+ if (stream!=NULL)
+ {
+ HANDLE hFile;
+ hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
+ if (hFile != NULL)
+ {
+ CloseHandle(hFile);
+ ret=0;
+ }
+ free(stream);
+ }
+ return ret;
+}
+
+int ZCALLBACK win32_error_file_func (voidpf opaque,voidpf stream)
+{
+ int ret=-1;
+ if (stream!=NULL)
+ {
+ ret = ((WIN32FILE_IOWIN*)stream) -> error;
+ }
+ return ret;
+}
+
+void fill_win32_filefunc (zlib_filefunc_def* pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen_file = win32_open_file_func;
+ pzlib_filefunc_def->zread_file = win32_read_file_func;
+ pzlib_filefunc_def->zwrite_file = win32_write_file_func;
+ pzlib_filefunc_def->ztell_file = win32_tell_file_func;
+ pzlib_filefunc_def->zseek_file = win32_seek_file_func;
+ pzlib_filefunc_def->zclose_file = win32_close_file_func;
+ pzlib_filefunc_def->zerror_file = win32_error_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
+
+void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen64_file = win32_open64_file_func;
+ pzlib_filefunc_def->zread_file = win32_read_file_func;
+ pzlib_filefunc_def->zwrite_file = win32_write_file_func;
+ pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
+ pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
+ pzlib_filefunc_def->zclose_file = win32_close_file_func;
+ pzlib_filefunc_def->zerror_file = win32_error_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
+
+
+void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA;
+ pzlib_filefunc_def->zread_file = win32_read_file_func;
+ pzlib_filefunc_def->zwrite_file = win32_write_file_func;
+ pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
+ pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
+ pzlib_filefunc_def->zclose_file = win32_close_file_func;
+ pzlib_filefunc_def->zerror_file = win32_error_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
+
+
+void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW;
+ pzlib_filefunc_def->zread_file = win32_read_file_func;
+ pzlib_filefunc_def->zwrite_file = win32_write_file_func;
+ pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
+ pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
+ pzlib_filefunc_def->zclose_file = win32_close_file_func;
+ pzlib_filefunc_def->zerror_file = win32_error_file_func;
+ pzlib_filefunc_def->opaque = NULL;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.h
new file mode 100644
index 000000000..0ca0969a7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/iowin32.h
@@ -0,0 +1,28 @@
+/* iowin32.h -- IO base function header for compress/uncompress .zip
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+*/
+
+#include <windows.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void fill_win32_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
+void fill_win32_filefunc64 OF((zlib_filefunc64_def* pzlib_filefunc_def));
+void fill_win32_filefunc64A OF((zlib_filefunc64_def* pzlib_filefunc_def));
+void fill_win32_filefunc64W OF((zlib_filefunc64_def* pzlib_filefunc_def));
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/make_vms.com b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/make_vms.com
new file mode 100644
index 000000000..9ac13a98f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/make_vms.com
@@ -0,0 +1,25 @@
+$ if f$search("ioapi.h_orig") .eqs. "" then copy ioapi.h ioapi.h_orig
+$ open/write zdef vmsdefs.h
+$ copy sys$input: zdef
+$ deck
+#define unix
+#define fill_zlib_filefunc64_32_def_from_filefunc32 fillzffunc64from
+#define Write_Zip64EndOfCentralDirectoryLocator Write_Zip64EoDLocator
+#define Write_Zip64EndOfCentralDirectoryRecord Write_Zip64EoDRecord
+#define Write_EndOfCentralDirectoryRecord Write_EoDRecord
+$ eod
+$ close zdef
+$ copy vmsdefs.h,ioapi.h_orig ioapi.h
+$ cc/include=[--]/prefix=all ioapi.c
+$ cc/include=[--]/prefix=all miniunz.c
+$ cc/include=[--]/prefix=all unzip.c
+$ cc/include=[--]/prefix=all minizip.c
+$ cc/include=[--]/prefix=all zip.c
+$ link miniunz,unzip,ioapi,[--]libz.olb/lib
+$ link minizip,zip,ioapi,[--]libz.olb/lib
+$ mcr []minizip test minizip_info.txt
+$ mcr []miniunz -l test.zip
+$ rename minizip_info.txt; minizip_info.txt_old
+$ mcr []miniunz test.zip
+$ delete test.zip;*
+$exit
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunz.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunz.c
new file mode 100644
index 000000000..3d65401be
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunz.c
@@ -0,0 +1,660 @@
+/*
+ miniunz.c
+ Version 1.1, February 14h, 2010
+ sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications of Unzip for Zip64
+ Copyright (C) 2007-2008 Even Rouault
+
+ Modifications for Zip64 support on both zip and unzip
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+*/
+
+#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
+ #ifndef __USE_FILE_OFFSET64
+ #define __USE_FILE_OFFSET64
+ #endif
+ #ifndef __USE_LARGEFILE64
+ #define __USE_LARGEFILE64
+ #endif
+ #ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
+ #endif
+ #ifndef _FILE_OFFSET_BIT
+ #define _FILE_OFFSET_BIT 64
+ #endif
+#endif
+
+#ifdef __APPLE__
+// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
+#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
+#define FTELLO_FUNC(stream) ftello(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
+#else
+#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
+#define FTELLO_FUNC(stream) ftello64(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
+#endif
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <errno.h>
+#include <fcntl.h>
+
+#ifdef _WIN32
+# include <direct.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <utime.h>
+#endif
+
+
+#include "unzip.h"
+
+#define CASESENSITIVITY (0)
+#define WRITEBUFFERSIZE (8192)
+#define MAXFILENAME (256)
+
+#ifdef _WIN32
+#define USEWIN32IOAPI
+#include "iowin32.h"
+#endif
+/*
+ mini unzip, demo of unzip package
+
+ usage :
+ Usage : miniunz [-exvlo] file.zip [file_to_extract] [-d extractdir]
+
+ list the file in the zipfile, and print the content of FILE_ID.ZIP or README.TXT
+ if it exists
+*/
+
+
+/* change_file_date : change the date/time of a file
+ filename : the filename of the file where date/time must be modified
+ dosdate : the new date at the MSDos format (4 bytes)
+ tmu_date : the SAME new date at the tm_unz format */
+void change_file_date(filename,dosdate,tmu_date)
+ const char *filename;
+ uLong dosdate;
+ tm_unz tmu_date;
+{
+#ifdef _WIN32
+ HANDLE hFile;
+ FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite;
+
+ hFile = CreateFileA(filename,GENERIC_READ | GENERIC_WRITE,
+ 0,NULL,OPEN_EXISTING,0,NULL);
+ GetFileTime(hFile,&ftCreate,&ftLastAcc,&ftLastWrite);
+ DosDateTimeToFileTime((WORD)(dosdate>>16),(WORD)dosdate,&ftLocal);
+ LocalFileTimeToFileTime(&ftLocal,&ftm);
+ SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
+ CloseHandle(hFile);
+#else
+#ifdef unix || __APPLE__
+ struct utimbuf ut;
+ struct tm newdate;
+ newdate.tm_sec = tmu_date.tm_sec;
+ newdate.tm_min=tmu_date.tm_min;
+ newdate.tm_hour=tmu_date.tm_hour;
+ newdate.tm_mday=tmu_date.tm_mday;
+ newdate.tm_mon=tmu_date.tm_mon;
+ if (tmu_date.tm_year > 1900)
+ newdate.tm_year=tmu_date.tm_year - 1900;
+ else
+ newdate.tm_year=tmu_date.tm_year ;
+ newdate.tm_isdst=-1;
+
+ ut.actime=ut.modtime=mktime(&newdate);
+ utime(filename,&ut);
+#endif
+#endif
+}
+
+
+/* mymkdir and change_file_date are not 100 % portable
+ As I don't know well Unix, I wait feedback for the unix portion */
+
+int mymkdir(dirname)
+ const char* dirname;
+{
+ int ret=0;
+#ifdef _WIN32
+ ret = _mkdir(dirname);
+#elif unix
+ ret = mkdir (dirname,0775);
+#elif __APPLE__
+ ret = mkdir (dirname,0775);
+#endif
+ return ret;
+}
+
+int makedir (newdir)
+ char *newdir;
+{
+ char *buffer ;
+ char *p;
+ int len = (int)strlen(newdir);
+
+ if (len <= 0)
+ return 0;
+
+ buffer = (char*)malloc(len+1);
+ if (buffer==NULL)
+ {
+ printf("Error allocating memory\n");
+ return UNZ_INTERNALERROR;
+ }
+ strcpy(buffer,newdir);
+
+ if (buffer[len-1] == '/') {
+ buffer[len-1] = '\0';
+ }
+ if (mymkdir(buffer) == 0)
+ {
+ free(buffer);
+ return 1;
+ }
+
+ p = buffer+1;
+ while (1)
+ {
+ char hold;
+
+ while(*p && *p != '\\' && *p != '/')
+ p++;
+ hold = *p;
+ *p = 0;
+ if ((mymkdir(buffer) == -1) && (errno == ENOENT))
+ {
+ printf("couldn't create directory %s\n",buffer);
+ free(buffer);
+ return 0;
+ }
+ if (hold == 0)
+ break;
+ *p++ = hold;
+ }
+ free(buffer);
+ return 1;
+}
+
+void do_banner()
+{
+ printf("MiniUnz 1.01b, demo of zLib + Unz package written by Gilles Vollant\n");
+ printf("more info at http://www.winimage.com/zLibDll/unzip.html\n\n");
+}
+
+void do_help()
+{
+ printf("Usage : miniunz [-e] [-x] [-v] [-l] [-o] [-p password] file.zip [file_to_extr.] [-d extractdir]\n\n" \
+ " -e Extract without pathname (junk paths)\n" \
+ " -x Extract with pathname\n" \
+ " -v list files\n" \
+ " -l list files\n" \
+ " -d directory to extract into\n" \
+ " -o overwrite files without prompting\n" \
+ " -p extract crypted file using password\n\n");
+}
+
+void Display64BitsSize(ZPOS64_T n, int size_char)
+{
+ /* to avoid compatibility problem , we do here the conversion */
+ char number[21];
+ int offset=19;
+ int pos_string = 19;
+ number[20]=0;
+ for (;;) {
+ number[offset]=(char)((n%10)+'0');
+ if (number[offset] != '0')
+ pos_string=offset;
+ n/=10;
+ if (offset==0)
+ break;
+ offset--;
+ }
+ {
+ int size_display_string = 19-pos_string;
+ while (size_char > size_display_string)
+ {
+ size_char--;
+ printf(" ");
+ }
+ }
+
+ printf("%s",&number[pos_string]);
+}
+
+int do_list(uf)
+ unzFile uf;
+{
+ uLong i;
+ unz_global_info64 gi;
+ int err;
+
+ err = unzGetGlobalInfo64(uf,&gi);
+ if (err!=UNZ_OK)
+ printf("error %d with zipfile in unzGetGlobalInfo \n",err);
+ printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
+ printf(" ------ ------ ---- ----- ---- ---- ------ ----\n");
+ for (i=0;i<gi.number_entry;i++)
+ {
+ char filename_inzip[256];
+ unz_file_info64 file_info;
+ uLong ratio=0;
+ const char *string_method;
+ char charCrypt=' ';
+ err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
+ break;
+ }
+ if (file_info.uncompressed_size>0)
+ ratio = (uLong)((file_info.compressed_size*100)/file_info.uncompressed_size);
+
+ /* display a '*' if the file is crypted */
+ if ((file_info.flag & 1) != 0)
+ charCrypt='*';
+
+ if (file_info.compression_method==0)
+ string_method="Stored";
+ else
+ if (file_info.compression_method==Z_DEFLATED)
+ {
+ uInt iLevel=(uInt)((file_info.flag & 0x6)/2);
+ if (iLevel==0)
+ string_method="Defl:N";
+ else if (iLevel==1)
+ string_method="Defl:X";
+ else if ((iLevel==2) || (iLevel==3))
+ string_method="Defl:F"; /* 2:fast , 3 : extra fast*/
+ }
+ else
+ if (file_info.compression_method==Z_BZIP2ED)
+ {
+ string_method="BZip2 ";
+ }
+ else
+ string_method="Unkn. ";
+
+ Display64BitsSize(file_info.uncompressed_size,7);
+ printf(" %6s%c",string_method,charCrypt);
+ Display64BitsSize(file_info.compressed_size,7);
+ printf(" %3lu%% %2.2lu-%2.2lu-%2.2lu %2.2lu:%2.2lu %8.8lx %s\n",
+ ratio,
+ (uLong)file_info.tmu_date.tm_mon + 1,
+ (uLong)file_info.tmu_date.tm_mday,
+ (uLong)file_info.tmu_date.tm_year % 100,
+ (uLong)file_info.tmu_date.tm_hour,(uLong)file_info.tmu_date.tm_min,
+ (uLong)file_info.crc,filename_inzip);
+ if ((i+1)<gi.number_entry)
+ {
+ err = unzGoToNextFile(uf);
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzGoToNextFile\n",err);
+ break;
+ }
+ }
+ }
+
+ return 0;
+}
+
+
+int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite,password)
+ unzFile uf;
+ const int* popt_extract_without_path;
+ int* popt_overwrite;
+ const char* password;
+{
+ char filename_inzip[256];
+ char* filename_withoutpath;
+ char* p;
+ int err=UNZ_OK;
+ FILE *fout=NULL;
+ void* buf;
+ uInt size_buf;
+
+ unz_file_info64 file_info;
+ uLong ratio=0;
+ err = unzGetCurrentFileInfo64(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
+
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
+ return err;
+ }
+
+ size_buf = WRITEBUFFERSIZE;
+ buf = (void*)malloc(size_buf);
+ if (buf==NULL)
+ {
+ printf("Error allocating memory\n");
+ return UNZ_INTERNALERROR;
+ }
+
+ p = filename_withoutpath = filename_inzip;
+ while ((*p) != '\0')
+ {
+ if (((*p)=='/') || ((*p)=='\\'))
+ filename_withoutpath = p+1;
+ p++;
+ }
+
+ if ((*filename_withoutpath)=='\0')
+ {
+ if ((*popt_extract_without_path)==0)
+ {
+ printf("creating directory: %s\n",filename_inzip);
+ mymkdir(filename_inzip);
+ }
+ }
+ else
+ {
+ const char* write_filename;
+ int skip=0;
+
+ if ((*popt_extract_without_path)==0)
+ write_filename = filename_inzip;
+ else
+ write_filename = filename_withoutpath;
+
+ err = unzOpenCurrentFilePassword(uf,password);
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzOpenCurrentFilePassword\n",err);
+ }
+
+ if (((*popt_overwrite)==0) && (err==UNZ_OK))
+ {
+ char rep=0;
+ FILE* ftestexist;
+ ftestexist = FOPEN_FUNC(write_filename,"rb");
+ if (ftestexist!=NULL)
+ {
+ fclose(ftestexist);
+ do
+ {
+ char answer[128];
+ int ret;
+
+ printf("The file %s exists. Overwrite ? [y]es, [n]o, [A]ll: ",write_filename);
+ ret = scanf("%1s",answer);
+ if (ret != 1)
+ {
+ exit(EXIT_FAILURE);
+ }
+ rep = answer[0] ;
+ if ((rep>='a') && (rep<='z'))
+ rep -= 0x20;
+ }
+ while ((rep!='Y') && (rep!='N') && (rep!='A'));
+ }
+
+ if (rep == 'N')
+ skip = 1;
+
+ if (rep == 'A')
+ *popt_overwrite=1;
+ }
+
+ if ((skip==0) && (err==UNZ_OK))
+ {
+ fout=FOPEN_FUNC(write_filename,"wb");
+ /* some zipfile don't contain directory alone before file */
+ if ((fout==NULL) && ((*popt_extract_without_path)==0) &&
+ (filename_withoutpath!=(char*)filename_inzip))
+ {
+ char c=*(filename_withoutpath-1);
+ *(filename_withoutpath-1)='\0';
+ makedir(write_filename);
+ *(filename_withoutpath-1)=c;
+ fout=FOPEN_FUNC(write_filename,"wb");
+ }
+
+ if (fout==NULL)
+ {
+ printf("error opening %s\n",write_filename);
+ }
+ }
+
+ if (fout!=NULL)
+ {
+ printf(" extracting: %s\n",write_filename);
+
+ do
+ {
+ err = unzReadCurrentFile(uf,buf,size_buf);
+ if (err<0)
+ {
+ printf("error %d with zipfile in unzReadCurrentFile\n",err);
+ break;
+ }
+ if (err>0)
+ if (fwrite(buf,err,1,fout)!=1)
+ {
+ printf("error in writing extracted file\n");
+ err=UNZ_ERRNO;
+ break;
+ }
+ }
+ while (err>0);
+ if (fout)
+ fclose(fout);
+
+ if (err==0)
+ change_file_date(write_filename,file_info.dosDate,
+ file_info.tmu_date);
+ }
+
+ if (err==UNZ_OK)
+ {
+ err = unzCloseCurrentFile (uf);
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzCloseCurrentFile\n",err);
+ }
+ }
+ else
+ unzCloseCurrentFile(uf); /* don't lose the error */
+ }
+
+ free(buf);
+ return err;
+}
+
+
+int do_extract(uf,opt_extract_without_path,opt_overwrite,password)
+ unzFile uf;
+ int opt_extract_without_path;
+ int opt_overwrite;
+ const char* password;
+{
+ uLong i;
+ unz_global_info64 gi;
+ int err;
+ FILE* fout=NULL;
+
+ err = unzGetGlobalInfo64(uf,&gi);
+ if (err!=UNZ_OK)
+ printf("error %d with zipfile in unzGetGlobalInfo \n",err);
+
+ for (i=0;i<gi.number_entry;i++)
+ {
+ if (do_extract_currentfile(uf,&opt_extract_without_path,
+ &opt_overwrite,
+ password) != UNZ_OK)
+ break;
+
+ if ((i+1)<gi.number_entry)
+ {
+ err = unzGoToNextFile(uf);
+ if (err!=UNZ_OK)
+ {
+ printf("error %d with zipfile in unzGoToNextFile\n",err);
+ break;
+ }
+ }
+ }
+
+ return 0;
+}
+
+int do_extract_onefile(uf,filename,opt_extract_without_path,opt_overwrite,password)
+ unzFile uf;
+ const char* filename;
+ int opt_extract_without_path;
+ int opt_overwrite;
+ const char* password;
+{
+ int err = UNZ_OK;
+ if (unzLocateFile(uf,filename,CASESENSITIVITY)!=UNZ_OK)
+ {
+ printf("file %s not found in the zipfile\n",filename);
+ return 2;
+ }
+
+ if (do_extract_currentfile(uf,&opt_extract_without_path,
+ &opt_overwrite,
+ password) == UNZ_OK)
+ return 0;
+ else
+ return 1;
+}
+
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ const char *zipfilename=NULL;
+ const char *filename_to_extract=NULL;
+ const char *password=NULL;
+ char filename_try[MAXFILENAME+16] = "";
+ int i;
+ int ret_value=0;
+ int opt_do_list=0;
+ int opt_do_extract=1;
+ int opt_do_extract_withoutpath=0;
+ int opt_overwrite=0;
+ int opt_extractdir=0;
+ const char *dirname=NULL;
+ unzFile uf=NULL;
+
+ do_banner();
+ if (argc==1)
+ {
+ do_help();
+ return 0;
+ }
+ else
+ {
+ for (i=1;i<argc;i++)
+ {
+ if ((*argv[i])=='-')
+ {
+ const char *p=argv[i]+1;
+
+ while ((*p)!='\0')
+ {
+ char c=*(p++);;
+ if ((c=='l') || (c=='L'))
+ opt_do_list = 1;
+ if ((c=='v') || (c=='V'))
+ opt_do_list = 1;
+ if ((c=='x') || (c=='X'))
+ opt_do_extract = 1;
+ if ((c=='e') || (c=='E'))
+ opt_do_extract = opt_do_extract_withoutpath = 1;
+ if ((c=='o') || (c=='O'))
+ opt_overwrite=1;
+ if ((c=='d') || (c=='D'))
+ {
+ opt_extractdir=1;
+ dirname=argv[i+1];
+ }
+
+ if (((c=='p') || (c=='P')) && (i+1<argc))
+ {
+ password=argv[i+1];
+ i++;
+ }
+ }
+ }
+ else
+ {
+ if (zipfilename == NULL)
+ zipfilename = argv[i];
+ else if ((filename_to_extract==NULL) && (!opt_extractdir))
+ filename_to_extract = argv[i] ;
+ }
+ }
+ }
+
+ if (zipfilename!=NULL)
+ {
+
+# ifdef USEWIN32IOAPI
+ zlib_filefunc64_def ffunc;
+# endif
+
+ strncpy(filename_try, zipfilename,MAXFILENAME-1);
+ /* strncpy doesnt append the trailing NULL, of the string is too long. */
+ filename_try[ MAXFILENAME ] = '\0';
+
+# ifdef USEWIN32IOAPI
+ fill_win32_filefunc64A(&ffunc);
+ uf = unzOpen2_64(zipfilename,&ffunc);
+# else
+ uf = unzOpen64(zipfilename);
+# endif
+ if (uf==NULL)
+ {
+ strcat(filename_try,".zip");
+# ifdef USEWIN32IOAPI
+ uf = unzOpen2_64(filename_try,&ffunc);
+# else
+ uf = unzOpen64(filename_try);
+# endif
+ }
+ }
+
+ if (uf==NULL)
+ {
+ printf("Cannot open %s or %s.zip\n",zipfilename,zipfilename);
+ return 1;
+ }
+ printf("%s opened\n",filename_try);
+
+ if (opt_do_list==1)
+ ret_value = do_list(uf);
+ else if (opt_do_extract==1)
+ {
+#ifdef _WIN32
+ if (opt_extractdir && _chdir(dirname))
+#else
+ if (opt_extractdir && chdir(dirname))
+#endif
+ {
+ printf("Error changing into %s, aborting\n", dirname);
+ exit(-1);
+ }
+
+ if (filename_to_extract == NULL)
+ ret_value = do_extract(uf, opt_do_extract_withoutpath, opt_overwrite, password);
+ else
+ ret_value = do_extract_onefile(uf, filename_to_extract, opt_do_extract_withoutpath, opt_overwrite, password);
+ }
+
+ unzClose(uf);
+
+ return ret_value;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunzip.1 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunzip.1
new file mode 100644
index 000000000..111ac6919
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/miniunzip.1
@@ -0,0 +1,63 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH miniunzip 1 "Nov 7, 2001"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+miniunzip - uncompress and examine ZIP archives
+.SH SYNOPSIS
+.B miniunzip
+.RI [ -exvlo ]
+zipfile [ files_to_extract ] [-d tempdir]
+.SH DESCRIPTION
+.B minizip
+is a simple tool which allows the extraction of compressed file
+archives in the ZIP format used by the MS-DOS utility PKZIP. It was
+written as a demonstration of the
+.IR zlib (3)
+library and therefore lack many of the features of the
+.IR unzip (1)
+program.
+.SH OPTIONS
+A number of options are supported. With the exception of
+.BI \-d\ tempdir
+these must be supplied before any
+other arguments and are:
+.TP
+.BI \-l\ ,\ \-\-v
+List the files in the archive without extracting them.
+.TP
+.B \-o
+Overwrite files without prompting for confirmation.
+.TP
+.B \-x
+Extract files (default).
+.PP
+The
+.I zipfile
+argument is the name of the archive to process. The next argument can be used
+to specify a single file to extract from the archive.
+
+Lastly, the following option can be specified at the end of the command-line:
+.TP
+.BI \-d\ tempdir
+Extract the archive in the directory
+.I tempdir
+rather than the current directory.
+.SH SEE ALSO
+.BR minizip (1),
+.BR zlib (3),
+.BR unzip (1).
+.SH AUTHOR
+This program was written by Gilles Vollant. This manual page was
+written by Mark Brown <broonie@sirena.org.uk>. The -d tempdir option
+was added by Dirk Eddelbuettel <edd@debian.org>.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.1 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.1
new file mode 100644
index 000000000..1154484c1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.1
@@ -0,0 +1,46 @@
+.\" Hey, EMACS: -*- nroff -*-
+.TH minizip 1 "May 2, 2001"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+minizip - create ZIP archives
+.SH SYNOPSIS
+.B minizip
+.RI [ -o ]
+zipfile [ " files" ... ]
+.SH DESCRIPTION
+.B minizip
+is a simple tool which allows the creation of compressed file archives
+in the ZIP format used by the MS-DOS utility PKZIP. It was written as
+a demonstration of the
+.IR zlib (3)
+library and therefore lack many of the features of the
+.IR zip (1)
+program.
+.SH OPTIONS
+The first argument supplied is the name of the ZIP archive to create or
+.RI -o
+in which case it is ignored and the second argument treated as the
+name of the ZIP file. If the ZIP file already exists it will be
+overwritten.
+.PP
+Subsequent arguments specify a list of files to place in the ZIP
+archive. If none are specified then an empty archive will be created.
+.SH SEE ALSO
+.BR miniunzip (1),
+.BR zlib (3),
+.BR zip (1).
+.SH AUTHOR
+This program was written by Gilles Vollant. This manual page was
+written by Mark Brown <broonie@sirena.org.uk>.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.c
new file mode 100644
index 000000000..4288962ec
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.c
@@ -0,0 +1,520 @@
+/*
+ minizip.c
+ Version 1.1, February 14h, 2010
+ sample part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications of Unzip for Zip64
+ Copyright (C) 2007-2008 Even Rouault
+
+ Modifications for Zip64 support on both zip and unzip
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+*/
+
+
+#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
+ #ifndef __USE_FILE_OFFSET64
+ #define __USE_FILE_OFFSET64
+ #endif
+ #ifndef __USE_LARGEFILE64
+ #define __USE_LARGEFILE64
+ #endif
+ #ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
+ #endif
+ #ifndef _FILE_OFFSET_BIT
+ #define _FILE_OFFSET_BIT 64
+ #endif
+#endif
+
+#ifdef __APPLE__
+// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
+#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
+#define FTELLO_FUNC(stream) ftello(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
+#else
+#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
+#define FTELLO_FUNC(stream) ftello64(stream)
+#define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
+#endif
+
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <errno.h>
+#include <fcntl.h>
+
+#ifdef _WIN32
+# include <direct.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <utime.h>
+# include <sys/types.h>
+# include <sys/stat.h>
+#endif
+
+#include "zip.h"
+
+#ifdef _WIN32
+ #define USEWIN32IOAPI
+ #include "iowin32.h"
+#endif
+
+
+
+#define WRITEBUFFERSIZE (16384)
+#define MAXFILENAME (256)
+
+#ifdef _WIN32
+uLong filetime(f, tmzip, dt)
+ char *f; /* name of file to get info on */
+ tm_zip *tmzip; /* return value: access, modific. and creation times */
+ uLong *dt; /* dostime */
+{
+ int ret = 0;
+ {
+ FILETIME ftLocal;
+ HANDLE hFind;
+ WIN32_FIND_DATAA ff32;
+
+ hFind = FindFirstFileA(f,&ff32);
+ if (hFind != INVALID_HANDLE_VALUE)
+ {
+ FileTimeToLocalFileTime(&(ff32.ftLastWriteTime),&ftLocal);
+ FileTimeToDosDateTime(&ftLocal,((LPWORD)dt)+1,((LPWORD)dt)+0);
+ FindClose(hFind);
+ ret = 1;
+ }
+ }
+ return ret;
+}
+#else
+#ifdef unix || __APPLE__
+uLong filetime(f, tmzip, dt)
+ char *f; /* name of file to get info on */
+ tm_zip *tmzip; /* return value: access, modific. and creation times */
+ uLong *dt; /* dostime */
+{
+ int ret=0;
+ struct stat s; /* results of stat() */
+ struct tm* filedate;
+ time_t tm_t=0;
+
+ if (strcmp(f,"-")!=0)
+ {
+ char name[MAXFILENAME+1];
+ int len = strlen(f);
+ if (len > MAXFILENAME)
+ len = MAXFILENAME;
+
+ strncpy(name, f,MAXFILENAME-1);
+ /* strncpy doesnt append the trailing NULL, of the string is too long. */
+ name[ MAXFILENAME ] = '\0';
+
+ if (name[len - 1] == '/')
+ name[len - 1] = '\0';
+ /* not all systems allow stat'ing a file with / appended */
+ if (stat(name,&s)==0)
+ {
+ tm_t = s.st_mtime;
+ ret = 1;
+ }
+ }
+ filedate = localtime(&tm_t);
+
+ tmzip->tm_sec = filedate->tm_sec;
+ tmzip->tm_min = filedate->tm_min;
+ tmzip->tm_hour = filedate->tm_hour;
+ tmzip->tm_mday = filedate->tm_mday;
+ tmzip->tm_mon = filedate->tm_mon ;
+ tmzip->tm_year = filedate->tm_year;
+
+ return ret;
+}
+#else
+uLong filetime(f, tmzip, dt)
+ char *f; /* name of file to get info on */
+ tm_zip *tmzip; /* return value: access, modific. and creation times */
+ uLong *dt; /* dostime */
+{
+ return 0;
+}
+#endif
+#endif
+
+
+
+
+int check_exist_file(filename)
+ const char* filename;
+{
+ FILE* ftestexist;
+ int ret = 1;
+ ftestexist = FOPEN_FUNC(filename,"rb");
+ if (ftestexist==NULL)
+ ret = 0;
+ else
+ fclose(ftestexist);
+ return ret;
+}
+
+void do_banner()
+{
+ printf("MiniZip 1.1, demo of zLib + MiniZip64 package, written by Gilles Vollant\n");
+ printf("more info on MiniZip at http://www.winimage.com/zLibDll/minizip.html\n\n");
+}
+
+void do_help()
+{
+ printf("Usage : minizip [-o] [-a] [-0 to -9] [-p password] [-j] file.zip [files_to_add]\n\n" \
+ " -o Overwrite existing file.zip\n" \
+ " -a Append to existing file.zip\n" \
+ " -0 Store only\n" \
+ " -1 Compress faster\n" \
+ " -9 Compress better\n\n" \
+ " -j exclude path. store only the file name.\n\n");
+}
+
+/* calculate the CRC32 of a file,
+ because to encrypt a file, we need known the CRC32 of the file before */
+int getFileCrc(const char* filenameinzip,void*buf,unsigned long size_buf,unsigned long* result_crc)
+{
+ unsigned long calculate_crc=0;
+ int err=ZIP_OK;
+ FILE * fin = FOPEN_FUNC(filenameinzip,"rb");
+
+ unsigned long size_read = 0;
+ unsigned long total_read = 0;
+ if (fin==NULL)
+ {
+ err = ZIP_ERRNO;
+ }
+
+ if (err == ZIP_OK)
+ do
+ {
+ err = ZIP_OK;
+ size_read = (int)fread(buf,1,size_buf,fin);
+ if (size_read < size_buf)
+ if (feof(fin)==0)
+ {
+ printf("error in reading %s\n",filenameinzip);
+ err = ZIP_ERRNO;
+ }
+
+ if (size_read>0)
+ calculate_crc = crc32(calculate_crc,buf,size_read);
+ total_read += size_read;
+
+ } while ((err == ZIP_OK) && (size_read>0));
+
+ if (fin)
+ fclose(fin);
+
+ *result_crc=calculate_crc;
+ printf("file %s crc %lx\n", filenameinzip, calculate_crc);
+ return err;
+}
+
+int isLargeFile(const char* filename)
+{
+ int largeFile = 0;
+ ZPOS64_T pos = 0;
+ FILE* pFile = FOPEN_FUNC(filename, "rb");
+
+ if(pFile != NULL)
+ {
+ int n = FSEEKO_FUNC(pFile, 0, SEEK_END);
+ pos = FTELLO_FUNC(pFile);
+
+ printf("File : %s is %lld bytes\n", filename, pos);
+
+ if(pos >= 0xffffffff)
+ largeFile = 1;
+
+ fclose(pFile);
+ }
+
+ return largeFile;
+}
+
+int main(argc,argv)
+ int argc;
+ char *argv[];
+{
+ int i;
+ int opt_overwrite=0;
+ int opt_compress_level=Z_DEFAULT_COMPRESSION;
+ int opt_exclude_path=0;
+ int zipfilenamearg = 0;
+ char filename_try[MAXFILENAME+16];
+ int zipok;
+ int err=0;
+ int size_buf=0;
+ void* buf=NULL;
+ const char* password=NULL;
+
+
+ do_banner();
+ if (argc==1)
+ {
+ do_help();
+ return 0;
+ }
+ else
+ {
+ for (i=1;i<argc;i++)
+ {
+ if ((*argv[i])=='-')
+ {
+ const char *p=argv[i]+1;
+
+ while ((*p)!='\0')
+ {
+ char c=*(p++);;
+ if ((c=='o') || (c=='O'))
+ opt_overwrite = 1;
+ if ((c=='a') || (c=='A'))
+ opt_overwrite = 2;
+ if ((c>='0') && (c<='9'))
+ opt_compress_level = c-'0';
+ if ((c=='j') || (c=='J'))
+ opt_exclude_path = 1;
+
+ if (((c=='p') || (c=='P')) && (i+1<argc))
+ {
+ password=argv[i+1];
+ i++;
+ }
+ }
+ }
+ else
+ {
+ if (zipfilenamearg == 0)
+ {
+ zipfilenamearg = i ;
+ }
+ }
+ }
+ }
+
+ size_buf = WRITEBUFFERSIZE;
+ buf = (void*)malloc(size_buf);
+ if (buf==NULL)
+ {
+ printf("Error allocating memory\n");
+ return ZIP_INTERNALERROR;
+ }
+
+ if (zipfilenamearg==0)
+ {
+ zipok=0;
+ }
+ else
+ {
+ int i,len;
+ int dot_found=0;
+
+ zipok = 1 ;
+ strncpy(filename_try, argv[zipfilenamearg],MAXFILENAME-1);
+ /* strncpy doesnt append the trailing NULL, of the string is too long. */
+ filename_try[ MAXFILENAME ] = '\0';
+
+ len=(int)strlen(filename_try);
+ for (i=0;i<len;i++)
+ if (filename_try[i]=='.')
+ dot_found=1;
+
+ if (dot_found==0)
+ strcat(filename_try,".zip");
+
+ if (opt_overwrite==2)
+ {
+ /* if the file don't exist, we not append file */
+ if (check_exist_file(filename_try)==0)
+ opt_overwrite=1;
+ }
+ else
+ if (opt_overwrite==0)
+ if (check_exist_file(filename_try)!=0)
+ {
+ char rep=0;
+ do
+ {
+ char answer[128];
+ int ret;
+ printf("The file %s exists. Overwrite ? [y]es, [n]o, [a]ppend : ",filename_try);
+ ret = scanf("%1s",answer);
+ if (ret != 1)
+ {
+ exit(EXIT_FAILURE);
+ }
+ rep = answer[0] ;
+ if ((rep>='a') && (rep<='z'))
+ rep -= 0x20;
+ }
+ while ((rep!='Y') && (rep!='N') && (rep!='A'));
+ if (rep=='N')
+ zipok = 0;
+ if (rep=='A')
+ opt_overwrite = 2;
+ }
+ }
+
+ if (zipok==1)
+ {
+ zipFile zf;
+ int errclose;
+# ifdef USEWIN32IOAPI
+ zlib_filefunc64_def ffunc;
+ fill_win32_filefunc64A(&ffunc);
+ zf = zipOpen2_64(filename_try,(opt_overwrite==2) ? 2 : 0,NULL,&ffunc);
+# else
+ zf = zipOpen64(filename_try,(opt_overwrite==2) ? 2 : 0);
+# endif
+
+ if (zf == NULL)
+ {
+ printf("error opening %s\n",filename_try);
+ err= ZIP_ERRNO;
+ }
+ else
+ printf("creating %s\n",filename_try);
+
+ for (i=zipfilenamearg+1;(i<argc) && (err==ZIP_OK);i++)
+ {
+ if (!((((*(argv[i]))=='-') || ((*(argv[i]))=='/')) &&
+ ((argv[i][1]=='o') || (argv[i][1]=='O') ||
+ (argv[i][1]=='a') || (argv[i][1]=='A') ||
+ (argv[i][1]=='p') || (argv[i][1]=='P') ||
+ ((argv[i][1]>='0') || (argv[i][1]<='9'))) &&
+ (strlen(argv[i]) == 2)))
+ {
+ FILE * fin;
+ int size_read;
+ const char* filenameinzip = argv[i];
+ const char *savefilenameinzip;
+ zip_fileinfo zi;
+ unsigned long crcFile=0;
+ int zip64 = 0;
+
+ zi.tmz_date.tm_sec = zi.tmz_date.tm_min = zi.tmz_date.tm_hour =
+ zi.tmz_date.tm_mday = zi.tmz_date.tm_mon = zi.tmz_date.tm_year = 0;
+ zi.dosDate = 0;
+ zi.internal_fa = 0;
+ zi.external_fa = 0;
+ filetime(filenameinzip,&zi.tmz_date,&zi.dosDate);
+
+/*
+ err = zipOpenNewFileInZip(zf,filenameinzip,&zi,
+ NULL,0,NULL,0,NULL / * comment * /,
+ (opt_compress_level != 0) ? Z_DEFLATED : 0,
+ opt_compress_level);
+*/
+ if ((password != NULL) && (err==ZIP_OK))
+ err = getFileCrc(filenameinzip,buf,size_buf,&crcFile);
+
+ zip64 = isLargeFile(filenameinzip);
+
+ /* The path name saved, should not include a leading slash. */
+ /*if it did, windows/xp and dynazip couldn't read the zip file. */
+ savefilenameinzip = filenameinzip;
+ while( savefilenameinzip[0] == '\\' || savefilenameinzip[0] == '/' )
+ {
+ savefilenameinzip++;
+ }
+
+ /*should the zip file contain any path at all?*/
+ if( opt_exclude_path )
+ {
+ const char *tmpptr;
+ const char *lastslash = 0;
+ for( tmpptr = savefilenameinzip; *tmpptr; tmpptr++)
+ {
+ if( *tmpptr == '\\' || *tmpptr == '/')
+ {
+ lastslash = tmpptr;
+ }
+ }
+ if( lastslash != NULL )
+ {
+ savefilenameinzip = lastslash+1; // base filename follows last slash.
+ }
+ }
+
+ /**/
+ err = zipOpenNewFileInZip3_64(zf,savefilenameinzip,&zi,
+ NULL,0,NULL,0,NULL /* comment*/,
+ (opt_compress_level != 0) ? Z_DEFLATED : 0,
+ opt_compress_level,0,
+ /* -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, */
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
+ password,crcFile, zip64);
+
+ if (err != ZIP_OK)
+ printf("error in opening %s in zipfile\n",filenameinzip);
+ else
+ {
+ fin = FOPEN_FUNC(filenameinzip,"rb");
+ if (fin==NULL)
+ {
+ err=ZIP_ERRNO;
+ printf("error in opening %s for reading\n",filenameinzip);
+ }
+ }
+
+ if (err == ZIP_OK)
+ do
+ {
+ err = ZIP_OK;
+ size_read = (int)fread(buf,1,size_buf,fin);
+ if (size_read < size_buf)
+ if (feof(fin)==0)
+ {
+ printf("error in reading %s\n",filenameinzip);
+ err = ZIP_ERRNO;
+ }
+
+ if (size_read>0)
+ {
+ err = zipWriteInFileInZip (zf,buf,size_read);
+ if (err<0)
+ {
+ printf("error in writing %s in the zipfile\n",
+ filenameinzip);
+ }
+
+ }
+ } while ((err == ZIP_OK) && (size_read>0));
+
+ if (fin)
+ fclose(fin);
+
+ if (err<0)
+ err=ZIP_ERRNO;
+ else
+ {
+ err = zipCloseFileInZip(zf);
+ if (err!=ZIP_OK)
+ printf("error in closing %s in the zipfile\n",
+ filenameinzip);
+ }
+ }
+ }
+ errclose = zipClose(zf,NULL);
+ if (errclose != ZIP_OK)
+ printf("error in closing %s\n",filename_try);
+ }
+ else
+ {
+ do_help();
+ }
+
+ free(buf);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.pc.in b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.pc.in
new file mode 100644
index 000000000..69b5b7fdc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/minizip.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@/minizip
+
+Name: minizip
+Description: Minizip zip file manipulation library
+Requires:
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lminizip
+Libs.private: -lz
+Cflags: -I${includedir}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.c
new file mode 100644
index 000000000..96891c2e0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.c
@@ -0,0 +1,291 @@
+/*
+ Additional tools for Minizip
+ Code: Xavier Roche '2004
+ License: Same as ZLIB (www.gzip.org)
+*/
+
+/* Code */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "zlib.h"
+#include "unzip.h"
+
+#define READ_8(adr) ((unsigned char)*(adr))
+#define READ_16(adr) ( READ_8(adr) | (READ_8(adr+1) << 8) )
+#define READ_32(adr) ( READ_16(adr) | (READ_16((adr)+2) << 16) )
+
+#define WRITE_8(buff, n) do { \
+ *((unsigned char*)(buff)) = (unsigned char) ((n) & 0xff); \
+} while(0)
+#define WRITE_16(buff, n) do { \
+ WRITE_8((unsigned char*)(buff), n); \
+ WRITE_8(((unsigned char*)(buff)) + 1, (n) >> 8); \
+} while(0)
+#define WRITE_32(buff, n) do { \
+ WRITE_16((unsigned char*)(buff), (n) & 0xffff); \
+ WRITE_16((unsigned char*)(buff) + 2, (n) >> 16); \
+} while(0)
+
+extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, bytesRecovered)
+const char* file;
+const char* fileOut;
+const char* fileOutTmp;
+uLong* nRecovered;
+uLong* bytesRecovered;
+{
+ int err = Z_OK;
+ FILE* fpZip = fopen(file, "rb");
+ FILE* fpOut = fopen(fileOut, "wb");
+ FILE* fpOutCD = fopen(fileOutTmp, "wb");
+ if (fpZip != NULL && fpOut != NULL) {
+ int entries = 0;
+ uLong totalBytes = 0;
+ char header[30];
+ char filename[1024];
+ char extra[1024];
+ int offset = 0;
+ int offsetCD = 0;
+ while ( fread(header, 1, 30, fpZip) == 30 ) {
+ int currentOffset = offset;
+
+ /* File entry */
+ if (READ_32(header) == 0x04034b50) {
+ unsigned int version = READ_16(header + 4);
+ unsigned int gpflag = READ_16(header + 6);
+ unsigned int method = READ_16(header + 8);
+ unsigned int filetime = READ_16(header + 10);
+ unsigned int filedate = READ_16(header + 12);
+ unsigned int crc = READ_32(header + 14); /* crc */
+ unsigned int cpsize = READ_32(header + 18); /* compressed size */
+ unsigned int uncpsize = READ_32(header + 22); /* uncompressed sz */
+ unsigned int fnsize = READ_16(header + 26); /* file name length */
+ unsigned int extsize = READ_16(header + 28); /* extra field length */
+ filename[0] = extra[0] = '\0';
+
+ /* Header */
+ if (fwrite(header, 1, 30, fpOut) == 30) {
+ offset += 30;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+
+ /* Filename */
+ if (fnsize > 0) {
+ if (fnsize < sizeof(filename)) {
+ if (fread(filename, 1, fnsize, fpZip) == fnsize) {
+ if (fwrite(filename, 1, fnsize, fpOut) == fnsize) {
+ offset += fnsize;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_STREAM_ERROR;
+ break;
+ }
+
+ /* Extra field */
+ if (extsize > 0) {
+ if (extsize < sizeof(extra)) {
+ if (fread(extra, 1, extsize, fpZip) == extsize) {
+ if (fwrite(extra, 1, extsize, fpOut) == extsize) {
+ offset += extsize;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ }
+
+ /* Data */
+ {
+ int dataSize = cpsize;
+ if (dataSize == 0) {
+ dataSize = uncpsize;
+ }
+ if (dataSize > 0) {
+ char* data = malloc(dataSize);
+ if (data != NULL) {
+ if ((int)fread(data, 1, dataSize, fpZip) == dataSize) {
+ if ((int)fwrite(data, 1, dataSize, fpOut) == dataSize) {
+ offset += dataSize;
+ totalBytes += dataSize;
+ } else {
+ err = Z_ERRNO;
+ }
+ } else {
+ err = Z_ERRNO;
+ }
+ free(data);
+ if (err != Z_OK) {
+ break;
+ }
+ } else {
+ err = Z_MEM_ERROR;
+ break;
+ }
+ }
+ }
+
+ /* Central directory entry */
+ {
+ char header[46];
+ char* comment = "";
+ int comsize = (int) strlen(comment);
+ WRITE_32(header, 0x02014b50);
+ WRITE_16(header + 4, version);
+ WRITE_16(header + 6, version);
+ WRITE_16(header + 8, gpflag);
+ WRITE_16(header + 10, method);
+ WRITE_16(header + 12, filetime);
+ WRITE_16(header + 14, filedate);
+ WRITE_32(header + 16, crc);
+ WRITE_32(header + 20, cpsize);
+ WRITE_32(header + 24, uncpsize);
+ WRITE_16(header + 28, fnsize);
+ WRITE_16(header + 30, extsize);
+ WRITE_16(header + 32, comsize);
+ WRITE_16(header + 34, 0); /* disk # */
+ WRITE_16(header + 36, 0); /* int attrb */
+ WRITE_32(header + 38, 0); /* ext attrb */
+ WRITE_32(header + 42, currentOffset);
+ /* Header */
+ if (fwrite(header, 1, 46, fpOutCD) == 46) {
+ offsetCD += 46;
+
+ /* Filename */
+ if (fnsize > 0) {
+ if (fwrite(filename, 1, fnsize, fpOutCD) == fnsize) {
+ offsetCD += fnsize;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ } else {
+ err = Z_STREAM_ERROR;
+ break;
+ }
+
+ /* Extra field */
+ if (extsize > 0) {
+ if (fwrite(extra, 1, extsize, fpOutCD) == extsize) {
+ offsetCD += extsize;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ }
+
+ /* Comment field */
+ if (comsize > 0) {
+ if ((int)fwrite(comment, 1, comsize, fpOutCD) == comsize) {
+ offsetCD += comsize;
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ }
+
+
+ } else {
+ err = Z_ERRNO;
+ break;
+ }
+ }
+
+ /* Success */
+ entries++;
+
+ } else {
+ break;
+ }
+ }
+
+ /* Final central directory */
+ {
+ int entriesZip = entries;
+ char header[22];
+ char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools";
+ int comsize = (int) strlen(comment);
+ if (entriesZip > 0xffff) {
+ entriesZip = 0xffff;
+ }
+ WRITE_32(header, 0x06054b50);
+ WRITE_16(header + 4, 0); /* disk # */
+ WRITE_16(header + 6, 0); /* disk # */
+ WRITE_16(header + 8, entriesZip); /* hack */
+ WRITE_16(header + 10, entriesZip); /* hack */
+ WRITE_32(header + 12, offsetCD); /* size of CD */
+ WRITE_32(header + 16, offset); /* offset to CD */
+ WRITE_16(header + 20, comsize); /* comment */
+
+ /* Header */
+ if (fwrite(header, 1, 22, fpOutCD) == 22) {
+
+ /* Comment field */
+ if (comsize > 0) {
+ if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) {
+ err = Z_ERRNO;
+ }
+ }
+
+ } else {
+ err = Z_ERRNO;
+ }
+ }
+
+ /* Final merge (file + central directory) */
+ fclose(fpOutCD);
+ if (err == Z_OK) {
+ fpOutCD = fopen(fileOutTmp, "rb");
+ if (fpOutCD != NULL) {
+ int nRead;
+ char buffer[8192];
+ while ( (nRead = (int)fread(buffer, 1, sizeof(buffer), fpOutCD)) > 0) {
+ if ((int)fwrite(buffer, 1, nRead, fpOut) != nRead) {
+ err = Z_ERRNO;
+ break;
+ }
+ }
+ fclose(fpOutCD);
+ }
+ }
+
+ /* Close */
+ fclose(fpZip);
+ fclose(fpOut);
+
+ /* Wipe temporary file */
+ (void)remove(fileOutTmp);
+
+ /* Number of recovered entries */
+ if (err == Z_OK) {
+ if (nRecovered != NULL) {
+ *nRecovered = entries;
+ }
+ if (bytesRecovered != NULL) {
+ *bytesRecovered = totalBytes;
+ }
+ }
+ } else {
+ err = Z_STREAM_ERROR;
+ }
+ return err;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.h
new file mode 100644
index 000000000..a49a426ec
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/mztools.h
@@ -0,0 +1,37 @@
+/*
+ Additional tools for Minizip
+ Code: Xavier Roche '2004
+ License: Same as ZLIB (www.gzip.org)
+*/
+
+#ifndef _zip_tools_H
+#define _zip_tools_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _ZLIB_H
+#include "zlib.h"
+#endif
+
+#include "unzip.h"
+
+/* Repair a ZIP file (missing central directory)
+ file: file to recover
+ fileOut: output file after recovery
+ fileOutTmp: temporary file name used for recovery
+*/
+extern int ZEXPORT unzRepair(const char* file,
+ const char* fileOut,
+ const char* fileOutTmp,
+ uLong* nRecovered,
+ uLong* bytesRecovered);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.c
new file mode 100644
index 000000000..bcfb9416e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.c
@@ -0,0 +1,2125 @@
+/* unzip.c -- IO for uncompress .zip files using zlib
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications of Unzip for Zip64
+ Copyright (C) 2007-2008 Even Rouault
+
+ Modifications for Zip64 support on both zip and unzip
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+
+ ------------------------------------------------------------------------------------
+ Decryption code comes from crypt.c by Info-ZIP but has been greatly reduced in terms of
+ compatibility with older software. The following is from the original crypt.c.
+ Code woven in by Terry Thorsen 1/2003.
+
+ Copyright (c) 1990-2000 Info-ZIP. All rights reserved.
+
+ See the accompanying file LICENSE, version 2000-Apr-09 or later
+ (the contents of which are also included in zip.h) for terms of use.
+ If, for some reason, all these files are missing, the Info-ZIP license
+ also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
+
+ crypt.c (full version) by Info-ZIP. Last revised: [see crypt.h]
+
+ The encryption/decryption parts of this source code (as opposed to the
+ non-echoing password parts) were originally written in Europe. The
+ whole source package can be freely distributed, including from the USA.
+ (Prior to January 2000, re-export from the US was a violation of US law.)
+
+ This encryption code is a direct transcription of the algorithm from
+ Roger Schlafly, described by Phil Katz in the file appnote.txt. This
+ file (appnote.txt) is distributed with the PKZIP program (even in the
+ version without encryption capabilities).
+
+ ------------------------------------------------------------------------------------
+
+ Changes in unzip.c
+
+ 2007-2008 - Even Rouault - Addition of cpl_unzGetCurrentFileZStreamPos
+ 2007-2008 - Even Rouault - Decoration of symbol names unz* -> cpl_unz*
+ 2007-2008 - Even Rouault - Remove old C style function prototypes
+ 2007-2008 - Even Rouault - Add unzip support for ZIP64
+
+ Copyright (C) 2007-2008 Even Rouault
+
+
+ Oct-2009 - Mathias Svensson - Removed cpl_* from symbol names (Even Rouault added them but since this is now moved to a new project (minizip64) I renamed them again).
+ Oct-2009 - Mathias Svensson - Fixed problem if uncompressed size was > 4G and compressed size was <4G
+ should only read the compressed/uncompressed size from the Zip64 format if
+ the size from normal header was 0xFFFFFFFF
+ Oct-2009 - Mathias Svensson - Applied some bug fixes from paches recived from Gilles Vollant
+ Oct-2009 - Mathias Svensson - Applied support to unzip files with compression mathod BZIP2 (bzip2 lib is required)
+ Patch created by Daniel Borca
+
+ Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer
+
+ Copyright (C) 1998 - 2010 Gilles Vollant, Even Rouault, Mathias Svensson
+
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef NOUNCRYPT
+ #define NOUNCRYPT
+#endif
+
+#include "zlib.h"
+#include "unzip.h"
+
+#ifdef STDC
+# include <stddef.h>
+# include <string.h>
+# include <stdlib.h>
+#endif
+#ifdef NO_ERRNO_H
+ extern int errno;
+#else
+# include <errno.h>
+#endif
+
+
+#ifndef local
+# define local static
+#endif
+/* compile with -Dlocal if your debugger can't find static symbols */
+
+
+#ifndef CASESENSITIVITYDEFAULT_NO
+# if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES)
+# define CASESENSITIVITYDEFAULT_NO
+# endif
+#endif
+
+
+#ifndef UNZ_BUFSIZE
+#define UNZ_BUFSIZE (16384)
+#endif
+
+#ifndef UNZ_MAXFILENAMEINZIP
+#define UNZ_MAXFILENAMEINZIP (256)
+#endif
+
+#ifndef ALLOC
+# define ALLOC(size) (malloc(size))
+#endif
+#ifndef TRYFREE
+# define TRYFREE(p) {if (p) free(p);}
+#endif
+
+#define SIZECENTRALDIRITEM (0x2e)
+#define SIZEZIPLOCALHEADER (0x1e)
+
+
+const char unz_copyright[] =
+ " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
+
+/* unz_file_info_interntal contain internal info about a file in zipfile*/
+typedef struct unz_file_info64_internal_s
+{
+ ZPOS64_T offset_curfile;/* relative offset of local header 8 bytes */
+} unz_file_info64_internal;
+
+
+/* file_in_zip_read_info_s contain internal information about a file in zipfile,
+ when reading and decompress it */
+typedef struct
+{
+ char *read_buffer; /* internal buffer for compressed data */
+ z_stream stream; /* zLib stream structure for inflate */
+
+#ifdef HAVE_BZIP2
+ bz_stream bstream; /* bzLib stream structure for bziped */
+#endif
+
+ ZPOS64_T pos_in_zipfile; /* position in byte on the zipfile, for fseek*/
+ uLong stream_initialised; /* flag set if stream structure is initialised*/
+
+ ZPOS64_T offset_local_extrafield;/* offset of the local extra field */
+ uInt size_local_extrafield;/* size of the local extra field */
+ ZPOS64_T pos_local_extrafield; /* position in the local extra field in read*/
+ ZPOS64_T total_out_64;
+
+ uLong crc32; /* crc32 of all data uncompressed */
+ uLong crc32_wait; /* crc32 we must obtain after decompress all */
+ ZPOS64_T rest_read_compressed; /* number of byte to be decompressed */
+ ZPOS64_T rest_read_uncompressed;/*number of byte to be obtained after decomp*/
+ zlib_filefunc64_32_def z_filefunc;
+ voidpf filestream; /* io structore of the zipfile */
+ uLong compression_method; /* compression method (0==store) */
+ ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
+ int raw;
+} file_in_zip64_read_info_s;
+
+
+/* unz64_s contain internal information about the zipfile
+*/
+typedef struct
+{
+ zlib_filefunc64_32_def z_filefunc;
+ int is64bitOpenFunction;
+ voidpf filestream; /* io structore of the zipfile */
+ unz_global_info64 gi; /* public global information */
+ ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
+ ZPOS64_T num_file; /* number of the current file in the zipfile*/
+ ZPOS64_T pos_in_central_dir; /* pos of the current file in the central dir*/
+ ZPOS64_T current_file_ok; /* flag about the usability of the current file*/
+ ZPOS64_T central_pos; /* position of the beginning of the central dir*/
+
+ ZPOS64_T size_central_dir; /* size of the central directory */
+ ZPOS64_T offset_central_dir; /* offset of start of central directory with
+ respect to the starting disk number */
+
+ unz_file_info64 cur_file_info; /* public info about the current file in zip*/
+ unz_file_info64_internal cur_file_info_internal; /* private info about it*/
+ file_in_zip64_read_info_s* pfile_in_zip_read; /* structure about the current
+ file if we are decompressing it */
+ int encrypted;
+
+ int isZip64;
+
+# ifndef NOUNCRYPT
+ unsigned long keys[3]; /* keys defining the pseudo-random sequence */
+ const z_crc_t* pcrc_32_tab;
+# endif
+} unz64_s;
+
+
+#ifndef NOUNCRYPT
+#include "crypt.h"
+#endif
+
+/* ===========================================================================
+ Read a byte from a gz_stream; update next_in and avail_in. Return EOF
+ for end of file.
+ IN assertion: the stream s has been successfully opened for reading.
+*/
+
+
+local int unz64local_getByte OF((
+ const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ int *pi));
+
+local int unz64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi)
+{
+ unsigned char c;
+ int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
+ if (err==1)
+ {
+ *pi = (int)c;
+ return UNZ_OK;
+ }
+ else
+ {
+ if (ZERROR64(*pzlib_filefunc_def,filestream))
+ return UNZ_ERRNO;
+ else
+ return UNZ_EOF;
+ }
+}
+
+
+/* ===========================================================================
+ Reads a long in LSB order from the given gz_stream. Sets
+*/
+local int unz64local_getShort OF((
+ const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ uLong *pX));
+
+local int unz64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ uLong *pX)
+{
+ uLong x ;
+ int i = 0;
+ int err;
+
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (uLong)i;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((uLong)i)<<8;
+
+ if (err==UNZ_OK)
+ *pX = x;
+ else
+ *pX = 0;
+ return err;
+}
+
+local int unz64local_getLong OF((
+ const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ uLong *pX));
+
+local int unz64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ uLong *pX)
+{
+ uLong x ;
+ int i = 0;
+ int err;
+
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (uLong)i;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((uLong)i)<<8;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((uLong)i)<<16;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((uLong)i)<<24;
+
+ if (err==UNZ_OK)
+ *pX = x;
+ else
+ *pX = 0;
+ return err;
+}
+
+local int unz64local_getLong64 OF((
+ const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ ZPOS64_T *pX));
+
+
+local int unz64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream,
+ ZPOS64_T *pX)
+{
+ ZPOS64_T x ;
+ int i = 0;
+ int err;
+
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (ZPOS64_T)i;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<8;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<16;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<24;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<32;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<40;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<48;
+
+ if (err==UNZ_OK)
+ err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x |= ((ZPOS64_T)i)<<56;
+
+ if (err==UNZ_OK)
+ *pX = x;
+ else
+ *pX = 0;
+ return err;
+}
+
+/* My own strcmpi / strcasecmp */
+local int strcmpcasenosensitive_internal (const char* fileName1, const char* fileName2)
+{
+ for (;;)
+ {
+ char c1=*(fileName1++);
+ char c2=*(fileName2++);
+ if ((c1>='a') && (c1<='z'))
+ c1 -= 0x20;
+ if ((c2>='a') && (c2<='z'))
+ c2 -= 0x20;
+ if (c1=='\0')
+ return ((c2=='\0') ? 0 : -1);
+ if (c2=='\0')
+ return 1;
+ if (c1<c2)
+ return -1;
+ if (c1>c2)
+ return 1;
+ }
+}
+
+
+#ifdef CASESENSITIVITYDEFAULT_NO
+#define CASESENSITIVITYDEFAULTVALUE 2
+#else
+#define CASESENSITIVITYDEFAULTVALUE 1
+#endif
+
+#ifndef STRCMPCASENOSENTIVEFUNCTION
+#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal
+#endif
+
+/*
+ Compare two filename (fileName1,fileName2).
+ If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
+ If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
+ or strcasecmp)
+ If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
+ (like 1 on Unix, 2 on Windows)
+
+*/
+extern int ZEXPORT unzStringFileNameCompare (const char* fileName1,
+ const char* fileName2,
+ int iCaseSensitivity)
+
+{
+ if (iCaseSensitivity==0)
+ iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
+
+ if (iCaseSensitivity==1)
+ return strcmp(fileName1,fileName2);
+
+ return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
+}
+
+#ifndef BUFREADCOMMENT
+#define BUFREADCOMMENT (0x400)
+#endif
+
+/*
+ Locate the Central directory of a zipfile (at the end, just before
+ the global comment)
+*/
+local ZPOS64_T unz64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream));
+local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)
+{
+ unsigned char* buf;
+ ZPOS64_T uSizeFile;
+ ZPOS64_T uBackRead;
+ ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+ ZPOS64_T uPosFound=0;
+
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+ return 0;
+
+
+ uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+ if (uMaxBack>uSizeFile)
+ uMaxBack = uSizeFile;
+
+ buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+ if (buf==NULL)
+ return 0;
+
+ uBackRead = 4;
+ while (uBackRead<uMaxBack)
+ {
+ uLong uReadSize;
+ ZPOS64_T uReadPos ;
+ int i;
+ if (uBackRead+BUFREADCOMMENT>uMaxBack)
+ uBackRead = uMaxBack;
+ else
+ uBackRead+=BUFREADCOMMENT;
+ uReadPos = uSizeFile-uBackRead ;
+
+ uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+ (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ break;
+
+ if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+ break;
+
+ for (i=(int)uReadSize-3; (i--)>0;)
+ if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
+ ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
+ {
+ uPosFound = uReadPos+i;
+ break;
+ }
+
+ if (uPosFound!=0)
+ break;
+ }
+ TRYFREE(buf);
+ return uPosFound;
+}
+
+
+/*
+ Locate the Central directory 64 of a zipfile (at the end, just before
+ the global comment)
+*/
+local ZPOS64_T unz64local_SearchCentralDir64 OF((
+ const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream));
+
+local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def,
+ voidpf filestream)
+{
+ unsigned char* buf;
+ ZPOS64_T uSizeFile;
+ ZPOS64_T uBackRead;
+ ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+ ZPOS64_T uPosFound=0;
+ uLong uL;
+ ZPOS64_T relativeOffset;
+
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+ return 0;
+
+
+ uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+ if (uMaxBack>uSizeFile)
+ uMaxBack = uSizeFile;
+
+ buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+ if (buf==NULL)
+ return 0;
+
+ uBackRead = 4;
+ while (uBackRead<uMaxBack)
+ {
+ uLong uReadSize;
+ ZPOS64_T uReadPos;
+ int i;
+ if (uBackRead+BUFREADCOMMENT>uMaxBack)
+ uBackRead = uMaxBack;
+ else
+ uBackRead+=BUFREADCOMMENT;
+ uReadPos = uSizeFile-uBackRead ;
+
+ uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+ (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ break;
+
+ if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+ break;
+
+ for (i=(int)uReadSize-3; (i--)>0;)
+ if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
+ ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
+ {
+ uPosFound = uReadPos+i;
+ break;
+ }
+
+ if (uPosFound!=0)
+ break;
+ }
+ TRYFREE(buf);
+ if (uPosFound == 0)
+ return 0;
+
+ /* Zip64 end of central directory locator */
+ if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return 0;
+
+ /* the signature, already checked */
+ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+ return 0;
+
+ /* number of the disk with the start of the zip64 end of central directory */
+ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+ return 0;
+ if (uL != 0)
+ return 0;
+
+ /* relative offset of the zip64 end of central directory record */
+ if (unz64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=UNZ_OK)
+ return 0;
+
+ /* total number of disks */
+ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+ return 0;
+ if (uL != 1)
+ return 0;
+
+ /* Goto end of central directory record */
+ if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return 0;
+
+ /* the signature */
+ if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+ return 0;
+
+ if (uL != 0x06064b50)
+ return 0;
+
+ return relativeOffset;
+}
+
+/*
+ Open a Zip file. path contain the full pathname (by example,
+ on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer
+ "zlib/zlib114.zip".
+ If the zipfile cannot be opened (file doesn't exist or in not valid), the
+ return value is NULL.
+ Else, the return value is a unzFile Handle, usable with other function
+ of this unzip package.
+*/
+local unzFile unzOpenInternal (const void *path,
+ zlib_filefunc64_32_def* pzlib_filefunc64_32_def,
+ int is64bitOpenFunction)
+{
+ unz64_s us;
+ unz64_s *s;
+ ZPOS64_T central_pos;
+ uLong uL;
+
+ uLong number_disk; /* number of the current dist, used for
+ spaning ZIP, unsupported, always 0*/
+ uLong number_disk_with_CD; /* number the the disk with central dir, used
+ for spaning ZIP, unsupported, always 0*/
+ ZPOS64_T number_entry_CD; /* total number of entries in
+ the central dir
+ (same than number_entry on nospan) */
+
+ int err=UNZ_OK;
+
+ if (unz_copyright[0]!=' ')
+ return NULL;
+
+ us.z_filefunc.zseek32_file = NULL;
+ us.z_filefunc.ztell32_file = NULL;
+ if (pzlib_filefunc64_32_def==NULL)
+ fill_fopen64_filefunc(&us.z_filefunc.zfile_func64);
+ else
+ us.z_filefunc = *pzlib_filefunc64_32_def;
+ us.is64bitOpenFunction = is64bitOpenFunction;
+
+
+
+ us.filestream = ZOPEN64(us.z_filefunc,
+ path,
+ ZLIB_FILEFUNC_MODE_READ |
+ ZLIB_FILEFUNC_MODE_EXISTING);
+ if (us.filestream==NULL)
+ return NULL;
+
+ central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream);
+ if (central_pos)
+ {
+ uLong uS;
+ ZPOS64_T uL64;
+
+ us.isZip64 = 1;
+
+ if (ZSEEK64(us.z_filefunc, us.filestream,
+ central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err=UNZ_ERRNO;
+
+ /* the signature, already checked */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* size of zip64 end of central directory record */
+ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&uL64)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* version made by */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* version needed to extract */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* number of this disk */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* number of the disk with the start of the central directory */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* total number of entries in the central directory on this disk */
+ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* total number of entries in the central directory */
+ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if ((number_entry_CD!=us.gi.number_entry) ||
+ (number_disk_with_CD!=0) ||
+ (number_disk!=0))
+ err=UNZ_BADZIPFILE;
+
+ /* size of the central directory */
+ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* offset of start of central directory with respect to the
+ starting disk number */
+ if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ us.gi.size_comment = 0;
+ }
+ else
+ {
+ central_pos = unz64local_SearchCentralDir(&us.z_filefunc,us.filestream);
+ if (central_pos==0)
+ err=UNZ_ERRNO;
+
+ us.isZip64 = 0;
+
+ if (ZSEEK64(us.z_filefunc, us.filestream,
+ central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err=UNZ_ERRNO;
+
+ /* the signature, already checked */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* number of this disk */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* number of the disk with the start of the central directory */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* total number of entries in the central dir on this disk */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+ us.gi.number_entry = uL;
+
+ /* total number of entries in the central dir */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+ number_entry_CD = uL;
+
+ if ((number_entry_CD!=us.gi.number_entry) ||
+ (number_disk_with_CD!=0) ||
+ (number_disk!=0))
+ err=UNZ_BADZIPFILE;
+
+ /* size of the central directory */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+ us.size_central_dir = uL;
+
+ /* offset of start of central directory with respect to the
+ starting disk number */
+ if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+ err=UNZ_ERRNO;
+ us.offset_central_dir = uL;
+
+ /* zipfile comment length */
+ if (unz64local_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK)
+ err=UNZ_ERRNO;
+ }
+
+ if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
+ (err==UNZ_OK))
+ err=UNZ_BADZIPFILE;
+
+ if (err!=UNZ_OK)
+ {
+ ZCLOSE64(us.z_filefunc, us.filestream);
+ return NULL;
+ }
+
+ us.byte_before_the_zipfile = central_pos -
+ (us.offset_central_dir+us.size_central_dir);
+ us.central_pos = central_pos;
+ us.pfile_in_zip_read = NULL;
+ us.encrypted = 0;
+
+
+ s=(unz64_s*)ALLOC(sizeof(unz64_s));
+ if( s != NULL)
+ {
+ *s=us;
+ unzGoToFirstFile((unzFile)s);
+ }
+ return (unzFile)s;
+}
+
+
+extern unzFile ZEXPORT unzOpen2 (const char *path,
+ zlib_filefunc_def* pzlib_filefunc32_def)
+{
+ if (pzlib_filefunc32_def != NULL)
+ {
+ zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+ fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
+ return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 0);
+ }
+ else
+ return unzOpenInternal(path, NULL, 0);
+}
+
+extern unzFile ZEXPORT unzOpen2_64 (const void *path,
+ zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ if (pzlib_filefunc_def != NULL)
+ {
+ zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+ zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
+ zlib_filefunc64_32_def_fill.ztell32_file = NULL;
+ zlib_filefunc64_32_def_fill.zseek32_file = NULL;
+ return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1);
+ }
+ else
+ return unzOpenInternal(path, NULL, 1);
+}
+
+extern unzFile ZEXPORT unzOpen (const char *path)
+{
+ return unzOpenInternal(path, NULL, 0);
+}
+
+extern unzFile ZEXPORT unzOpen64 (const void *path)
+{
+ return unzOpenInternal(path, NULL, 1);
+}
+
+/*
+ Close a ZipFile opened with unzOpen.
+ If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
+ these files MUST be closed with unzCloseCurrentFile before call unzClose.
+ return UNZ_OK if there is no problem. */
+extern int ZEXPORT unzClose (unzFile file)
+{
+ unz64_s* s;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+
+ if (s->pfile_in_zip_read!=NULL)
+ unzCloseCurrentFile(file);
+
+ ZCLOSE64(s->z_filefunc, s->filestream);
+ TRYFREE(s);
+ return UNZ_OK;
+}
+
+
+/*
+ Write info about the ZipFile in the *pglobal_info structure.
+ No preparation of the structure is needed
+ return UNZ_OK if there is no problem. */
+extern int ZEXPORT unzGetGlobalInfo64 (unzFile file, unz_global_info64* pglobal_info)
+{
+ unz64_s* s;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ *pglobal_info=s->gi;
+ return UNZ_OK;
+}
+
+extern int ZEXPORT unzGetGlobalInfo (unzFile file, unz_global_info* pglobal_info32)
+{
+ unz64_s* s;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ /* to do : check if number_entry is not truncated */
+ pglobal_info32->number_entry = (uLong)s->gi.number_entry;
+ pglobal_info32->size_comment = s->gi.size_comment;
+ return UNZ_OK;
+}
+/*
+ Translate date/time from Dos format to tm_unz (readable more easilty)
+*/
+local void unz64local_DosDateToTmuDate (ZPOS64_T ulDosDate, tm_unz* ptm)
+{
+ ZPOS64_T uDate;
+ uDate = (ZPOS64_T)(ulDosDate>>16);
+ ptm->tm_mday = (uInt)(uDate&0x1f) ;
+ ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ;
+ ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
+
+ ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800);
+ ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ;
+ ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ;
+}
+
+/*
+ Get Info about the current file in the zipfile, with internal only info
+*/
+local int unz64local_GetCurrentFileInfoInternal OF((unzFile file,
+ unz_file_info64 *pfile_info,
+ unz_file_info64_internal
+ *pfile_info_internal,
+ char *szFileName,
+ uLong fileNameBufferSize,
+ void *extraField,
+ uLong extraFieldBufferSize,
+ char *szComment,
+ uLong commentBufferSize));
+
+local int unz64local_GetCurrentFileInfoInternal (unzFile file,
+ unz_file_info64 *pfile_info,
+ unz_file_info64_internal
+ *pfile_info_internal,
+ char *szFileName,
+ uLong fileNameBufferSize,
+ void *extraField,
+ uLong extraFieldBufferSize,
+ char *szComment,
+ uLong commentBufferSize)
+{
+ unz64_s* s;
+ unz_file_info64 file_info;
+ unz_file_info64_internal file_info_internal;
+ int err=UNZ_OK;
+ uLong uMagic;
+ long lSeek=0;
+ uLong uL;
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ if (ZSEEK64(s->z_filefunc, s->filestream,
+ s->pos_in_central_dir+s->byte_before_the_zipfile,
+ ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err=UNZ_ERRNO;
+
+
+ /* we check the magic */
+ if (err==UNZ_OK)
+ {
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
+ err=UNZ_ERRNO;
+ else if (uMagic!=0x02014b50)
+ err=UNZ_BADZIPFILE;
+ }
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ unz64local_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date);
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+ err=UNZ_ERRNO;
+ file_info.compressed_size = uL;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+ err=UNZ_ERRNO;
+ file_info.uncompressed_size = uL;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ // relative offset of local header
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+ err=UNZ_ERRNO;
+ file_info_internal.offset_curfile = uL;
+
+ lSeek+=file_info.size_filename;
+ if ((err==UNZ_OK) && (szFileName!=NULL))
+ {
+ uLong uSizeRead ;
+ if (file_info.size_filename<fileNameBufferSize)
+ {
+ *(szFileName+file_info.size_filename)='\0';
+ uSizeRead = file_info.size_filename;
+ }
+ else
+ uSizeRead = fileNameBufferSize;
+
+ if ((file_info.size_filename>0) && (fileNameBufferSize>0))
+ if (ZREAD64(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead)
+ err=UNZ_ERRNO;
+ lSeek -= uSizeRead;
+ }
+
+ // Read extrafield
+ if ((err==UNZ_OK) && (extraField!=NULL))
+ {
+ ZPOS64_T uSizeRead ;
+ if (file_info.size_file_extra<extraFieldBufferSize)
+ uSizeRead = file_info.size_file_extra;
+ else
+ uSizeRead = extraFieldBufferSize;
+
+ if (lSeek!=0)
+ {
+ if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+ lSeek=0;
+ else
+ err=UNZ_ERRNO;
+ }
+
+ if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
+ if (ZREAD64(s->z_filefunc, s->filestream,extraField,(uLong)uSizeRead)!=uSizeRead)
+ err=UNZ_ERRNO;
+
+ lSeek += file_info.size_file_extra - (uLong)uSizeRead;
+ }
+ else
+ lSeek += file_info.size_file_extra;
+
+
+ if ((err==UNZ_OK) && (file_info.size_file_extra != 0))
+ {
+ uLong acc = 0;
+
+ // since lSeek now points to after the extra field we need to move back
+ lSeek -= file_info.size_file_extra;
+
+ if (lSeek!=0)
+ {
+ if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+ lSeek=0;
+ else
+ err=UNZ_ERRNO;
+ }
+
+ while(acc < file_info.size_file_extra)
+ {
+ uLong headerId;
+ uLong dataSize;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&headerId) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&dataSize) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ /* ZIP64 extra fields */
+ if (headerId == 0x0001)
+ {
+ uLong uL;
+
+ if(file_info.uncompressed_size == MAXU32)
+ {
+ if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
+ err=UNZ_ERRNO;
+ }
+
+ if(file_info.compressed_size == MAXU32)
+ {
+ if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
+ err=UNZ_ERRNO;
+ }
+
+ if(file_info_internal.offset_curfile == MAXU32)
+ {
+ /* Relative Header offset */
+ if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
+ err=UNZ_ERRNO;
+ }
+
+ if(file_info.disk_num_start == MAXU32)
+ {
+ /* Disk Start Number */
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+ err=UNZ_ERRNO;
+ }
+
+ }
+ else
+ {
+ if (ZSEEK64(s->z_filefunc, s->filestream,dataSize,ZLIB_FILEFUNC_SEEK_CUR)!=0)
+ err=UNZ_ERRNO;
+ }
+
+ acc += 2 + 2 + dataSize;
+ }
+ }
+
+ if ((err==UNZ_OK) && (szComment!=NULL))
+ {
+ uLong uSizeRead ;
+ if (file_info.size_file_comment<commentBufferSize)
+ {
+ *(szComment+file_info.size_file_comment)='\0';
+ uSizeRead = file_info.size_file_comment;
+ }
+ else
+ uSizeRead = commentBufferSize;
+
+ if (lSeek!=0)
+ {
+ if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+ lSeek=0;
+ else
+ err=UNZ_ERRNO;
+ }
+
+ if ((file_info.size_file_comment>0) && (commentBufferSize>0))
+ if (ZREAD64(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead)
+ err=UNZ_ERRNO;
+ lSeek+=file_info.size_file_comment - uSizeRead;
+ }
+ else
+ lSeek+=file_info.size_file_comment;
+
+
+ if ((err==UNZ_OK) && (pfile_info!=NULL))
+ *pfile_info=file_info;
+
+ if ((err==UNZ_OK) && (pfile_info_internal!=NULL))
+ *pfile_info_internal=file_info_internal;
+
+ return err;
+}
+
+
+
+/*
+ Write info about the ZipFile in the *pglobal_info structure.
+ No preparation of the structure is needed
+ return UNZ_OK if there is no problem.
+*/
+extern int ZEXPORT unzGetCurrentFileInfo64 (unzFile file,
+ unz_file_info64 * pfile_info,
+ char * szFileName, uLong fileNameBufferSize,
+ void *extraField, uLong extraFieldBufferSize,
+ char* szComment, uLong commentBufferSize)
+{
+ return unz64local_GetCurrentFileInfoInternal(file,pfile_info,NULL,
+ szFileName,fileNameBufferSize,
+ extraField,extraFieldBufferSize,
+ szComment,commentBufferSize);
+}
+
+extern int ZEXPORT unzGetCurrentFileInfo (unzFile file,
+ unz_file_info * pfile_info,
+ char * szFileName, uLong fileNameBufferSize,
+ void *extraField, uLong extraFieldBufferSize,
+ char* szComment, uLong commentBufferSize)
+{
+ int err;
+ unz_file_info64 file_info64;
+ err = unz64local_GetCurrentFileInfoInternal(file,&file_info64,NULL,
+ szFileName,fileNameBufferSize,
+ extraField,extraFieldBufferSize,
+ szComment,commentBufferSize);
+ if ((err==UNZ_OK) && (pfile_info != NULL))
+ {
+ pfile_info->version = file_info64.version;
+ pfile_info->version_needed = file_info64.version_needed;
+ pfile_info->flag = file_info64.flag;
+ pfile_info->compression_method = file_info64.compression_method;
+ pfile_info->dosDate = file_info64.dosDate;
+ pfile_info->crc = file_info64.crc;
+
+ pfile_info->size_filename = file_info64.size_filename;
+ pfile_info->size_file_extra = file_info64.size_file_extra;
+ pfile_info->size_file_comment = file_info64.size_file_comment;
+
+ pfile_info->disk_num_start = file_info64.disk_num_start;
+ pfile_info->internal_fa = file_info64.internal_fa;
+ pfile_info->external_fa = file_info64.external_fa;
+
+ pfile_info->tmu_date = file_info64.tmu_date,
+
+
+ pfile_info->compressed_size = (uLong)file_info64.compressed_size;
+ pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size;
+
+ }
+ return err;
+}
+/*
+ Set the current file of the zipfile to the first file.
+ return UNZ_OK if there is no problem
+*/
+extern int ZEXPORT unzGoToFirstFile (unzFile file)
+{
+ int err=UNZ_OK;
+ unz64_s* s;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ s->pos_in_central_dir=s->offset_central_dir;
+ s->num_file=0;
+ err=unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+ &s->cur_file_info_internal,
+ NULL,0,NULL,0,NULL,0);
+ s->current_file_ok = (err == UNZ_OK);
+ return err;
+}
+
+/*
+ Set the current file of the zipfile to the next file.
+ return UNZ_OK if there is no problem
+ return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
+*/
+extern int ZEXPORT unzGoToNextFile (unzFile file)
+{
+ unz64_s* s;
+ int err;
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ if (!s->current_file_ok)
+ return UNZ_END_OF_LIST_OF_FILE;
+ if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */
+ if (s->num_file+1==s->gi.number_entry)
+ return UNZ_END_OF_LIST_OF_FILE;
+
+ s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
+ s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ;
+ s->num_file++;
+ err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+ &s->cur_file_info_internal,
+ NULL,0,NULL,0,NULL,0);
+ s->current_file_ok = (err == UNZ_OK);
+ return err;
+}
+
+
+/*
+ Try locate the file szFileName in the zipfile.
+ For the iCaseSensitivity signification, see unzStringFileNameCompare
+
+ return value :
+ UNZ_OK if the file is found. It becomes the current file.
+ UNZ_END_OF_LIST_OF_FILE if the file is not found
+*/
+extern int ZEXPORT unzLocateFile (unzFile file, const char *szFileName, int iCaseSensitivity)
+{
+ unz64_s* s;
+ int err;
+
+ /* We remember the 'current' position in the file so that we can jump
+ * back there if we fail.
+ */
+ unz_file_info64 cur_file_infoSaved;
+ unz_file_info64_internal cur_file_info_internalSaved;
+ ZPOS64_T num_fileSaved;
+ ZPOS64_T pos_in_central_dirSaved;
+
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+
+ if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP)
+ return UNZ_PARAMERROR;
+
+ s=(unz64_s*)file;
+ if (!s->current_file_ok)
+ return UNZ_END_OF_LIST_OF_FILE;
+
+ /* Save the current state */
+ num_fileSaved = s->num_file;
+ pos_in_central_dirSaved = s->pos_in_central_dir;
+ cur_file_infoSaved = s->cur_file_info;
+ cur_file_info_internalSaved = s->cur_file_info_internal;
+
+ err = unzGoToFirstFile(file);
+
+ while (err == UNZ_OK)
+ {
+ char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1];
+ err = unzGetCurrentFileInfo64(file,NULL,
+ szCurrentFileName,sizeof(szCurrentFileName)-1,
+ NULL,0,NULL,0);
+ if (err == UNZ_OK)
+ {
+ if (unzStringFileNameCompare(szCurrentFileName,
+ szFileName,iCaseSensitivity)==0)
+ return UNZ_OK;
+ err = unzGoToNextFile(file);
+ }
+ }
+
+ /* We failed, so restore the state of the 'current file' to where we
+ * were.
+ */
+ s->num_file = num_fileSaved ;
+ s->pos_in_central_dir = pos_in_central_dirSaved ;
+ s->cur_file_info = cur_file_infoSaved;
+ s->cur_file_info_internal = cur_file_info_internalSaved;
+ return err;
+}
+
+
+/*
+///////////////////////////////////////////
+// Contributed by Ryan Haksi (mailto://cryogen@infoserve.net)
+// I need random access
+//
+// Further optimization could be realized by adding an ability
+// to cache the directory in memory. The goal being a single
+// comprehensive file read to put the file I need in a memory.
+*/
+
+/*
+typedef struct unz_file_pos_s
+{
+ ZPOS64_T pos_in_zip_directory; // offset in file
+ ZPOS64_T num_of_file; // # of file
+} unz_file_pos;
+*/
+
+extern int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos* file_pos)
+{
+ unz64_s* s;
+
+ if (file==NULL || file_pos==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ if (!s->current_file_ok)
+ return UNZ_END_OF_LIST_OF_FILE;
+
+ file_pos->pos_in_zip_directory = s->pos_in_central_dir;
+ file_pos->num_of_file = s->num_file;
+
+ return UNZ_OK;
+}
+
+extern int ZEXPORT unzGetFilePos(
+ unzFile file,
+ unz_file_pos* file_pos)
+{
+ unz64_file_pos file_pos64;
+ int err = unzGetFilePos64(file,&file_pos64);
+ if (err==UNZ_OK)
+ {
+ file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory;
+ file_pos->num_of_file = (uLong)file_pos64.num_of_file;
+ }
+ return err;
+}
+
+extern int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos* file_pos)
+{
+ unz64_s* s;
+ int err;
+
+ if (file==NULL || file_pos==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+
+ /* jump to the right spot */
+ s->pos_in_central_dir = file_pos->pos_in_zip_directory;
+ s->num_file = file_pos->num_of_file;
+
+ /* set the current file */
+ err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+ &s->cur_file_info_internal,
+ NULL,0,NULL,0,NULL,0);
+ /* return results */
+ s->current_file_ok = (err == UNZ_OK);
+ return err;
+}
+
+extern int ZEXPORT unzGoToFilePos(
+ unzFile file,
+ unz_file_pos* file_pos)
+{
+ unz64_file_pos file_pos64;
+ if (file_pos == NULL)
+ return UNZ_PARAMERROR;
+
+ file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory;
+ file_pos64.num_of_file = file_pos->num_of_file;
+ return unzGoToFilePos64(file,&file_pos64);
+}
+
+/*
+// Unzip Helper Functions - should be here?
+///////////////////////////////////////////
+*/
+
+/*
+ Read the local header of the current zipfile
+ Check the coherency of the local header and info in the end of central
+ directory about this file
+ store in *piSizeVar the size of extra info in local header
+ (filename and size of extra field data)
+*/
+local int unz64local_CheckCurrentFileCoherencyHeader (unz64_s* s, uInt* piSizeVar,
+ ZPOS64_T * poffset_local_extrafield,
+ uInt * psize_local_extrafield)
+{
+ uLong uMagic,uData,uFlags;
+ uLong size_filename;
+ uLong size_extra_field;
+ int err=UNZ_OK;
+
+ *piSizeVar = 0;
+ *poffset_local_extrafield = 0;
+ *psize_local_extrafield = 0;
+
+ if (ZSEEK64(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile +
+ s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return UNZ_ERRNO;
+
+
+ if (err==UNZ_OK)
+ {
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
+ err=UNZ_ERRNO;
+ else if (uMagic!=0x04034b50)
+ err=UNZ_BADZIPFILE;
+ }
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
+ err=UNZ_ERRNO;
+/*
+ else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion))
+ err=UNZ_BADZIPFILE;
+*/
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK)
+ err=UNZ_ERRNO;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
+ err=UNZ_ERRNO;
+ else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method))
+ err=UNZ_BADZIPFILE;
+
+ if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) &&
+/* #ifdef HAVE_BZIP2 */
+ (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
+/* #endif */
+ (s->cur_file_info.compression_method!=Z_DEFLATED))
+ err=UNZ_BADZIPFILE;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */
+ err=UNZ_ERRNO;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */
+ err=UNZ_ERRNO;
+ else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && ((uFlags & 8)==0))
+ err=UNZ_BADZIPFILE;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */
+ err=UNZ_ERRNO;
+ else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && ((uFlags & 8)==0))
+ err=UNZ_BADZIPFILE;
+
+ if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */
+ err=UNZ_ERRNO;
+ else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && ((uFlags & 8)==0))
+ err=UNZ_BADZIPFILE;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK)
+ err=UNZ_ERRNO;
+ else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename))
+ err=UNZ_BADZIPFILE;
+
+ *piSizeVar += (uInt)size_filename;
+
+ if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK)
+ err=UNZ_ERRNO;
+ *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile +
+ SIZEZIPLOCALHEADER + size_filename;
+ *psize_local_extrafield = (uInt)size_extra_field;
+
+ *piSizeVar += (uInt)size_extra_field;
+
+ return err;
+}
+
+/*
+ Open for reading data the current file in the zipfile.
+ If there is no error and the file is opened, the return value is UNZ_OK.
+*/
+extern int ZEXPORT unzOpenCurrentFile3 (unzFile file, int* method,
+ int* level, int raw, const char* password)
+{
+ int err=UNZ_OK;
+ uInt iSizeVar;
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ ZPOS64_T offset_local_extrafield; /* offset of the local extra field */
+ uInt size_local_extrafield; /* size of the local extra field */
+# ifndef NOUNCRYPT
+ char source[12];
+# else
+ if (password != NULL)
+ return UNZ_PARAMERROR;
+# endif
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ if (!s->current_file_ok)
+ return UNZ_PARAMERROR;
+
+ if (s->pfile_in_zip_read != NULL)
+ unzCloseCurrentFile(file);
+
+ if (unz64local_CheckCurrentFileCoherencyHeader(s,&iSizeVar, &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
+ return UNZ_BADZIPFILE;
+
+ pfile_in_zip_read_info = (file_in_zip64_read_info_s*)ALLOC(sizeof(file_in_zip64_read_info_s));
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_INTERNALERROR;
+
+ pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
+ pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
+ pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
+ pfile_in_zip_read_info->pos_local_extrafield=0;
+ pfile_in_zip_read_info->raw=raw;
+
+ if (pfile_in_zip_read_info->read_buffer==NULL)
+ {
+ TRYFREE(pfile_in_zip_read_info);
+ return UNZ_INTERNALERROR;
+ }
+
+ pfile_in_zip_read_info->stream_initialised=0;
+
+ if (method!=NULL)
+ *method = (int)s->cur_file_info.compression_method;
+
+ if (level!=NULL)
+ {
+ *level = 6;
+ switch (s->cur_file_info.flag & 0x06)
+ {
+ case 6 : *level = 1; break;
+ case 4 : *level = 2; break;
+ case 2 : *level = 9; break;
+ }
+ }
+
+ if ((s->cur_file_info.compression_method!=0) &&
+/* #ifdef HAVE_BZIP2 */
+ (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
+/* #endif */
+ (s->cur_file_info.compression_method!=Z_DEFLATED))
+
+ err=UNZ_BADZIPFILE;
+
+ pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
+ pfile_in_zip_read_info->crc32=0;
+ pfile_in_zip_read_info->total_out_64=0;
+ pfile_in_zip_read_info->compression_method = s->cur_file_info.compression_method;
+ pfile_in_zip_read_info->filestream=s->filestream;
+ pfile_in_zip_read_info->z_filefunc=s->z_filefunc;
+ pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
+
+ pfile_in_zip_read_info->stream.total_out = 0;
+
+ if ((s->cur_file_info.compression_method==Z_BZIP2ED) && (!raw))
+ {
+#ifdef HAVE_BZIP2
+ pfile_in_zip_read_info->bstream.bzalloc = (void *(*) (void *, int, int))0;
+ pfile_in_zip_read_info->bstream.bzfree = (free_func)0;
+ pfile_in_zip_read_info->bstream.opaque = (voidpf)0;
+ pfile_in_zip_read_info->bstream.state = (voidpf)0;
+
+ pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
+ pfile_in_zip_read_info->stream.zfree = (free_func)0;
+ pfile_in_zip_read_info->stream.opaque = (voidpf)0;
+ pfile_in_zip_read_info->stream.next_in = (voidpf)0;
+ pfile_in_zip_read_info->stream.avail_in = 0;
+
+ err=BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0);
+ if (err == Z_OK)
+ pfile_in_zip_read_info->stream_initialised=Z_BZIP2ED;
+ else
+ {
+ TRYFREE(pfile_in_zip_read_info);
+ return err;
+ }
+#else
+ pfile_in_zip_read_info->raw=1;
+#endif
+ }
+ else if ((s->cur_file_info.compression_method==Z_DEFLATED) && (!raw))
+ {
+ pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
+ pfile_in_zip_read_info->stream.zfree = (free_func)0;
+ pfile_in_zip_read_info->stream.opaque = (voidpf)0;
+ pfile_in_zip_read_info->stream.next_in = 0;
+ pfile_in_zip_read_info->stream.avail_in = 0;
+
+ err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
+ if (err == Z_OK)
+ pfile_in_zip_read_info->stream_initialised=Z_DEFLATED;
+ else
+ {
+ TRYFREE(pfile_in_zip_read_info);
+ return err;
+ }
+ /* windowBits is passed < 0 to tell that there is no zlib header.
+ * Note that in this case inflate *requires* an extra "dummy" byte
+ * after the compressed stream in order to complete decompression and
+ * return Z_STREAM_END.
+ * In unzip, i don't wait absolutely Z_STREAM_END because I known the
+ * size of both compressed and uncompressed data
+ */
+ }
+ pfile_in_zip_read_info->rest_read_compressed =
+ s->cur_file_info.compressed_size ;
+ pfile_in_zip_read_info->rest_read_uncompressed =
+ s->cur_file_info.uncompressed_size ;
+
+
+ pfile_in_zip_read_info->pos_in_zipfile =
+ s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
+ iSizeVar;
+
+ pfile_in_zip_read_info->stream.avail_in = (uInt)0;
+
+ s->pfile_in_zip_read = pfile_in_zip_read_info;
+ s->encrypted = 0;
+
+# ifndef NOUNCRYPT
+ if (password != NULL)
+ {
+ int i;
+ s->pcrc_32_tab = get_crc_table();
+ init_keys(password,s->keys,s->pcrc_32_tab);
+ if (ZSEEK64(s->z_filefunc, s->filestream,
+ s->pfile_in_zip_read->pos_in_zipfile +
+ s->pfile_in_zip_read->byte_before_the_zipfile,
+ SEEK_SET)!=0)
+ return UNZ_INTERNALERROR;
+ if(ZREAD64(s->z_filefunc, s->filestream,source, 12)<12)
+ return UNZ_INTERNALERROR;
+
+ for (i = 0; i<12; i++)
+ zdecode(s->keys,s->pcrc_32_tab,source[i]);
+
+ s->pfile_in_zip_read->pos_in_zipfile+=12;
+ s->encrypted=1;
+ }
+# endif
+
+
+ return UNZ_OK;
+}
+
+extern int ZEXPORT unzOpenCurrentFile (unzFile file)
+{
+ return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
+}
+
+extern int ZEXPORT unzOpenCurrentFilePassword (unzFile file, const char* password)
+{
+ return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
+}
+
+extern int ZEXPORT unzOpenCurrentFile2 (unzFile file, int* method, int* level, int raw)
+{
+ return unzOpenCurrentFile3(file, method, level, raw, NULL);
+}
+
+/** Addition for GDAL : START */
+
+extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64( unzFile file)
+{
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ s=(unz64_s*)file;
+ if (file==NULL)
+ return 0; //UNZ_PARAMERROR;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+ if (pfile_in_zip_read_info==NULL)
+ return 0; //UNZ_PARAMERROR;
+ return pfile_in_zip_read_info->pos_in_zipfile +
+ pfile_in_zip_read_info->byte_before_the_zipfile;
+}
+
+/** Addition for GDAL : END */
+
+/*
+ Read bytes from the current file.
+ buf contain buffer where data must be copied
+ len the size of buf.
+
+ return the number of byte copied if somes bytes are copied
+ return 0 if the end of file was reached
+ return <0 with error code if there is an error
+ (UNZ_ERRNO for IO error, or zLib error for uncompress error)
+*/
+extern int ZEXPORT unzReadCurrentFile (unzFile file, voidp buf, unsigned len)
+{
+ int err=UNZ_OK;
+ uInt iRead = 0;
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_PARAMERROR;
+
+
+ if (pfile_in_zip_read_info->read_buffer == NULL)
+ return UNZ_END_OF_LIST_OF_FILE;
+ if (len==0)
+ return 0;
+
+ pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
+
+ pfile_in_zip_read_info->stream.avail_out = (uInt)len;
+
+ if ((len>pfile_in_zip_read_info->rest_read_uncompressed) &&
+ (!(pfile_in_zip_read_info->raw)))
+ pfile_in_zip_read_info->stream.avail_out =
+ (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
+
+ if ((len>pfile_in_zip_read_info->rest_read_compressed+
+ pfile_in_zip_read_info->stream.avail_in) &&
+ (pfile_in_zip_read_info->raw))
+ pfile_in_zip_read_info->stream.avail_out =
+ (uInt)pfile_in_zip_read_info->rest_read_compressed+
+ pfile_in_zip_read_info->stream.avail_in;
+
+ while (pfile_in_zip_read_info->stream.avail_out>0)
+ {
+ if ((pfile_in_zip_read_info->stream.avail_in==0) &&
+ (pfile_in_zip_read_info->rest_read_compressed>0))
+ {
+ uInt uReadThis = UNZ_BUFSIZE;
+ if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)
+ uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;
+ if (uReadThis == 0)
+ return UNZ_EOF;
+ if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
+ pfile_in_zip_read_info->filestream,
+ pfile_in_zip_read_info->pos_in_zipfile +
+ pfile_in_zip_read_info->byte_before_the_zipfile,
+ ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return UNZ_ERRNO;
+ if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
+ pfile_in_zip_read_info->filestream,
+ pfile_in_zip_read_info->read_buffer,
+ uReadThis)!=uReadThis)
+ return UNZ_ERRNO;
+
+
+# ifndef NOUNCRYPT
+ if(s->encrypted)
+ {
+ uInt i;
+ for(i=0;i<uReadThis;i++)
+ pfile_in_zip_read_info->read_buffer[i] =
+ zdecode(s->keys,s->pcrc_32_tab,
+ pfile_in_zip_read_info->read_buffer[i]);
+ }
+# endif
+
+
+ pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
+
+ pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
+
+ pfile_in_zip_read_info->stream.next_in =
+ (Bytef*)pfile_in_zip_read_info->read_buffer;
+ pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
+ }
+
+ if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw))
+ {
+ uInt uDoCopy,i ;
+
+ if ((pfile_in_zip_read_info->stream.avail_in == 0) &&
+ (pfile_in_zip_read_info->rest_read_compressed == 0))
+ return (iRead==0) ? UNZ_EOF : iRead;
+
+ if (pfile_in_zip_read_info->stream.avail_out <
+ pfile_in_zip_read_info->stream.avail_in)
+ uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
+ else
+ uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
+
+ for (i=0;i<uDoCopy;i++)
+ *(pfile_in_zip_read_info->stream.next_out+i) =
+ *(pfile_in_zip_read_info->stream.next_in+i);
+
+ pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uDoCopy;
+
+ pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
+ pfile_in_zip_read_info->stream.next_out,
+ uDoCopy);
+ pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy;
+ pfile_in_zip_read_info->stream.avail_in -= uDoCopy;
+ pfile_in_zip_read_info->stream.avail_out -= uDoCopy;
+ pfile_in_zip_read_info->stream.next_out += uDoCopy;
+ pfile_in_zip_read_info->stream.next_in += uDoCopy;
+ pfile_in_zip_read_info->stream.total_out += uDoCopy;
+ iRead += uDoCopy;
+ }
+ else if (pfile_in_zip_read_info->compression_method==Z_BZIP2ED)
+ {
+#ifdef HAVE_BZIP2
+ uLong uTotalOutBefore,uTotalOutAfter;
+ const Bytef *bufBefore;
+ uLong uOutThis;
+
+ pfile_in_zip_read_info->bstream.next_in = (char*)pfile_in_zip_read_info->stream.next_in;
+ pfile_in_zip_read_info->bstream.avail_in = pfile_in_zip_read_info->stream.avail_in;
+ pfile_in_zip_read_info->bstream.total_in_lo32 = pfile_in_zip_read_info->stream.total_in;
+ pfile_in_zip_read_info->bstream.total_in_hi32 = 0;
+ pfile_in_zip_read_info->bstream.next_out = (char*)pfile_in_zip_read_info->stream.next_out;
+ pfile_in_zip_read_info->bstream.avail_out = pfile_in_zip_read_info->stream.avail_out;
+ pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out;
+ pfile_in_zip_read_info->bstream.total_out_hi32 = 0;
+
+ uTotalOutBefore = pfile_in_zip_read_info->bstream.total_out_lo32;
+ bufBefore = (const Bytef *)pfile_in_zip_read_info->bstream.next_out;
+
+ err=BZ2_bzDecompress(&pfile_in_zip_read_info->bstream);
+
+ uTotalOutAfter = pfile_in_zip_read_info->bstream.total_out_lo32;
+ uOutThis = uTotalOutAfter-uTotalOutBefore;
+
+ pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
+
+ pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis));
+ pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis;
+ iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
+
+ pfile_in_zip_read_info->stream.next_in = (Bytef*)pfile_in_zip_read_info->bstream.next_in;
+ pfile_in_zip_read_info->stream.avail_in = pfile_in_zip_read_info->bstream.avail_in;
+ pfile_in_zip_read_info->stream.total_in = pfile_in_zip_read_info->bstream.total_in_lo32;
+ pfile_in_zip_read_info->stream.next_out = (Bytef*)pfile_in_zip_read_info->bstream.next_out;
+ pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out;
+ pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32;
+
+ if (err==BZ_STREAM_END)
+ return (iRead==0) ? UNZ_EOF : iRead;
+ if (err!=BZ_OK)
+ break;
+#endif
+ } // end Z_BZIP2ED
+ else
+ {
+ ZPOS64_T uTotalOutBefore,uTotalOutAfter;
+ const Bytef *bufBefore;
+ ZPOS64_T uOutThis;
+ int flush=Z_SYNC_FLUSH;
+
+ uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
+ bufBefore = pfile_in_zip_read_info->stream.next_out;
+
+ /*
+ if ((pfile_in_zip_read_info->rest_read_uncompressed ==
+ pfile_in_zip_read_info->stream.avail_out) &&
+ (pfile_in_zip_read_info->rest_read_compressed == 0))
+ flush = Z_FINISH;
+ */
+ err=inflate(&pfile_in_zip_read_info->stream,flush);
+
+ if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL))
+ err = Z_DATA_ERROR;
+
+ uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
+ uOutThis = uTotalOutAfter-uTotalOutBefore;
+
+ pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
+
+ pfile_in_zip_read_info->crc32 =
+ crc32(pfile_in_zip_read_info->crc32,bufBefore,
+ (uInt)(uOutThis));
+
+ pfile_in_zip_read_info->rest_read_uncompressed -=
+ uOutThis;
+
+ iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
+
+ if (err==Z_STREAM_END)
+ return (iRead==0) ? UNZ_EOF : iRead;
+ if (err!=Z_OK)
+ break;
+ }
+ }
+
+ if (err==Z_OK)
+ return iRead;
+ return err;
+}
+
+
+/*
+ Give the current position in uncompressed data
+*/
+extern z_off_t ZEXPORT unztell (unzFile file)
+{
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_PARAMERROR;
+
+ return (z_off_t)pfile_in_zip_read_info->stream.total_out;
+}
+
+extern ZPOS64_T ZEXPORT unztell64 (unzFile file)
+{
+
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ if (file==NULL)
+ return (ZPOS64_T)-1;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return (ZPOS64_T)-1;
+
+ return pfile_in_zip_read_info->total_out_64;
+}
+
+
+/*
+ return 1 if the end of file was reached, 0 elsewhere
+*/
+extern int ZEXPORT unzeof (unzFile file)
+{
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_PARAMERROR;
+
+ if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
+ return 1;
+ else
+ return 0;
+}
+
+
+
+/*
+Read extra field from the current file (opened by unzOpenCurrentFile)
+This is the local-header version of the extra field (sometimes, there is
+more info in the local-header version than in the central-header)
+
+ if buf==NULL, it return the size of the local extra field that can be read
+
+ if buf!=NULL, len is the size of the buffer, the extra header is copied in
+ buf.
+ the return value is the number of bytes copied in buf, or (if <0)
+ the error code
+*/
+extern int ZEXPORT unzGetLocalExtrafield (unzFile file, voidp buf, unsigned len)
+{
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ uInt read_now;
+ ZPOS64_T size_to_read;
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_PARAMERROR;
+
+ size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
+ pfile_in_zip_read_info->pos_local_extrafield);
+
+ if (buf==NULL)
+ return (int)size_to_read;
+
+ if (len>size_to_read)
+ read_now = (uInt)size_to_read;
+ else
+ read_now = (uInt)len ;
+
+ if (read_now==0)
+ return 0;
+
+ if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
+ pfile_in_zip_read_info->filestream,
+ pfile_in_zip_read_info->offset_local_extrafield +
+ pfile_in_zip_read_info->pos_local_extrafield,
+ ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return UNZ_ERRNO;
+
+ if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
+ pfile_in_zip_read_info->filestream,
+ buf,read_now)!=read_now)
+ return UNZ_ERRNO;
+
+ return (int)read_now;
+}
+
+/*
+ Close the file in zip opened with unzOpenCurrentFile
+ Return UNZ_CRCERROR if all the file was read but the CRC is not good
+*/
+extern int ZEXPORT unzCloseCurrentFile (unzFile file)
+{
+ int err=UNZ_OK;
+
+ unz64_s* s;
+ file_in_zip64_read_info_s* pfile_in_zip_read_info;
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+ if (pfile_in_zip_read_info==NULL)
+ return UNZ_PARAMERROR;
+
+
+ if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
+ (!pfile_in_zip_read_info->raw))
+ {
+ if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
+ err=UNZ_CRCERROR;
+ }
+
+
+ TRYFREE(pfile_in_zip_read_info->read_buffer);
+ pfile_in_zip_read_info->read_buffer = NULL;
+ if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED)
+ inflateEnd(&pfile_in_zip_read_info->stream);
+#ifdef HAVE_BZIP2
+ else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED)
+ BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream);
+#endif
+
+
+ pfile_in_zip_read_info->stream_initialised = 0;
+ TRYFREE(pfile_in_zip_read_info);
+
+ s->pfile_in_zip_read=NULL;
+
+ return err;
+}
+
+
+/*
+ Get the global comment string of the ZipFile, in the szComment buffer.
+ uSizeBuf is the size of the szComment buffer.
+ return the number of byte copied or an error code <0
+*/
+extern int ZEXPORT unzGetGlobalComment (unzFile file, char * szComment, uLong uSizeBuf)
+{
+ unz64_s* s;
+ uLong uReadThis ;
+ if (file==NULL)
+ return (int)UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+
+ uReadThis = uSizeBuf;
+ if (uReadThis>s->gi.size_comment)
+ uReadThis = s->gi.size_comment;
+
+ if (ZSEEK64(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return UNZ_ERRNO;
+
+ if (uReadThis>0)
+ {
+ *szComment='\0';
+ if (ZREAD64(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis)
+ return UNZ_ERRNO;
+ }
+
+ if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))
+ *(szComment+s->gi.size_comment)='\0';
+ return (int)uReadThis;
+}
+
+/* Additions by RX '2004 */
+extern ZPOS64_T ZEXPORT unzGetOffset64(unzFile file)
+{
+ unz64_s* s;
+
+ if (file==NULL)
+ return 0; //UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+ if (!s->current_file_ok)
+ return 0;
+ if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff)
+ if (s->num_file==s->gi.number_entry)
+ return 0;
+ return s->pos_in_central_dir;
+}
+
+extern uLong ZEXPORT unzGetOffset (unzFile file)
+{
+ ZPOS64_T offset64;
+
+ if (file==NULL)
+ return 0; //UNZ_PARAMERROR;
+ offset64 = unzGetOffset64(file);
+ return (uLong)offset64;
+}
+
+extern int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos)
+{
+ unz64_s* s;
+ int err;
+
+ if (file==NULL)
+ return UNZ_PARAMERROR;
+ s=(unz64_s*)file;
+
+ s->pos_in_central_dir = pos;
+ s->num_file = s->gi.number_entry; /* hack */
+ err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+ &s->cur_file_info_internal,
+ NULL,0,NULL,0,NULL,0);
+ s->current_file_ok = (err == UNZ_OK);
+ return err;
+}
+
+extern int ZEXPORT unzSetOffset (unzFile file, uLong pos)
+{
+ return unzSetOffset64(file,pos);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.h
new file mode 100644
index 000000000..2104e3915
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/unzip.h
@@ -0,0 +1,437 @@
+/* unzip.h -- IO for uncompress .zip files using zlib
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications of Unzip for Zip64
+ Copyright (C) 2007-2008 Even Rouault
+
+ Modifications for Zip64 support on both zip and unzip
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+ ---------------------------------------------------------------------------------
+
+ Condition of use and distribution are the same than zlib :
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ ---------------------------------------------------------------------------------
+
+ Changes
+
+ See header of unzip64.c
+
+*/
+
+#ifndef _unz64_H
+#define _unz64_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _ZLIB_H
+#include "zlib.h"
+#endif
+
+#ifndef _ZLIBIOAPI_H
+#include "ioapi.h"
+#endif
+
+#ifdef HAVE_BZIP2
+#include "bzlib.h"
+#endif
+
+#define Z_BZIP2ED 12
+
+#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
+/* like the STRICT of WIN32, we define a pointer that cannot be converted
+ from (void*) without cast */
+typedef struct TagunzFile__ { int unused; } unzFile__;
+typedef unzFile__ *unzFile;
+#else
+typedef voidp unzFile;
+#endif
+
+
+#define UNZ_OK (0)
+#define UNZ_END_OF_LIST_OF_FILE (-100)
+#define UNZ_ERRNO (Z_ERRNO)
+#define UNZ_EOF (0)
+#define UNZ_PARAMERROR (-102)
+#define UNZ_BADZIPFILE (-103)
+#define UNZ_INTERNALERROR (-104)
+#define UNZ_CRCERROR (-105)
+
+/* tm_unz contain date/time info */
+typedef struct tm_unz_s
+{
+ uInt tm_sec; /* seconds after the minute - [0,59] */
+ uInt tm_min; /* minutes after the hour - [0,59] */
+ uInt tm_hour; /* hours since midnight - [0,23] */
+ uInt tm_mday; /* day of the month - [1,31] */
+ uInt tm_mon; /* months since January - [0,11] */
+ uInt tm_year; /* years - [1980..2044] */
+} tm_unz;
+
+/* unz_global_info structure contain global data about the ZIPfile
+ These data comes from the end of central dir */
+typedef struct unz_global_info64_s
+{
+ ZPOS64_T number_entry; /* total number of entries in
+ the central dir on this disk */
+ uLong size_comment; /* size of the global comment of the zipfile */
+} unz_global_info64;
+
+typedef struct unz_global_info_s
+{
+ uLong number_entry; /* total number of entries in
+ the central dir on this disk */
+ uLong size_comment; /* size of the global comment of the zipfile */
+} unz_global_info;
+
+/* unz_file_info contain information about a file in the zipfile */
+typedef struct unz_file_info64_s
+{
+ uLong version; /* version made by 2 bytes */
+ uLong version_needed; /* version needed to extract 2 bytes */
+ uLong flag; /* general purpose bit flag 2 bytes */
+ uLong compression_method; /* compression method 2 bytes */
+ uLong dosDate; /* last mod file date in Dos fmt 4 bytes */
+ uLong crc; /* crc-32 4 bytes */
+ ZPOS64_T compressed_size; /* compressed size 8 bytes */
+ ZPOS64_T uncompressed_size; /* uncompressed size 8 bytes */
+ uLong size_filename; /* filename length 2 bytes */
+ uLong size_file_extra; /* extra field length 2 bytes */
+ uLong size_file_comment; /* file comment length 2 bytes */
+
+ uLong disk_num_start; /* disk number start 2 bytes */
+ uLong internal_fa; /* internal file attributes 2 bytes */
+ uLong external_fa; /* external file attributes 4 bytes */
+
+ tm_unz tmu_date;
+} unz_file_info64;
+
+typedef struct unz_file_info_s
+{
+ uLong version; /* version made by 2 bytes */
+ uLong version_needed; /* version needed to extract 2 bytes */
+ uLong flag; /* general purpose bit flag 2 bytes */
+ uLong compression_method; /* compression method 2 bytes */
+ uLong dosDate; /* last mod file date in Dos fmt 4 bytes */
+ uLong crc; /* crc-32 4 bytes */
+ uLong compressed_size; /* compressed size 4 bytes */
+ uLong uncompressed_size; /* uncompressed size 4 bytes */
+ uLong size_filename; /* filename length 2 bytes */
+ uLong size_file_extra; /* extra field length 2 bytes */
+ uLong size_file_comment; /* file comment length 2 bytes */
+
+ uLong disk_num_start; /* disk number start 2 bytes */
+ uLong internal_fa; /* internal file attributes 2 bytes */
+ uLong external_fa; /* external file attributes 4 bytes */
+
+ tm_unz tmu_date;
+} unz_file_info;
+
+extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
+ const char* fileName2,
+ int iCaseSensitivity));
+/*
+ Compare two filename (fileName1,fileName2).
+ If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
+ If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
+ or strcasecmp)
+ If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
+ (like 1 on Unix, 2 on Windows)
+*/
+
+
+extern unzFile ZEXPORT unzOpen OF((const char *path));
+extern unzFile ZEXPORT unzOpen64 OF((const void *path));
+/*
+ Open a Zip file. path contain the full pathname (by example,
+ on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer
+ "zlib/zlib113.zip".
+ If the zipfile cannot be opened (file don't exist or in not valid), the
+ return value is NULL.
+ Else, the return value is a unzFile Handle, usable with other function
+ of this unzip package.
+ the "64" function take a const void* pointer, because the path is just the
+ value passed to the open64_file_func callback.
+ Under Windows, if UNICODE is defined, using fill_fopen64_filefunc, the path
+ is a pointer to a wide unicode string (LPCTSTR is LPCWSTR), so const char*
+ does not describe the reality
+*/
+
+
+extern unzFile ZEXPORT unzOpen2 OF((const char *path,
+ zlib_filefunc_def* pzlib_filefunc_def));
+/*
+ Open a Zip file, like unzOpen, but provide a set of file low level API
+ for read/write the zip file (see ioapi.h)
+*/
+
+extern unzFile ZEXPORT unzOpen2_64 OF((const void *path,
+ zlib_filefunc64_def* pzlib_filefunc_def));
+/*
+ Open a Zip file, like unz64Open, but provide a set of file low level API
+ for read/write the zip file (see ioapi.h)
+*/
+
+extern int ZEXPORT unzClose OF((unzFile file));
+/*
+ Close a ZipFile opened with unzOpen.
+ If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
+ these files MUST be closed with unzCloseCurrentFile before call unzClose.
+ return UNZ_OK if there is no problem. */
+
+extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
+ unz_global_info *pglobal_info));
+
+extern int ZEXPORT unzGetGlobalInfo64 OF((unzFile file,
+ unz_global_info64 *pglobal_info));
+/*
+ Write info about the ZipFile in the *pglobal_info structure.
+ No preparation of the structure is needed
+ return UNZ_OK if there is no problem. */
+
+
+extern int ZEXPORT unzGetGlobalComment OF((unzFile file,
+ char *szComment,
+ uLong uSizeBuf));
+/*
+ Get the global comment string of the ZipFile, in the szComment buffer.
+ uSizeBuf is the size of the szComment buffer.
+ return the number of byte copied or an error code <0
+*/
+
+
+/***************************************************************************/
+/* Unzip package allow you browse the directory of the zipfile */
+
+extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
+/*
+ Set the current file of the zipfile to the first file.
+ return UNZ_OK if there is no problem
+*/
+
+extern int ZEXPORT unzGoToNextFile OF((unzFile file));
+/*
+ Set the current file of the zipfile to the next file.
+ return UNZ_OK if there is no problem
+ return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
+*/
+
+extern int ZEXPORT unzLocateFile OF((unzFile file,
+ const char *szFileName,
+ int iCaseSensitivity));
+/*
+ Try locate the file szFileName in the zipfile.
+ For the iCaseSensitivity signification, see unzStringFileNameCompare
+
+ return value :
+ UNZ_OK if the file is found. It becomes the current file.
+ UNZ_END_OF_LIST_OF_FILE if the file is not found
+*/
+
+
+/* ****************************************** */
+/* Ryan supplied functions */
+/* unz_file_info contain information about a file in the zipfile */
+typedef struct unz_file_pos_s
+{
+ uLong pos_in_zip_directory; /* offset in zip file directory */
+ uLong num_of_file; /* # of file */
+} unz_file_pos;
+
+extern int ZEXPORT unzGetFilePos(
+ unzFile file,
+ unz_file_pos* file_pos);
+
+extern int ZEXPORT unzGoToFilePos(
+ unzFile file,
+ unz_file_pos* file_pos);
+
+typedef struct unz64_file_pos_s
+{
+ ZPOS64_T pos_in_zip_directory; /* offset in zip file directory */
+ ZPOS64_T num_of_file; /* # of file */
+} unz64_file_pos;
+
+extern int ZEXPORT unzGetFilePos64(
+ unzFile file,
+ unz64_file_pos* file_pos);
+
+extern int ZEXPORT unzGoToFilePos64(
+ unzFile file,
+ const unz64_file_pos* file_pos);
+
+/* ****************************************** */
+
+extern int ZEXPORT unzGetCurrentFileInfo64 OF((unzFile file,
+ unz_file_info64 *pfile_info,
+ char *szFileName,
+ uLong fileNameBufferSize,
+ void *extraField,
+ uLong extraFieldBufferSize,
+ char *szComment,
+ uLong commentBufferSize));
+
+extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
+ unz_file_info *pfile_info,
+ char *szFileName,
+ uLong fileNameBufferSize,
+ void *extraField,
+ uLong extraFieldBufferSize,
+ char *szComment,
+ uLong commentBufferSize));
+/*
+ Get Info about the current file
+ if pfile_info!=NULL, the *pfile_info structure will contain somes info about
+ the current file
+ if szFileName!=NULL, the filemane string will be copied in szFileName
+ (fileNameBufferSize is the size of the buffer)
+ if extraField!=NULL, the extra field information will be copied in extraField
+ (extraFieldBufferSize is the size of the buffer).
+ This is the Central-header version of the extra field
+ if szComment!=NULL, the comment string of the file will be copied in szComment
+ (commentBufferSize is the size of the buffer)
+*/
+
+
+/** Addition for GDAL : START */
+
+extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 OF((unzFile file));
+
+/** Addition for GDAL : END */
+
+
+/***************************************************************************/
+/* for reading the content of the current zipfile, you can open it, read data
+ from it, and close it (you can close it before reading all the file)
+ */
+
+extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
+/*
+ Open for reading data the current file in the zipfile.
+ If there is no error, the return value is UNZ_OK.
+*/
+
+extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file,
+ const char* password));
+/*
+ Open for reading data the current file in the zipfile.
+ password is a crypting password
+ If there is no error, the return value is UNZ_OK.
+*/
+
+extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file,
+ int* method,
+ int* level,
+ int raw));
+/*
+ Same than unzOpenCurrentFile, but open for read raw the file (not uncompress)
+ if raw==1
+ *method will receive method of compression, *level will receive level of
+ compression
+ note : you can set level parameter as NULL (if you did not want known level,
+ but you CANNOT set method parameter as NULL
+*/
+
+extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file,
+ int* method,
+ int* level,
+ int raw,
+ const char* password));
+/*
+ Same than unzOpenCurrentFile, but open for read raw the file (not uncompress)
+ if raw==1
+ *method will receive method of compression, *level will receive level of
+ compression
+ note : you can set level parameter as NULL (if you did not want known level,
+ but you CANNOT set method parameter as NULL
+*/
+
+
+extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
+/*
+ Close the file in zip opened with unzOpenCurrentFile
+ Return UNZ_CRCERROR if all the file was read but the CRC is not good
+*/
+
+extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
+ voidp buf,
+ unsigned len));
+/*
+ Read bytes from the current file (opened by unzOpenCurrentFile)
+ buf contain buffer where data must be copied
+ len the size of buf.
+
+ return the number of byte copied if somes bytes are copied
+ return 0 if the end of file was reached
+ return <0 with error code if there is an error
+ (UNZ_ERRNO for IO error, or zLib error for uncompress error)
+*/
+
+extern z_off_t ZEXPORT unztell OF((unzFile file));
+
+extern ZPOS64_T ZEXPORT unztell64 OF((unzFile file));
+/*
+ Give the current position in uncompressed data
+*/
+
+extern int ZEXPORT unzeof OF((unzFile file));
+/*
+ return 1 if the end of file was reached, 0 elsewhere
+*/
+
+extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
+ voidp buf,
+ unsigned len));
+/*
+ Read extra field from the current file (opened by unzOpenCurrentFile)
+ This is the local-header version of the extra field (sometimes, there is
+ more info in the local-header version than in the central-header)
+
+ if buf==NULL, it return the size of the local extra field
+
+ if buf!=NULL, len is the size of the buffer, the extra header is copied in
+ buf.
+ the return value is the number of bytes copied in buf, or (if <0)
+ the error code
+*/
+
+/***************************************************************************/
+
+/* Get the current file offset */
+extern ZPOS64_T ZEXPORT unzGetOffset64 (unzFile file);
+extern uLong ZEXPORT unzGetOffset (unzFile file);
+
+/* Set the current file offset */
+extern int ZEXPORT unzSetOffset64 (unzFile file, ZPOS64_T pos);
+extern int ZEXPORT unzSetOffset (unzFile file, uLong pos);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _unz64_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.c
new file mode 100644
index 000000000..44e88a9cb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.c
@@ -0,0 +1,2007 @@
+/* zip.c -- IO on .zip files using zlib
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+ Changes
+ Oct-2009 - Mathias Svensson - Remove old C style function prototypes
+ Oct-2009 - Mathias Svensson - Added Zip64 Support when creating new file archives
+ Oct-2009 - Mathias Svensson - Did some code cleanup and refactoring to get better overview of some functions.
+ Oct-2009 - Mathias Svensson - Added zipRemoveExtraInfoBlock to strip extra field data from its ZIP64 data
+ It is used when recreting zip archive with RAW when deleting items from a zip.
+ ZIP64 data is automatically added to items that needs it, and existing ZIP64 data need to be removed.
+ Oct-2009 - Mathias Svensson - Added support for BZIP2 as compression mode (bzip2 lib is required)
+ Jan-2010 - back to unzip and minizip 1.0 name scheme, with compatibility layer
+
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include "zlib.h"
+#include "zip.h"
+
+#ifdef STDC
+# include <stddef.h>
+# include <string.h>
+# include <stdlib.h>
+#endif
+#ifdef NO_ERRNO_H
+ extern int errno;
+#else
+# include <errno.h>
+#endif
+
+
+#ifndef local
+# define local static
+#endif
+/* compile with -Dlocal if your debugger can't find static symbols */
+
+#ifndef VERSIONMADEBY
+# define VERSIONMADEBY (0x0) /* platform depedent */
+#endif
+
+#ifndef Z_BUFSIZE
+#define Z_BUFSIZE (64*1024) //(16384)
+#endif
+
+#ifndef Z_MAXFILENAMEINZIP
+#define Z_MAXFILENAMEINZIP (256)
+#endif
+
+#ifndef ALLOC
+# define ALLOC(size) (malloc(size))
+#endif
+#ifndef TRYFREE
+# define TRYFREE(p) {if (p) free(p);}
+#endif
+
+/*
+#define SIZECENTRALDIRITEM (0x2e)
+#define SIZEZIPLOCALHEADER (0x1e)
+*/
+
+/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
+
+
+// NOT sure that this work on ALL platform
+#define MAKEULONG64(a, b) ((ZPOS64_T)(((unsigned long)(a)) | ((ZPOS64_T)((unsigned long)(b))) << 32))
+
+#ifndef SEEK_CUR
+#define SEEK_CUR 1
+#endif
+
+#ifndef SEEK_END
+#define SEEK_END 2
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#endif
+
+#ifndef DEF_MEM_LEVEL
+#if MAX_MEM_LEVEL >= 8
+# define DEF_MEM_LEVEL 8
+#else
+# define DEF_MEM_LEVEL MAX_MEM_LEVEL
+#endif
+#endif
+const char zip_copyright[] =" zip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
+
+
+#define SIZEDATA_INDATABLOCK (4096-(4*4))
+
+#define LOCALHEADERMAGIC (0x04034b50)
+#define CENTRALHEADERMAGIC (0x02014b50)
+#define ENDHEADERMAGIC (0x06054b50)
+#define ZIP64ENDHEADERMAGIC (0x6064b50)
+#define ZIP64ENDLOCHEADERMAGIC (0x7064b50)
+
+#define FLAG_LOCALHEADER_OFFSET (0x06)
+#define CRC_LOCALHEADER_OFFSET (0x0e)
+
+#define SIZECENTRALHEADER (0x2e) /* 46 */
+
+typedef struct linkedlist_datablock_internal_s
+{
+ struct linkedlist_datablock_internal_s* next_datablock;
+ uLong avail_in_this_block;
+ uLong filled_in_this_block;
+ uLong unused; /* for future use and alignment */
+ unsigned char data[SIZEDATA_INDATABLOCK];
+} linkedlist_datablock_internal;
+
+typedef struct linkedlist_data_s
+{
+ linkedlist_datablock_internal* first_block;
+ linkedlist_datablock_internal* last_block;
+} linkedlist_data;
+
+
+typedef struct
+{
+ z_stream stream; /* zLib stream structure for inflate */
+#ifdef HAVE_BZIP2
+ bz_stream bstream; /* bzLib stream structure for bziped */
+#endif
+
+ int stream_initialised; /* 1 is stream is initialised */
+ uInt pos_in_buffered_data; /* last written byte in buffered_data */
+
+ ZPOS64_T pos_local_header; /* offset of the local header of the file
+ currenty writing */
+ char* central_header; /* central header data for the current file */
+ uLong size_centralExtra;
+ uLong size_centralheader; /* size of the central header for cur file */
+ uLong size_centralExtraFree; /* Extra bytes allocated to the centralheader but that are not used */
+ uLong flag; /* flag of the file currently writing */
+
+ int method; /* compression method of file currenty wr.*/
+ int raw; /* 1 for directly writing raw data */
+ Byte buffered_data[Z_BUFSIZE];/* buffer contain compressed data to be writ*/
+ uLong dosDate;
+ uLong crc32;
+ int encrypt;
+ int zip64; /* Add ZIP64 extened information in the extra field */
+ ZPOS64_T pos_zip64extrainfo;
+ ZPOS64_T totalCompressedData;
+ ZPOS64_T totalUncompressedData;
+#ifndef NOCRYPT
+ unsigned long keys[3]; /* keys defining the pseudo-random sequence */
+ const z_crc_t* pcrc_32_tab;
+ int crypt_header_size;
+#endif
+} curfile64_info;
+
+typedef struct
+{
+ zlib_filefunc64_32_def z_filefunc;
+ voidpf filestream; /* io structore of the zipfile */
+ linkedlist_data central_dir;/* datablock with central dir in construction*/
+ int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/
+ curfile64_info ci; /* info on the file curretly writing */
+
+ ZPOS64_T begin_pos; /* position of the beginning of the zipfile */
+ ZPOS64_T add_position_when_writing_offset;
+ ZPOS64_T number_entry;
+
+#ifndef NO_ADDFILEINEXISTINGZIP
+ char *globalcomment;
+#endif
+
+} zip64_internal;
+
+
+#ifndef NOCRYPT
+#define INCLUDECRYPTINGCODE_IFCRYPTALLOWED
+#include "crypt.h"
+#endif
+
+local linkedlist_datablock_internal* allocate_new_datablock()
+{
+ linkedlist_datablock_internal* ldi;
+ ldi = (linkedlist_datablock_internal*)
+ ALLOC(sizeof(linkedlist_datablock_internal));
+ if (ldi!=NULL)
+ {
+ ldi->next_datablock = NULL ;
+ ldi->filled_in_this_block = 0 ;
+ ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ;
+ }
+ return ldi;
+}
+
+local void free_datablock(linkedlist_datablock_internal* ldi)
+{
+ while (ldi!=NULL)
+ {
+ linkedlist_datablock_internal* ldinext = ldi->next_datablock;
+ TRYFREE(ldi);
+ ldi = ldinext;
+ }
+}
+
+local void init_linkedlist(linkedlist_data* ll)
+{
+ ll->first_block = ll->last_block = NULL;
+}
+
+local void free_linkedlist(linkedlist_data* ll)
+{
+ free_datablock(ll->first_block);
+ ll->first_block = ll->last_block = NULL;
+}
+
+
+local int add_data_in_datablock(linkedlist_data* ll, const void* buf, uLong len)
+{
+ linkedlist_datablock_internal* ldi;
+ const unsigned char* from_copy;
+
+ if (ll==NULL)
+ return ZIP_INTERNALERROR;
+
+ if (ll->last_block == NULL)
+ {
+ ll->first_block = ll->last_block = allocate_new_datablock();
+ if (ll->first_block == NULL)
+ return ZIP_INTERNALERROR;
+ }
+
+ ldi = ll->last_block;
+ from_copy = (unsigned char*)buf;
+
+ while (len>0)
+ {
+ uInt copy_this;
+ uInt i;
+ unsigned char* to_copy;
+
+ if (ldi->avail_in_this_block==0)
+ {
+ ldi->next_datablock = allocate_new_datablock();
+ if (ldi->next_datablock == NULL)
+ return ZIP_INTERNALERROR;
+ ldi = ldi->next_datablock ;
+ ll->last_block = ldi;
+ }
+
+ if (ldi->avail_in_this_block < len)
+ copy_this = (uInt)ldi->avail_in_this_block;
+ else
+ copy_this = (uInt)len;
+
+ to_copy = &(ldi->data[ldi->filled_in_this_block]);
+
+ for (i=0;i<copy_this;i++)
+ *(to_copy+i)=*(from_copy+i);
+
+ ldi->filled_in_this_block += copy_this;
+ ldi->avail_in_this_block -= copy_this;
+ from_copy += copy_this ;
+ len -= copy_this;
+ }
+ return ZIP_OK;
+}
+
+
+
+/****************************************************************************/
+
+#ifndef NO_ADDFILEINEXISTINGZIP
+/* ===========================================================================
+ Inputs a long in LSB order to the given file
+ nbByte == 1, 2 ,4 or 8 (byte, short or long, ZPOS64_T)
+*/
+
+local int zip64local_putValue OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte));
+local int zip64local_putValue (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T x, int nbByte)
+{
+ unsigned char buf[8];
+ int n;
+ for (n = 0; n < nbByte; n++)
+ {
+ buf[n] = (unsigned char)(x & 0xff);
+ x >>= 8;
+ }
+ if (x != 0)
+ { /* data overflow - hack for ZIP64 (X Roche) */
+ for (n = 0; n < nbByte; n++)
+ {
+ buf[n] = 0xff;
+ }
+ }
+
+ if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte)
+ return ZIP_ERRNO;
+ else
+ return ZIP_OK;
+}
+
+local void zip64local_putValue_inmemory OF((void* dest, ZPOS64_T x, int nbByte));
+local void zip64local_putValue_inmemory (void* dest, ZPOS64_T x, int nbByte)
+{
+ unsigned char* buf=(unsigned char*)dest;
+ int n;
+ for (n = 0; n < nbByte; n++) {
+ buf[n] = (unsigned char)(x & 0xff);
+ x >>= 8;
+ }
+
+ if (x != 0)
+ { /* data overflow - hack for ZIP64 */
+ for (n = 0; n < nbByte; n++)
+ {
+ buf[n] = 0xff;
+ }
+ }
+}
+
+/****************************************************************************/
+
+
+local uLong zip64local_TmzDateToDosDate(const tm_zip* ptm)
+{
+ uLong year = (uLong)ptm->tm_year;
+ if (year>=1980)
+ year-=1980;
+ else if (year>=80)
+ year-=80;
+ return
+ (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) |
+ ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
+}
+
+
+/****************************************************************************/
+
+local int zip64local_getByte OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, int *pi));
+
+local int zip64local_getByte(const zlib_filefunc64_32_def* pzlib_filefunc_def,voidpf filestream,int* pi)
+{
+ unsigned char c;
+ int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
+ if (err==1)
+ {
+ *pi = (int)c;
+ return ZIP_OK;
+ }
+ else
+ {
+ if (ZERROR64(*pzlib_filefunc_def,filestream))
+ return ZIP_ERRNO;
+ else
+ return ZIP_EOF;
+ }
+}
+
+
+/* ===========================================================================
+ Reads a long in LSB order from the given gz_stream. Sets
+*/
+local int zip64local_getShort OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX));
+
+local int zip64local_getShort (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX)
+{
+ uLong x ;
+ int i = 0;
+ int err;
+
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (uLong)i;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((uLong)i)<<8;
+
+ if (err==ZIP_OK)
+ *pX = x;
+ else
+ *pX = 0;
+ return err;
+}
+
+local int zip64local_getLong OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong *pX));
+
+local int zip64local_getLong (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, uLong* pX)
+{
+ uLong x ;
+ int i = 0;
+ int err;
+
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (uLong)i;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((uLong)i)<<8;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((uLong)i)<<16;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((uLong)i)<<24;
+
+ if (err==ZIP_OK)
+ *pX = x;
+ else
+ *pX = 0;
+ return err;
+}
+
+local int zip64local_getLong64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX));
+
+
+local int zip64local_getLong64 (const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
+{
+ ZPOS64_T x;
+ int i = 0;
+ int err;
+
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x = (ZPOS64_T)i;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<8;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<16;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<24;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<32;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<40;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<48;
+
+ if (err==ZIP_OK)
+ err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
+ x += ((ZPOS64_T)i)<<56;
+
+ if (err==ZIP_OK)
+ *pX = x;
+ else
+ *pX = 0;
+
+ return err;
+}
+
+#ifndef BUFREADCOMMENT
+#define BUFREADCOMMENT (0x400)
+#endif
+/*
+ Locate the Central directory of a zipfile (at the end, just before
+ the global comment)
+*/
+local ZPOS64_T zip64local_SearchCentralDir OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream));
+
+local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)
+{
+ unsigned char* buf;
+ ZPOS64_T uSizeFile;
+ ZPOS64_T uBackRead;
+ ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+ ZPOS64_T uPosFound=0;
+
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+ return 0;
+
+
+ uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+ if (uMaxBack>uSizeFile)
+ uMaxBack = uSizeFile;
+
+ buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+ if (buf==NULL)
+ return 0;
+
+ uBackRead = 4;
+ while (uBackRead<uMaxBack)
+ {
+ uLong uReadSize;
+ ZPOS64_T uReadPos ;
+ int i;
+ if (uBackRead+BUFREADCOMMENT>uMaxBack)
+ uBackRead = uMaxBack;
+ else
+ uBackRead+=BUFREADCOMMENT;
+ uReadPos = uSizeFile-uBackRead ;
+
+ uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+ (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ break;
+
+ if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+ break;
+
+ for (i=(int)uReadSize-3; (i--)>0;)
+ if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
+ ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
+ {
+ uPosFound = uReadPos+i;
+ break;
+ }
+
+ if (uPosFound!=0)
+ break;
+ }
+ TRYFREE(buf);
+ return uPosFound;
+}
+
+/*
+Locate the End of Zip64 Central directory locator and from there find the CD of a zipfile (at the end, just before
+the global comment)
+*/
+local ZPOS64_T zip64local_SearchCentralDir64 OF((const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream));
+
+local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def* pzlib_filefunc_def, voidpf filestream)
+{
+ unsigned char* buf;
+ ZPOS64_T uSizeFile;
+ ZPOS64_T uBackRead;
+ ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+ ZPOS64_T uPosFound=0;
+ uLong uL;
+ ZPOS64_T relativeOffset;
+
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+ return 0;
+
+ uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+ if (uMaxBack>uSizeFile)
+ uMaxBack = uSizeFile;
+
+ buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+ if (buf==NULL)
+ return 0;
+
+ uBackRead = 4;
+ while (uBackRead<uMaxBack)
+ {
+ uLong uReadSize;
+ ZPOS64_T uReadPos;
+ int i;
+ if (uBackRead+BUFREADCOMMENT>uMaxBack)
+ uBackRead = uMaxBack;
+ else
+ uBackRead+=BUFREADCOMMENT;
+ uReadPos = uSizeFile-uBackRead ;
+
+ uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+ (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+ if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ break;
+
+ if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+ break;
+
+ for (i=(int)uReadSize-3; (i--)>0;)
+ {
+ // Signature "0x07064b50" Zip64 end of central directory locater
+ if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
+ {
+ uPosFound = uReadPos+i;
+ break;
+ }
+ }
+
+ if (uPosFound!=0)
+ break;
+ }
+
+ TRYFREE(buf);
+ if (uPosFound == 0)
+ return 0;
+
+ /* Zip64 end of central directory locator */
+ if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return 0;
+
+ /* the signature, already checked */
+ if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
+ return 0;
+
+ /* number of the disk with the start of the zip64 end of central directory */
+ if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
+ return 0;
+ if (uL != 0)
+ return 0;
+
+ /* relative offset of the zip64 end of central directory record */
+ if (zip64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=ZIP_OK)
+ return 0;
+
+ /* total number of disks */
+ if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
+ return 0;
+ if (uL != 1)
+ return 0;
+
+ /* Goto Zip64 end of central directory record */
+ if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ return 0;
+
+ /* the signature */
+ if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
+ return 0;
+
+ if (uL != 0x06064b50) // signature of 'Zip64 end of central directory'
+ return 0;
+
+ return relativeOffset;
+}
+
+int LoadCentralDirectoryRecord(zip64_internal* pziinit)
+{
+ int err=ZIP_OK;
+ ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
+
+ ZPOS64_T size_central_dir; /* size of the central directory */
+ ZPOS64_T offset_central_dir; /* offset of start of central directory */
+ ZPOS64_T central_pos;
+ uLong uL;
+
+ uLong number_disk; /* number of the current dist, used for
+ spaning ZIP, unsupported, always 0*/
+ uLong number_disk_with_CD; /* number the the disk with central dir, used
+ for spaning ZIP, unsupported, always 0*/
+ ZPOS64_T number_entry;
+ ZPOS64_T number_entry_CD; /* total number of entries in
+ the central dir
+ (same than number_entry on nospan) */
+ uLong VersionMadeBy;
+ uLong VersionNeeded;
+ uLong size_comment;
+
+ int hasZIP64Record = 0;
+
+ // check first if we find a ZIP64 record
+ central_pos = zip64local_SearchCentralDir64(&pziinit->z_filefunc,pziinit->filestream);
+ if(central_pos > 0)
+ {
+ hasZIP64Record = 1;
+ }
+ else if(central_pos == 0)
+ {
+ central_pos = zip64local_SearchCentralDir(&pziinit->z_filefunc,pziinit->filestream);
+ }
+
+/* disable to allow appending to empty ZIP archive
+ if (central_pos==0)
+ err=ZIP_ERRNO;
+*/
+
+ if(hasZIP64Record)
+ {
+ ZPOS64_T sizeEndOfCentralDirectory;
+ if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
+ err=ZIP_ERRNO;
+
+ /* the signature, already checked */
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* size of zip64 end of central directory record */
+ if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &sizeEndOfCentralDirectory)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* version made by */
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionMadeBy)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* version needed to extract */
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionNeeded)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* number of this disk */
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* number of the disk with the start of the central directory */
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* total number of entries in the central directory on this disk */
+ if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &number_entry)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* total number of entries in the central directory */
+ if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&number_entry_CD)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))
+ err=ZIP_BADZIPFILE;
+
+ /* size of the central directory */
+ if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&size_central_dir)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* offset of start of central directory with respect to the
+ starting disk number */
+ if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&offset_central_dir)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ // TODO..
+ // read the comment from the standard central header.
+ size_comment = 0;
+ }
+ else
+ {
+ // Read End of central Directory info
+ if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err=ZIP_ERRNO;
+
+ /* the signature, already checked */
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* number of this disk */
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* number of the disk with the start of the central directory */
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK)
+ err=ZIP_ERRNO;
+
+ /* total number of entries in the central dir on this disk */
+ number_entry = 0;
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+ else
+ number_entry = uL;
+
+ /* total number of entries in the central dir */
+ number_entry_CD = 0;
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+ else
+ number_entry_CD = uL;
+
+ if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))
+ err=ZIP_BADZIPFILE;
+
+ /* size of the central directory */
+ size_central_dir = 0;
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+ else
+ size_central_dir = uL;
+
+ /* offset of start of central directory with respect to the starting disk number */
+ offset_central_dir = 0;
+ if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
+ err=ZIP_ERRNO;
+ else
+ offset_central_dir = uL;
+
+
+ /* zipfile global comment length */
+ if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &size_comment)!=ZIP_OK)
+ err=ZIP_ERRNO;
+ }
+
+ if ((central_pos<offset_central_dir+size_central_dir) &&
+ (err==ZIP_OK))
+ err=ZIP_BADZIPFILE;
+
+ if (err!=ZIP_OK)
+ {
+ ZCLOSE64(pziinit->z_filefunc, pziinit->filestream);
+ return ZIP_ERRNO;
+ }
+
+ if (size_comment>0)
+ {
+ pziinit->globalcomment = (char*)ALLOC(size_comment+1);
+ if (pziinit->globalcomment)
+ {
+ size_comment = ZREAD64(pziinit->z_filefunc, pziinit->filestream, pziinit->globalcomment,size_comment);
+ pziinit->globalcomment[size_comment]=0;
+ }
+ }
+
+ byte_before_the_zipfile = central_pos - (offset_central_dir+size_central_dir);
+ pziinit->add_position_when_writing_offset = byte_before_the_zipfile;
+
+ {
+ ZPOS64_T size_central_dir_to_read = size_central_dir;
+ size_t buf_size = SIZEDATA_INDATABLOCK;
+ void* buf_read = (void*)ALLOC(buf_size);
+ if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
+ err=ZIP_ERRNO;
+
+ while ((size_central_dir_to_read>0) && (err==ZIP_OK))
+ {
+ ZPOS64_T read_this = SIZEDATA_INDATABLOCK;
+ if (read_this > size_central_dir_to_read)
+ read_this = size_central_dir_to_read;
+
+ if (ZREAD64(pziinit->z_filefunc, pziinit->filestream,buf_read,(uLong)read_this) != read_this)
+ err=ZIP_ERRNO;
+
+ if (err==ZIP_OK)
+ err = add_data_in_datablock(&pziinit->central_dir,buf_read, (uLong)read_this);
+
+ size_central_dir_to_read-=read_this;
+ }
+ TRYFREE(buf_read);
+ }
+ pziinit->begin_pos = byte_before_the_zipfile;
+ pziinit->number_entry = number_entry_CD;
+
+ if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET) != 0)
+ err=ZIP_ERRNO;
+
+ return err;
+}
+
+
+#endif /* !NO_ADDFILEINEXISTINGZIP*/
+
+
+/************************************************************/
+extern zipFile ZEXPORT zipOpen3 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_32_def* pzlib_filefunc64_32_def)
+{
+ zip64_internal ziinit;
+ zip64_internal* zi;
+ int err=ZIP_OK;
+
+ ziinit.z_filefunc.zseek32_file = NULL;
+ ziinit.z_filefunc.ztell32_file = NULL;
+ if (pzlib_filefunc64_32_def==NULL)
+ fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64);
+ else
+ ziinit.z_filefunc = *pzlib_filefunc64_32_def;
+
+ ziinit.filestream = ZOPEN64(ziinit.z_filefunc,
+ pathname,
+ (append == APPEND_STATUS_CREATE) ?
+ (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE) :
+ (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING));
+
+ if (ziinit.filestream == NULL)
+ return NULL;
+
+ if (append == APPEND_STATUS_CREATEAFTER)
+ ZSEEK64(ziinit.z_filefunc,ziinit.filestream,0,SEEK_END);
+
+ ziinit.begin_pos = ZTELL64(ziinit.z_filefunc,ziinit.filestream);
+ ziinit.in_opened_file_inzip = 0;
+ ziinit.ci.stream_initialised = 0;
+ ziinit.number_entry = 0;
+ ziinit.add_position_when_writing_offset = 0;
+ init_linkedlist(&(ziinit.central_dir));
+
+
+
+ zi = (zip64_internal*)ALLOC(sizeof(zip64_internal));
+ if (zi==NULL)
+ {
+ ZCLOSE64(ziinit.z_filefunc,ziinit.filestream);
+ return NULL;
+ }
+
+ /* now we add file in a zipfile */
+# ifndef NO_ADDFILEINEXISTINGZIP
+ ziinit.globalcomment = NULL;
+ if (append == APPEND_STATUS_ADDINZIP)
+ {
+ // Read and Cache Central Directory Records
+ err = LoadCentralDirectoryRecord(&ziinit);
+ }
+
+ if (globalcomment)
+ {
+ *globalcomment = ziinit.globalcomment;
+ }
+# endif /* !NO_ADDFILEINEXISTINGZIP*/
+
+ if (err != ZIP_OK)
+ {
+# ifndef NO_ADDFILEINEXISTINGZIP
+ TRYFREE(ziinit.globalcomment);
+# endif /* !NO_ADDFILEINEXISTINGZIP*/
+ TRYFREE(zi);
+ return NULL;
+ }
+ else
+ {
+ *zi = ziinit;
+ return (zipFile)zi;
+ }
+}
+
+extern zipFile ZEXPORT zipOpen2 (const char *pathname, int append, zipcharpc* globalcomment, zlib_filefunc_def* pzlib_filefunc32_def)
+{
+ if (pzlib_filefunc32_def != NULL)
+ {
+ zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+ fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
+ return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);
+ }
+ else
+ return zipOpen3(pathname, append, globalcomment, NULL);
+}
+
+extern zipFile ZEXPORT zipOpen2_64 (const void *pathname, int append, zipcharpc* globalcomment, zlib_filefunc64_def* pzlib_filefunc_def)
+{
+ if (pzlib_filefunc_def != NULL)
+ {
+ zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+ zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
+ zlib_filefunc64_32_def_fill.ztell32_file = NULL;
+ zlib_filefunc64_32_def_fill.zseek32_file = NULL;
+ return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);
+ }
+ else
+ return zipOpen3(pathname, append, globalcomment, NULL);
+}
+
+
+
+extern zipFile ZEXPORT zipOpen (const char* pathname, int append)
+{
+ return zipOpen3((const void*)pathname,append,NULL,NULL);
+}
+
+extern zipFile ZEXPORT zipOpen64 (const void* pathname, int append)
+{
+ return zipOpen3(pathname,append,NULL,NULL);
+}
+
+int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local)
+{
+ /* write the local header */
+ int err;
+ uInt size_filename = (uInt)strlen(filename);
+ uInt size_extrafield = size_extrafield_local;
+
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC, 4);
+
+ if (err==ZIP_OK)
+ {
+ if(zi->ci.zip64)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);/* version needed to extract */
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */
+ }
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2);
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2);
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4);
+
+ // CRC / Compressed size / Uncompressed size will be filled in later and rewritten later
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */
+ if (err==ZIP_OK)
+ {
+ if(zi->ci.zip64)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* compressed size, unknown */
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */
+ }
+ if (err==ZIP_OK)
+ {
+ if(zi->ci.zip64)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* uncompressed size, unknown */
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */
+ }
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2);
+
+ if(zi->ci.zip64)
+ {
+ size_extrafield += 20;
+ }
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield,2);
+
+ if ((err==ZIP_OK) && (size_filename > 0))
+ {
+ if (ZWRITE64(zi->z_filefunc,zi->filestream,filename,size_filename)!=size_filename)
+ err = ZIP_ERRNO;
+ }
+
+ if ((err==ZIP_OK) && (size_extrafield_local > 0))
+ {
+ if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local)
+ err = ZIP_ERRNO;
+ }
+
+
+ if ((err==ZIP_OK) && (zi->ci.zip64))
+ {
+ // write the Zip64 extended info
+ short HeaderID = 1;
+ short DataSize = 16;
+ ZPOS64_T CompressedSize = 0;
+ ZPOS64_T UncompressedSize = 0;
+
+ // Remember position of Zip64 extended info for the local file header. (needed when we update size after done with file)
+ zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc,zi->filestream);
+
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)HeaderID,2);
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)DataSize,2);
+
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8);
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8);
+ }
+
+ return err;
+}
+
+/*
+ NOTE.
+ When writing RAW the ZIP64 extended information in extrafield_local and extrafield_global needs to be stripped
+ before calling this function it can be done with zipRemoveExtraInfoBlock
+
+ It is not done here because then we need to realloc a new buffer since parameters are 'const' and I want to minimize
+ unnecessary allocations.
+ */
+extern int ZEXPORT zipOpenNewFileInZip4_64 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw,
+ int windowBits,int memLevel, int strategy,
+ const char* password, uLong crcForCrypting,
+ uLong versionMadeBy, uLong flagBase, int zip64)
+{
+ zip64_internal* zi;
+ uInt size_filename;
+ uInt size_comment;
+ uInt i;
+ int err = ZIP_OK;
+
+# ifdef NOCRYPT
+ (crcForCrypting);
+ if (password != NULL)
+ return ZIP_PARAMERROR;
+# endif
+
+ if (file == NULL)
+ return ZIP_PARAMERROR;
+
+#ifdef HAVE_BZIP2
+ if ((method!=0) && (method!=Z_DEFLATED) && (method!=Z_BZIP2ED))
+ return ZIP_PARAMERROR;
+#else
+ if ((method!=0) && (method!=Z_DEFLATED))
+ return ZIP_PARAMERROR;
+#endif
+
+ zi = (zip64_internal*)file;
+
+ if (zi->in_opened_file_inzip == 1)
+ {
+ err = zipCloseFileInZip (file);
+ if (err != ZIP_OK)
+ return err;
+ }
+
+ if (filename==NULL)
+ filename="-";
+
+ if (comment==NULL)
+ size_comment = 0;
+ else
+ size_comment = (uInt)strlen(comment);
+
+ size_filename = (uInt)strlen(filename);
+
+ if (zipfi == NULL)
+ zi->ci.dosDate = 0;
+ else
+ {
+ if (zipfi->dosDate != 0)
+ zi->ci.dosDate = zipfi->dosDate;
+ else
+ zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date);
+ }
+
+ zi->ci.flag = flagBase;
+ if ((level==8) || (level==9))
+ zi->ci.flag |= 2;
+ if (level==2)
+ zi->ci.flag |= 4;
+ if (level==1)
+ zi->ci.flag |= 6;
+ if (password != NULL)
+ zi->ci.flag |= 1;
+
+ zi->ci.crc32 = 0;
+ zi->ci.method = method;
+ zi->ci.encrypt = 0;
+ zi->ci.stream_initialised = 0;
+ zi->ci.pos_in_buffered_data = 0;
+ zi->ci.raw = raw;
+ zi->ci.pos_local_header = ZTELL64(zi->z_filefunc,zi->filestream);
+
+ zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global + size_comment;
+ zi->ci.size_centralExtraFree = 32; // Extra space we have reserved in case we need to add ZIP64 extra info data
+
+ zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralExtraFree);
+
+ zi->ci.size_centralExtra = size_extrafield_global;
+ zip64local_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4);
+ /* version info */
+ zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)versionMadeBy,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4);
+ zip64local_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/
+ zip64local_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/
+ zip64local_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/
+ zip64local_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2);
+ zip64local_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/
+
+ if (zipfi==NULL)
+ zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2);
+ else
+ zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2);
+
+ if (zipfi==NULL)
+ zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4);
+ else
+ zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4);
+
+ if(zi->ci.pos_local_header >= 0xffffffff)
+ zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4);
+ else
+ zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writing_offset,4);
+
+ for (i=0;i<size_filename;i++)
+ *(zi->ci.central_header+SIZECENTRALHEADER+i) = *(filename+i);
+
+ for (i=0;i<size_extrafield_global;i++)
+ *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+i) =
+ *(((const char*)extrafield_global)+i);
+
+ for (i=0;i<size_comment;i++)
+ *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+
+ size_extrafield_global+i) = *(comment+i);
+ if (zi->ci.central_header == NULL)
+ return ZIP_INTERNALERROR;
+
+ zi->ci.zip64 = zip64;
+ zi->ci.totalCompressedData = 0;
+ zi->ci.totalUncompressedData = 0;
+ zi->ci.pos_zip64extrainfo = 0;
+
+ err = Write_LocalFileHeader(zi, filename, size_extrafield_local, extrafield_local);
+
+#ifdef HAVE_BZIP2
+ zi->ci.bstream.avail_in = (uInt)0;
+ zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
+ zi->ci.bstream.total_in_hi32 = 0;
+ zi->ci.bstream.total_in_lo32 = 0;
+ zi->ci.bstream.total_out_hi32 = 0;
+ zi->ci.bstream.total_out_lo32 = 0;
+#endif
+
+ zi->ci.stream.avail_in = (uInt)0;
+ zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.stream.next_out = zi->ci.buffered_data;
+ zi->ci.stream.total_in = 0;
+ zi->ci.stream.total_out = 0;
+ zi->ci.stream.data_type = Z_BINARY;
+
+#ifdef HAVE_BZIP2
+ if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED || zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
+#else
+ if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
+#endif
+ {
+ if(zi->ci.method == Z_DEFLATED)
+ {
+ zi->ci.stream.zalloc = (alloc_func)0;
+ zi->ci.stream.zfree = (free_func)0;
+ zi->ci.stream.opaque = (voidpf)0;
+
+ if (windowBits>0)
+ windowBits = -windowBits;
+
+ err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy);
+
+ if (err==Z_OK)
+ zi->ci.stream_initialised = Z_DEFLATED;
+ }
+ else if(zi->ci.method == Z_BZIP2ED)
+ {
+#ifdef HAVE_BZIP2
+ // Init BZip stuff here
+ zi->ci.bstream.bzalloc = 0;
+ zi->ci.bstream.bzfree = 0;
+ zi->ci.bstream.opaque = (voidpf)0;
+
+ err = BZ2_bzCompressInit(&zi->ci.bstream, level, 0,35);
+ if(err == BZ_OK)
+ zi->ci.stream_initialised = Z_BZIP2ED;
+#endif
+ }
+
+ }
+
+# ifndef NOCRYPT
+ zi->ci.crypt_header_size = 0;
+ if ((err==Z_OK) && (password != NULL))
+ {
+ unsigned char bufHead[RAND_HEAD_LEN];
+ unsigned int sizeHead;
+ zi->ci.encrypt = 1;
+ zi->ci.pcrc_32_tab = get_crc_table();
+ /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/
+
+ sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting);
+ zi->ci.crypt_header_size = sizeHead;
+
+ if (ZWRITE64(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead)
+ err = ZIP_ERRNO;
+ }
+# endif
+
+ if (err==Z_OK)
+ zi->in_opened_file_inzip = 1;
+ return err;
+}
+
+extern int ZEXPORT zipOpenNewFileInZip4 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw,
+ int windowBits,int memLevel, int strategy,
+ const char* password, uLong crcForCrypting,
+ uLong versionMadeBy, uLong flagBase)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, raw,
+ windowBits, memLevel, strategy,
+ password, crcForCrypting, versionMadeBy, flagBase, 0);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip3 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw,
+ int windowBits,int memLevel, int strategy,
+ const char* password, uLong crcForCrypting)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, raw,
+ windowBits, memLevel, strategy,
+ password, crcForCrypting, VERSIONMADEBY, 0, 0);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw,
+ int windowBits,int memLevel, int strategy,
+ const char* password, uLong crcForCrypting, int zip64)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, raw,
+ windowBits, memLevel, strategy,
+ password, crcForCrypting, VERSIONMADEBY, 0, zip64);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, raw,
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
+ NULL, 0, VERSIONMADEBY, 0, 0);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip2_64(zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void* extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int raw, int zip64)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, raw,
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
+ NULL, 0, VERSIONMADEBY, 0, zip64);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip64 (zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void*extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level, int zip64)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, 0,
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
+ NULL, 0, VERSIONMADEBY, 0, zip64);
+}
+
+extern int ZEXPORT zipOpenNewFileInZip (zipFile file, const char* filename, const zip_fileinfo* zipfi,
+ const void* extrafield_local, uInt size_extrafield_local,
+ const void*extrafield_global, uInt size_extrafield_global,
+ const char* comment, int method, int level)
+{
+ return zipOpenNewFileInZip4_64 (file, filename, zipfi,
+ extrafield_local, size_extrafield_local,
+ extrafield_global, size_extrafield_global,
+ comment, method, level, 0,
+ -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
+ NULL, 0, VERSIONMADEBY, 0, 0);
+}
+
+local int zip64FlushWriteBuffer(zip64_internal* zi)
+{
+ int err=ZIP_OK;
+
+ if (zi->ci.encrypt != 0)
+ {
+#ifndef NOCRYPT
+ uInt i;
+ int t;
+ for (i=0;i<zi->ci.pos_in_buffered_data;i++)
+ zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i],t);
+#endif
+ }
+
+ if (ZWRITE64(zi->z_filefunc,zi->filestream,zi->ci.buffered_data,zi->ci.pos_in_buffered_data) != zi->ci.pos_in_buffered_data)
+ err = ZIP_ERRNO;
+
+ zi->ci.totalCompressedData += zi->ci.pos_in_buffered_data;
+
+#ifdef HAVE_BZIP2
+ if(zi->ci.method == Z_BZIP2ED)
+ {
+ zi->ci.totalUncompressedData += zi->ci.bstream.total_in_lo32;
+ zi->ci.bstream.total_in_lo32 = 0;
+ zi->ci.bstream.total_in_hi32 = 0;
+ }
+ else
+#endif
+ {
+ zi->ci.totalUncompressedData += zi->ci.stream.total_in;
+ zi->ci.stream.total_in = 0;
+ }
+
+
+ zi->ci.pos_in_buffered_data = 0;
+
+ return err;
+}
+
+extern int ZEXPORT zipWriteInFileInZip (zipFile file,const void* buf,unsigned int len)
+{
+ zip64_internal* zi;
+ int err=ZIP_OK;
+
+ if (file == NULL)
+ return ZIP_PARAMERROR;
+ zi = (zip64_internal*)file;
+
+ if (zi->in_opened_file_inzip == 0)
+ return ZIP_PARAMERROR;
+
+ zi->ci.crc32 = crc32(zi->ci.crc32,buf,(uInt)len);
+
+#ifdef HAVE_BZIP2
+ if(zi->ci.method == Z_BZIP2ED && (!zi->ci.raw))
+ {
+ zi->ci.bstream.next_in = (void*)buf;
+ zi->ci.bstream.avail_in = len;
+ err = BZ_RUN_OK;
+
+ while ((err==BZ_RUN_OK) && (zi->ci.bstream.avail_in>0))
+ {
+ if (zi->ci.bstream.avail_out == 0)
+ {
+ if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
+ err = ZIP_ERRNO;
+ zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
+ }
+
+
+ if(err != BZ_RUN_OK)
+ break;
+
+ if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
+ {
+ uLong uTotalOutBefore_lo = zi->ci.bstream.total_out_lo32;
+// uLong uTotalOutBefore_hi = zi->ci.bstream.total_out_hi32;
+ err=BZ2_bzCompress(&zi->ci.bstream, BZ_RUN);
+
+ zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo) ;
+ }
+ }
+
+ if(err == BZ_RUN_OK)
+ err = ZIP_OK;
+ }
+ else
+#endif
+ {
+ zi->ci.stream.next_in = (Bytef*)buf;
+ zi->ci.stream.avail_in = len;
+
+ while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
+ {
+ if (zi->ci.stream.avail_out == 0)
+ {
+ if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
+ err = ZIP_ERRNO;
+ zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.stream.next_out = zi->ci.buffered_data;
+ }
+
+
+ if(err != ZIP_OK)
+ break;
+
+ if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
+ {
+ uLong uTotalOutBefore = zi->ci.stream.total_out;
+ err=deflate(&zi->ci.stream, Z_NO_FLUSH);
+ if(uTotalOutBefore > zi->ci.stream.total_out)
+ {
+ int bBreak = 0;
+ bBreak++;
+ }
+
+ zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
+ }
+ else
+ {
+ uInt copy_this,i;
+ if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)
+ copy_this = zi->ci.stream.avail_in;
+ else
+ copy_this = zi->ci.stream.avail_out;
+
+ for (i = 0; i < copy_this; i++)
+ *(((char*)zi->ci.stream.next_out)+i) =
+ *(((const char*)zi->ci.stream.next_in)+i);
+ {
+ zi->ci.stream.avail_in -= copy_this;
+ zi->ci.stream.avail_out-= copy_this;
+ zi->ci.stream.next_in+= copy_this;
+ zi->ci.stream.next_out+= copy_this;
+ zi->ci.stream.total_in+= copy_this;
+ zi->ci.stream.total_out+= copy_this;
+ zi->ci.pos_in_buffered_data += copy_this;
+ }
+ }
+ }// while(...)
+ }
+
+ return err;
+}
+
+extern int ZEXPORT zipCloseFileInZipRaw (zipFile file, uLong uncompressed_size, uLong crc32)
+{
+ return zipCloseFileInZipRaw64 (file, uncompressed_size, crc32);
+}
+
+extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_size, uLong crc32)
+{
+ zip64_internal* zi;
+ ZPOS64_T compressed_size;
+ uLong invalidValue = 0xffffffff;
+ short datasize = 0;
+ int err=ZIP_OK;
+
+ if (file == NULL)
+ return ZIP_PARAMERROR;
+ zi = (zip64_internal*)file;
+
+ if (zi->in_opened_file_inzip == 0)
+ return ZIP_PARAMERROR;
+ zi->ci.stream.avail_in = 0;
+
+ if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
+ {
+ while (err==ZIP_OK)
+ {
+ uLong uTotalOutBefore;
+ if (zi->ci.stream.avail_out == 0)
+ {
+ if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
+ err = ZIP_ERRNO;
+ zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.stream.next_out = zi->ci.buffered_data;
+ }
+ uTotalOutBefore = zi->ci.stream.total_out;
+ err=deflate(&zi->ci.stream, Z_FINISH);
+ zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
+ }
+ }
+ else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
+ {
+#ifdef HAVE_BZIP2
+ err = BZ_FINISH_OK;
+ while (err==BZ_FINISH_OK)
+ {
+ uLong uTotalOutBefore;
+ if (zi->ci.bstream.avail_out == 0)
+ {
+ if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
+ err = ZIP_ERRNO;
+ zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
+ zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
+ }
+ uTotalOutBefore = zi->ci.bstream.total_out_lo32;
+ err=BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH);
+ if(err == BZ_STREAM_END)
+ err = Z_STREAM_END;
+
+ zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore);
+ }
+
+ if(err == BZ_FINISH_OK)
+ err = ZIP_OK;
+#endif
+ }
+
+ if (err==Z_STREAM_END)
+ err=ZIP_OK; /* this is normal */
+
+ if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK))
+ {
+ if (zip64FlushWriteBuffer(zi)==ZIP_ERRNO)
+ err = ZIP_ERRNO;
+ }
+
+ if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
+ {
+ int tmp_err = deflateEnd(&zi->ci.stream);
+ if (err == ZIP_OK)
+ err = tmp_err;
+ zi->ci.stream_initialised = 0;
+ }
+#ifdef HAVE_BZIP2
+ else if((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
+ {
+ int tmperr = BZ2_bzCompressEnd(&zi->ci.bstream);
+ if (err==ZIP_OK)
+ err = tmperr;
+ zi->ci.stream_initialised = 0;
+ }
+#endif
+
+ if (!zi->ci.raw)
+ {
+ crc32 = (uLong)zi->ci.crc32;
+ uncompressed_size = zi->ci.totalUncompressedData;
+ }
+ compressed_size = zi->ci.totalCompressedData;
+
+# ifndef NOCRYPT
+ compressed_size += zi->ci.crypt_header_size;
+# endif
+
+ // update Current Item crc and sizes,
+ if(compressed_size >= 0xffffffff || uncompressed_size >= 0xffffffff || zi->ci.pos_local_header >= 0xffffffff)
+ {
+ /*version Made by*/
+ zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)45,2);
+ /*version needed*/
+ zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)45,2);
+
+ }
+
+ zip64local_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/
+
+
+ if(compressed_size >= 0xffffffff)
+ zip64local_putValue_inmemory(zi->ci.central_header+20, invalidValue,4); /*compr size*/
+ else
+ zip64local_putValue_inmemory(zi->ci.central_header+20, compressed_size,4); /*compr size*/
+
+ /// set internal file attributes field
+ if (zi->ci.stream.data_type == Z_ASCII)
+ zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)Z_ASCII,2);
+
+ if(uncompressed_size >= 0xffffffff)
+ zip64local_putValue_inmemory(zi->ci.central_header+24, invalidValue,4); /*uncompr size*/
+ else
+ zip64local_putValue_inmemory(zi->ci.central_header+24, uncompressed_size,4); /*uncompr size*/
+
+ // Add ZIP64 extra info field for uncompressed size
+ if(uncompressed_size >= 0xffffffff)
+ datasize += 8;
+
+ // Add ZIP64 extra info field for compressed size
+ if(compressed_size >= 0xffffffff)
+ datasize += 8;
+
+ // Add ZIP64 extra info field for relative offset to local file header of current file
+ if(zi->ci.pos_local_header >= 0xffffffff)
+ datasize += 8;
+
+ if(datasize > 0)
+ {
+ char* p = NULL;
+
+ if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree)
+ {
+ // we can not write more data to the buffer that we have room for.
+ return ZIP_BADZIPFILE;
+ }
+
+ p = zi->ci.central_header + zi->ci.size_centralheader;
+
+ // Add Extra Information Header for 'ZIP64 information'
+ zip64local_putValue_inmemory(p, 0x0001, 2); // HeaderID
+ p += 2;
+ zip64local_putValue_inmemory(p, datasize, 2); // DataSize
+ p += 2;
+
+ if(uncompressed_size >= 0xffffffff)
+ {
+ zip64local_putValue_inmemory(p, uncompressed_size, 8);
+ p += 8;
+ }
+
+ if(compressed_size >= 0xffffffff)
+ {
+ zip64local_putValue_inmemory(p, compressed_size, 8);
+ p += 8;
+ }
+
+ if(zi->ci.pos_local_header >= 0xffffffff)
+ {
+ zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8);
+ p += 8;
+ }
+
+ // Update how much extra free space we got in the memory buffer
+ // and increase the centralheader size so the new ZIP64 fields are included
+ // ( 4 below is the size of HeaderID and DataSize field )
+ zi->ci.size_centralExtraFree -= datasize + 4;
+ zi->ci.size_centralheader += datasize + 4;
+
+ // Update the extra info size field
+ zi->ci.size_centralExtra += datasize + 4;
+ zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)zi->ci.size_centralExtra,2);
+ }
+
+ if (err==ZIP_OK)
+ err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader);
+
+ free(zi->ci.central_header);
+
+ if (err==ZIP_OK)
+ {
+ // Update the LocalFileHeader with the new values.
+
+ ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
+
+ if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err = ZIP_ERRNO;
+
+ if (err==ZIP_OK)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */
+
+ if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff )
+ {
+ if(zi->ci.pos_zip64extrainfo > 0)
+ {
+ // Update the size in the ZIP64 extended field.
+ if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_zip64extrainfo + 4,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err = ZIP_ERRNO;
+
+ if (err==ZIP_OK) /* compressed size, unknown */
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8);
+
+ if (err==ZIP_OK) /* uncompressed size, unknown */
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
+ }
+ else
+ err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal
+ }
+ else
+ {
+ if (err==ZIP_OK) /* compressed size, unknown */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4);
+
+ if (err==ZIP_OK) /* uncompressed size, unknown */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4);
+ }
+
+ if (ZSEEK64(zi->z_filefunc,zi->filestream, cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET)!=0)
+ err = ZIP_ERRNO;
+ }
+
+ zi->number_entry ++;
+ zi->in_opened_file_inzip = 0;
+
+ return err;
+}
+
+extern int ZEXPORT zipCloseFileInZip (zipFile file)
+{
+ return zipCloseFileInZipRaw (file,0,0);
+}
+
+int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip)
+{
+ int err = ZIP_OK;
+ ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writing_offset;
+
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4);
+
+ /*num disks*/
+ if (err==ZIP_OK) /* number of the disk with the start of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
+
+ /*relative offset*/
+ if (err==ZIP_OK) /* Relative offset to the Zip64EndOfCentralDirectory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream, pos,8);
+
+ /*total disks*/ /* Do not support spawning of disk so always say 1 here*/
+ if (err==ZIP_OK) /* number of the disk with the start of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)1,4);
+
+ return err;
+}
+
+int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
+{
+ int err = ZIP_OK;
+
+ uLong Zip64DataSize = 44;
+
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDHEADERMAGIC,4);
+
+ if (err==ZIP_OK) /* size of this 'zip64 end of central directory' */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)Zip64DataSize,8); // why ZPOS64_T of this ?
+
+ if (err==ZIP_OK) /* version made by */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
+
+ if (err==ZIP_OK) /* version needed */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
+
+ if (err==ZIP_OK) /* number of this disk */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
+
+ if (err==ZIP_OK) /* number of the disk with the start of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
+
+ if (err==ZIP_OK) /* total number of entries in the central dir on this disk */
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
+
+ if (err==ZIP_OK) /* total number of entries in the central dir */
+ err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
+
+ if (err==ZIP_OK) /* size of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)size_centraldir,8);
+
+ if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
+ {
+ ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8);
+ }
+ return err;
+}
+int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
+{
+ int err = ZIP_OK;
+
+ /*signature*/
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4);
+
+ if (err==ZIP_OK) /* number of this disk */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
+
+ if (err==ZIP_OK) /* number of the disk with the start of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
+
+ if (err==ZIP_OK) /* total number of entries in the central dir on this disk */
+ {
+ {
+ if(zi->number_entry >= 0xFFFF)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
+ }
+ }
+
+ if (err==ZIP_OK) /* total number of entries in the central dir */
+ {
+ if(zi->number_entry >= 0xFFFF)
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
+ }
+
+ if (err==ZIP_OK) /* size of the central directory */
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4);
+
+ if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
+ {
+ ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
+ if(pos >= 0xffffffff)
+ {
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);
+ }
+ else
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writing_offset),4);
+ }
+
+ return err;
+}
+
+int Write_GlobalComment(zip64_internal* zi, const char* global_comment)
+{
+ int err = ZIP_OK;
+ uInt size_global_comment = 0;
+
+ if(global_comment != NULL)
+ size_global_comment = (uInt)strlen(global_comment);
+
+ err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2);
+
+ if (err == ZIP_OK && size_global_comment > 0)
+ {
+ if (ZWRITE64(zi->z_filefunc,zi->filestream, global_comment, size_global_comment) != size_global_comment)
+ err = ZIP_ERRNO;
+ }
+ return err;
+}
+
+extern int ZEXPORT zipClose (zipFile file, const char* global_comment)
+{
+ zip64_internal* zi;
+ int err = 0;
+ uLong size_centraldir = 0;
+ ZPOS64_T centraldir_pos_inzip;
+ ZPOS64_T pos;
+
+ if (file == NULL)
+ return ZIP_PARAMERROR;
+
+ zi = (zip64_internal*)file;
+
+ if (zi->in_opened_file_inzip == 1)
+ {
+ err = zipCloseFileInZip (file);
+ }
+
+#ifndef NO_ADDFILEINEXISTINGZIP
+ if (global_comment==NULL)
+ global_comment = zi->globalcomment;
+#endif
+
+ centraldir_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
+
+ if (err==ZIP_OK)
+ {
+ linkedlist_datablock_internal* ldi = zi->central_dir.first_block;
+ while (ldi!=NULL)
+ {
+ if ((err==ZIP_OK) && (ldi->filled_in_this_block>0))
+ {
+ if (ZWRITE64(zi->z_filefunc,zi->filestream, ldi->data, ldi->filled_in_this_block) != ldi->filled_in_this_block)
+ err = ZIP_ERRNO;
+ }
+
+ size_centraldir += ldi->filled_in_this_block;
+ ldi = ldi->next_datablock;
+ }
+ }
+ free_linkedlist(&(zi->central_dir));
+
+ pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
+ if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)
+ {
+ ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
+ Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
+
+ Write_Zip64EndOfCentralDirectoryLocator(zi, Zip64EOCDpos);
+ }
+
+ if (err==ZIP_OK)
+ err = Write_EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
+
+ if(err == ZIP_OK)
+ err = Write_GlobalComment(zi, global_comment);
+
+ if (ZCLOSE64(zi->z_filefunc,zi->filestream) != 0)
+ if (err == ZIP_OK)
+ err = ZIP_ERRNO;
+
+#ifndef NO_ADDFILEINEXISTINGZIP
+ TRYFREE(zi->globalcomment);
+#endif
+ TRYFREE(zi);
+
+ return err;
+}
+
+extern int ZEXPORT zipRemoveExtraInfoBlock (char* pData, int* dataLen, short sHeader)
+{
+ char* p = pData;
+ int size = 0;
+ char* pNewHeader;
+ char* pTmp;
+ short header;
+ short dataSize;
+
+ int retVal = ZIP_OK;
+
+ if(pData == NULL || *dataLen < 4)
+ return ZIP_PARAMERROR;
+
+ pNewHeader = (char*)ALLOC(*dataLen);
+ pTmp = pNewHeader;
+
+ while(p < (pData + *dataLen))
+ {
+ header = *(short*)p;
+ dataSize = *(((short*)p)+1);
+
+ if( header == sHeader ) // Header found.
+ {
+ p += dataSize + 4; // skip it. do not copy to temp buffer
+ }
+ else
+ {
+ // Extra Info block should not be removed, So copy it to the temp buffer.
+ memcpy(pTmp, p, dataSize + 4);
+ p += dataSize + 4;
+ size += dataSize + 4;
+ }
+
+ }
+
+ if(size < *dataLen)
+ {
+ // clean old extra info block.
+ memset(pData,0, *dataLen);
+
+ // copy the new extra info block over the old
+ if(size > 0)
+ memcpy(pData, pNewHeader, size);
+
+ // set the new extra info size
+ *dataLen = size;
+
+ retVal = ZIP_OK;
+ }
+ else
+ retVal = ZIP_ERRNO;
+
+ TRYFREE(pNewHeader);
+
+ return retVal;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.h
new file mode 100644
index 000000000..8aaebb623
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/minizip/zip.h
@@ -0,0 +1,362 @@
+/* zip.h -- IO on .zip files using zlib
+ Version 1.1, February 14h, 2010
+ part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
+
+ Modifications for Zip64 support
+ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
+
+ For more info read MiniZip_info.txt
+
+ ---------------------------------------------------------------------------
+
+ Condition of use and distribution are the same than zlib :
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ ---------------------------------------------------------------------------
+
+ Changes
+
+ See header of zip.h
+
+*/
+
+#ifndef _zip12_H
+#define _zip12_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//#define HAVE_BZIP2
+
+#ifndef _ZLIB_H
+#include "zlib.h"
+#endif
+
+#ifndef _ZLIBIOAPI_H
+#include "ioapi.h"
+#endif
+
+#ifdef HAVE_BZIP2
+#include "bzlib.h"
+#endif
+
+#define Z_BZIP2ED 12
+
+#if defined(STRICTZIP) || defined(STRICTZIPUNZIP)
+/* like the STRICT of WIN32, we define a pointer that cannot be converted
+ from (void*) without cast */
+typedef struct TagzipFile__ { int unused; } zipFile__;
+typedef zipFile__ *zipFile;
+#else
+typedef voidp zipFile;
+#endif
+
+#define ZIP_OK (0)
+#define ZIP_EOF (0)
+#define ZIP_ERRNO (Z_ERRNO)
+#define ZIP_PARAMERROR (-102)
+#define ZIP_BADZIPFILE (-103)
+#define ZIP_INTERNALERROR (-104)
+
+#ifndef DEF_MEM_LEVEL
+# if MAX_MEM_LEVEL >= 8
+# define DEF_MEM_LEVEL 8
+# else
+# define DEF_MEM_LEVEL MAX_MEM_LEVEL
+# endif
+#endif
+/* default memLevel */
+
+/* tm_zip contain date/time info */
+typedef struct tm_zip_s
+{
+ uInt tm_sec; /* seconds after the minute - [0,59] */
+ uInt tm_min; /* minutes after the hour - [0,59] */
+ uInt tm_hour; /* hours since midnight - [0,23] */
+ uInt tm_mday; /* day of the month - [1,31] */
+ uInt tm_mon; /* months since January - [0,11] */
+ uInt tm_year; /* years - [1980..2044] */
+} tm_zip;
+
+typedef struct
+{
+ tm_zip tmz_date; /* date in understandable format */
+ uLong dosDate; /* if dos_date == 0, tmu_date is used */
+/* uLong flag; */ /* general purpose bit flag 2 bytes */
+
+ uLong internal_fa; /* internal file attributes 2 bytes */
+ uLong external_fa; /* external file attributes 4 bytes */
+} zip_fileinfo;
+
+typedef const char* zipcharpc;
+
+
+#define APPEND_STATUS_CREATE (0)
+#define APPEND_STATUS_CREATEAFTER (1)
+#define APPEND_STATUS_ADDINZIP (2)
+
+extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append));
+extern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append));
+/*
+ Create a zipfile.
+ pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on
+ an Unix computer "zlib/zlib113.zip".
+ if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip
+ will be created at the end of the file.
+ (useful if the file contain a self extractor code)
+ if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will
+ add files in existing zip (be sure you don't add file that doesn't exist)
+ If the zipfile cannot be opened, the return value is NULL.
+ Else, the return value is a zipFile Handle, usable with other function
+ of this zip package.
+*/
+
+/* Note : there is no delete function into a zipfile.
+ If you want delete file into a zipfile, you must open a zipfile, and create another
+ Of couse, you can use RAW reading and writing to copy the file you did not want delte
+*/
+
+extern zipFile ZEXPORT zipOpen2 OF((const char *pathname,
+ int append,
+ zipcharpc* globalcomment,
+ zlib_filefunc_def* pzlib_filefunc_def));
+
+extern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname,
+ int append,
+ zipcharpc* globalcomment,
+ zlib_filefunc64_def* pzlib_filefunc_def));
+
+extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level));
+
+extern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int zip64));
+
+/*
+ Open a file in the ZIP for writing.
+ filename : the filename in zip (if NULL, '-' without quote will be used
+ *zipfi contain supplemental information
+ if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local
+ contains the extrafield data the the local header
+ if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global
+ contains the extrafield data the the local header
+ if comment != NULL, comment contain the comment string
+ method contain the compression method (0 for store, Z_DEFLATED for deflate)
+ level contain the level of compression (can be Z_DEFAULT_COMPRESSION)
+ zip64 is set to 1 if a zip64 extended information block should be added to the local file header.
+ this MUST be '1' if the uncompressed size is >= 0xffffffff.
+
+*/
+
+
+extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw));
+
+
+extern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw,
+ int zip64));
+/*
+ Same than zipOpenNewFileInZip, except if raw=1, we write raw file
+ */
+
+extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw,
+ int windowBits,
+ int memLevel,
+ int strategy,
+ const char* password,
+ uLong crcForCrypting));
+
+extern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw,
+ int windowBits,
+ int memLevel,
+ int strategy,
+ const char* password,
+ uLong crcForCrypting,
+ int zip64
+ ));
+
+/*
+ Same than zipOpenNewFileInZip2, except
+ windowBits,memLevel,,strategy : see parameter strategy in deflateInit2
+ password : crypting password (NULL for no crypting)
+ crcForCrypting : crc of file to compress (needed for crypting)
+ */
+
+extern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw,
+ int windowBits,
+ int memLevel,
+ int strategy,
+ const char* password,
+ uLong crcForCrypting,
+ uLong versionMadeBy,
+ uLong flagBase
+ ));
+
+
+extern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file,
+ const char* filename,
+ const zip_fileinfo* zipfi,
+ const void* extrafield_local,
+ uInt size_extrafield_local,
+ const void* extrafield_global,
+ uInt size_extrafield_global,
+ const char* comment,
+ int method,
+ int level,
+ int raw,
+ int windowBits,
+ int memLevel,
+ int strategy,
+ const char* password,
+ uLong crcForCrypting,
+ uLong versionMadeBy,
+ uLong flagBase,
+ int zip64
+ ));
+/*
+ Same than zipOpenNewFileInZip4, except
+ versionMadeBy : value for Version made by field
+ flag : value for flag field (compression level info will be added)
+ */
+
+
+extern int ZEXPORT zipWriteInFileInZip OF((zipFile file,
+ const void* buf,
+ unsigned len));
+/*
+ Write data in the zipfile
+*/
+
+extern int ZEXPORT zipCloseFileInZip OF((zipFile file));
+/*
+ Close the current file in the zipfile
+*/
+
+extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file,
+ uLong uncompressed_size,
+ uLong crc32));
+
+extern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file,
+ ZPOS64_T uncompressed_size,
+ uLong crc32));
+
+/*
+ Close the current file in the zipfile, for file opened with
+ parameter raw=1 in zipOpenNewFileInZip2
+ uncompressed_size and crc32 are value for the uncompressed size
+*/
+
+extern int ZEXPORT zipClose OF((zipFile file,
+ const char* global_comment));
+/*
+ Close the zipfile
+*/
+
+
+extern int ZEXPORT zipRemoveExtraInfoBlock OF((char* pData, int* dataLen, short sHeader));
+/*
+ zipRemoveExtraInfoBlock - Added by Mathias Svensson
+
+ Remove extra information block from a extra information data for the local file header or central directory header
+
+ It is needed to remove ZIP64 extra information blocks when before data is written if using RAW mode.
+
+ 0x0001 is the signature header for the ZIP64 extra information blocks
+
+ usage.
+ Remove ZIP64 Extra information from a central director extra field data
+ zipRemoveExtraInfoBlock(pCenDirExtraFieldData, &nCenDirExtraFieldDataLen, 0x0001);
+
+ Remove ZIP64 Extra information from a Local File Header extra field data
+ zipRemoveExtraInfoBlock(pLocalHeaderExtraFieldData, &nLocalHeaderExtraFieldDataLen, 0x0001);
+*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _zip64_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/example.pas b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/example.pas
new file mode 100644
index 000000000..5518b36a7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/example.pas
@@ -0,0 +1,599 @@
+(* example.c -- usage example of the zlib compression library
+ * Copyright (C) 1995-2003 Jean-loup Gailly.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ * Pascal translation
+ * Copyright (C) 1998 by Jacques Nomssi Nzali.
+ * For conditions of distribution and use, see copyright notice in readme.txt
+ *
+ * Adaptation to the zlibpas interface
+ * Copyright (C) 2003 by Cosmin Truta.
+ * For conditions of distribution and use, see copyright notice in readme.txt
+ *)
+
+program example;
+
+{$DEFINE TEST_COMPRESS}
+{DO NOT $DEFINE TEST_GZIO}
+{$DEFINE TEST_DEFLATE}
+{$DEFINE TEST_INFLATE}
+{$DEFINE TEST_FLUSH}
+{$DEFINE TEST_SYNC}
+{$DEFINE TEST_DICT}
+
+uses SysUtils, zlibpas;
+
+const TESTFILE = 'foo.gz';
+
+(* "hello world" would be more standard, but the repeated "hello"
+ * stresses the compression code better, sorry...
+ *)
+const hello: PChar = 'hello, hello!';
+
+const dictionary: PChar = 'hello';
+
+var dictId: LongInt; (* Adler32 value of the dictionary *)
+
+procedure CHECK_ERR(err: Integer; msg: String);
+begin
+ if err <> Z_OK then
+ begin
+ WriteLn(msg, ' error: ', err);
+ Halt(1);
+ end;
+end;
+
+procedure EXIT_ERR(const msg: String);
+begin
+ WriteLn('Error: ', msg);
+ Halt(1);
+end;
+
+(* ===========================================================================
+ * Test compress and uncompress
+ *)
+{$IFDEF TEST_COMPRESS}
+procedure test_compress(compr: Pointer; comprLen: LongInt;
+ uncompr: Pointer; uncomprLen: LongInt);
+var err: Integer;
+ len: LongInt;
+begin
+ len := StrLen(hello)+1;
+
+ err := compress(compr, comprLen, hello, len);
+ CHECK_ERR(err, 'compress');
+
+ StrCopy(PChar(uncompr), 'garbage');
+
+ err := uncompress(uncompr, uncomprLen, compr, comprLen);
+ CHECK_ERR(err, 'uncompress');
+
+ if StrComp(PChar(uncompr), hello) <> 0 then
+ EXIT_ERR('bad uncompress')
+ else
+ WriteLn('uncompress(): ', PChar(uncompr));
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test read/write of .gz files
+ *)
+{$IFDEF TEST_GZIO}
+procedure test_gzio(const fname: PChar; (* compressed file name *)
+ uncompr: Pointer;
+ uncomprLen: LongInt);
+var err: Integer;
+ len: Integer;
+ zfile: gzFile;
+ pos: LongInt;
+begin
+ len := StrLen(hello)+1;
+
+ zfile := gzopen(fname, 'wb');
+ if zfile = NIL then
+ begin
+ WriteLn('gzopen error');
+ Halt(1);
+ end;
+ gzputc(zfile, 'h');
+ if gzputs(zfile, 'ello') <> 4 then
+ begin
+ WriteLn('gzputs err: ', gzerror(zfile, err));
+ Halt(1);
+ end;
+ {$IFDEF GZ_FORMAT_STRING}
+ if gzprintf(zfile, ', %s!', 'hello') <> 8 then
+ begin
+ WriteLn('gzprintf err: ', gzerror(zfile, err));
+ Halt(1);
+ end;
+ {$ELSE}
+ if gzputs(zfile, ', hello!') <> 8 then
+ begin
+ WriteLn('gzputs err: ', gzerror(zfile, err));
+ Halt(1);
+ end;
+ {$ENDIF}
+ gzseek(zfile, 1, SEEK_CUR); (* add one zero byte *)
+ gzclose(zfile);
+
+ zfile := gzopen(fname, 'rb');
+ if zfile = NIL then
+ begin
+ WriteLn('gzopen error');
+ Halt(1);
+ end;
+
+ StrCopy(PChar(uncompr), 'garbage');
+
+ if gzread(zfile, uncompr, uncomprLen) <> len then
+ begin
+ WriteLn('gzread err: ', gzerror(zfile, err));
+ Halt(1);
+ end;
+ if StrComp(PChar(uncompr), hello) <> 0 then
+ begin
+ WriteLn('bad gzread: ', PChar(uncompr));
+ Halt(1);
+ end
+ else
+ WriteLn('gzread(): ', PChar(uncompr));
+
+ pos := gzseek(zfile, -8, SEEK_CUR);
+ if (pos <> 6) or (gztell(zfile) <> pos) then
+ begin
+ WriteLn('gzseek error, pos=', pos, ', gztell=', gztell(zfile));
+ Halt(1);
+ end;
+
+ if gzgetc(zfile) <> ' ' then
+ begin
+ WriteLn('gzgetc error');
+ Halt(1);
+ end;
+
+ if gzungetc(' ', zfile) <> ' ' then
+ begin
+ WriteLn('gzungetc error');
+ Halt(1);
+ end;
+
+ gzgets(zfile, PChar(uncompr), uncomprLen);
+ uncomprLen := StrLen(PChar(uncompr));
+ if uncomprLen <> 7 then (* " hello!" *)
+ begin
+ WriteLn('gzgets err after gzseek: ', gzerror(zfile, err));
+ Halt(1);
+ end;
+ if StrComp(PChar(uncompr), hello + 6) <> 0 then
+ begin
+ WriteLn('bad gzgets after gzseek');
+ Halt(1);
+ end
+ else
+ WriteLn('gzgets() after gzseek: ', PChar(uncompr));
+
+ gzclose(zfile);
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test deflate with small buffers
+ *)
+{$IFDEF TEST_DEFLATE}
+procedure test_deflate(compr: Pointer; comprLen: LongInt);
+var c_stream: z_stream; (* compression stream *)
+ err: Integer;
+ len: LongInt;
+begin
+ len := StrLen(hello)+1;
+
+ c_stream.zalloc := NIL;
+ c_stream.zfree := NIL;
+ c_stream.opaque := NIL;
+
+ err := deflateInit(c_stream, Z_DEFAULT_COMPRESSION);
+ CHECK_ERR(err, 'deflateInit');
+
+ c_stream.next_in := hello;
+ c_stream.next_out := compr;
+
+ while (c_stream.total_in <> len) and
+ (c_stream.total_out < comprLen) do
+ begin
+ c_stream.avail_out := 1; { force small buffers }
+ c_stream.avail_in := 1;
+ err := deflate(c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, 'deflate');
+ end;
+
+ (* Finish the stream, still forcing small buffers: *)
+ while TRUE do
+ begin
+ c_stream.avail_out := 1;
+ err := deflate(c_stream, Z_FINISH);
+ if err = Z_STREAM_END then
+ break;
+ CHECK_ERR(err, 'deflate');
+ end;
+
+ err := deflateEnd(c_stream);
+ CHECK_ERR(err, 'deflateEnd');
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test inflate with small buffers
+ *)
+{$IFDEF TEST_INFLATE}
+procedure test_inflate(compr: Pointer; comprLen : LongInt;
+ uncompr: Pointer; uncomprLen : LongInt);
+var err: Integer;
+ d_stream: z_stream; (* decompression stream *)
+begin
+ StrCopy(PChar(uncompr), 'garbage');
+
+ d_stream.zalloc := NIL;
+ d_stream.zfree := NIL;
+ d_stream.opaque := NIL;
+
+ d_stream.next_in := compr;
+ d_stream.avail_in := 0;
+ d_stream.next_out := uncompr;
+
+ err := inflateInit(d_stream);
+ CHECK_ERR(err, 'inflateInit');
+
+ while (d_stream.total_out < uncomprLen) and
+ (d_stream.total_in < comprLen) do
+ begin
+ d_stream.avail_out := 1; (* force small buffers *)
+ d_stream.avail_in := 1;
+ err := inflate(d_stream, Z_NO_FLUSH);
+ if err = Z_STREAM_END then
+ break;
+ CHECK_ERR(err, 'inflate');
+ end;
+
+ err := inflateEnd(d_stream);
+ CHECK_ERR(err, 'inflateEnd');
+
+ if StrComp(PChar(uncompr), hello) <> 0 then
+ EXIT_ERR('bad inflate')
+ else
+ WriteLn('inflate(): ', PChar(uncompr));
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test deflate with large buffers and dynamic change of compression level
+ *)
+{$IFDEF TEST_DEFLATE}
+procedure test_large_deflate(compr: Pointer; comprLen: LongInt;
+ uncompr: Pointer; uncomprLen: LongInt);
+var c_stream: z_stream; (* compression stream *)
+ err: Integer;
+begin
+ c_stream.zalloc := NIL;
+ c_stream.zfree := NIL;
+ c_stream.opaque := NIL;
+
+ err := deflateInit(c_stream, Z_BEST_SPEED);
+ CHECK_ERR(err, 'deflateInit');
+
+ c_stream.next_out := compr;
+ c_stream.avail_out := Integer(comprLen);
+
+ (* At this point, uncompr is still mostly zeroes, so it should compress
+ * very well:
+ *)
+ c_stream.next_in := uncompr;
+ c_stream.avail_in := Integer(uncomprLen);
+ err := deflate(c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, 'deflate');
+ if c_stream.avail_in <> 0 then
+ EXIT_ERR('deflate not greedy');
+
+ (* Feed in already compressed data and switch to no compression: *)
+ deflateParams(c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY);
+ c_stream.next_in := compr;
+ c_stream.avail_in := Integer(comprLen div 2);
+ err := deflate(c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, 'deflate');
+
+ (* Switch back to compressing mode: *)
+ deflateParams(c_stream, Z_BEST_COMPRESSION, Z_FILTERED);
+ c_stream.next_in := uncompr;
+ c_stream.avail_in := Integer(uncomprLen);
+ err := deflate(c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, 'deflate');
+
+ err := deflate(c_stream, Z_FINISH);
+ if err <> Z_STREAM_END then
+ EXIT_ERR('deflate should report Z_STREAM_END');
+
+ err := deflateEnd(c_stream);
+ CHECK_ERR(err, 'deflateEnd');
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test inflate with large buffers
+ *)
+{$IFDEF TEST_INFLATE}
+procedure test_large_inflate(compr: Pointer; comprLen: LongInt;
+ uncompr: Pointer; uncomprLen: LongInt);
+var err: Integer;
+ d_stream: z_stream; (* decompression stream *)
+begin
+ StrCopy(PChar(uncompr), 'garbage');
+
+ d_stream.zalloc := NIL;
+ d_stream.zfree := NIL;
+ d_stream.opaque := NIL;
+
+ d_stream.next_in := compr;
+ d_stream.avail_in := Integer(comprLen);
+
+ err := inflateInit(d_stream);
+ CHECK_ERR(err, 'inflateInit');
+
+ while TRUE do
+ begin
+ d_stream.next_out := uncompr; (* discard the output *)
+ d_stream.avail_out := Integer(uncomprLen);
+ err := inflate(d_stream, Z_NO_FLUSH);
+ if err = Z_STREAM_END then
+ break;
+ CHECK_ERR(err, 'large inflate');
+ end;
+
+ err := inflateEnd(d_stream);
+ CHECK_ERR(err, 'inflateEnd');
+
+ if d_stream.total_out <> 2 * uncomprLen + comprLen div 2 then
+ begin
+ WriteLn('bad large inflate: ', d_stream.total_out);
+ Halt(1);
+ end
+ else
+ WriteLn('large_inflate(): OK');
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test deflate with full flush
+ *)
+{$IFDEF TEST_FLUSH}
+procedure test_flush(compr: Pointer; var comprLen : LongInt);
+var c_stream: z_stream; (* compression stream *)
+ err: Integer;
+ len: Integer;
+begin
+ len := StrLen(hello)+1;
+
+ c_stream.zalloc := NIL;
+ c_stream.zfree := NIL;
+ c_stream.opaque := NIL;
+
+ err := deflateInit(c_stream, Z_DEFAULT_COMPRESSION);
+ CHECK_ERR(err, 'deflateInit');
+
+ c_stream.next_in := hello;
+ c_stream.next_out := compr;
+ c_stream.avail_in := 3;
+ c_stream.avail_out := Integer(comprLen);
+ err := deflate(c_stream, Z_FULL_FLUSH);
+ CHECK_ERR(err, 'deflate');
+
+ Inc(PByteArray(compr)^[3]); (* force an error in first compressed block *)
+ c_stream.avail_in := len - 3;
+
+ err := deflate(c_stream, Z_FINISH);
+ if err <> Z_STREAM_END then
+ CHECK_ERR(err, 'deflate');
+
+ err := deflateEnd(c_stream);
+ CHECK_ERR(err, 'deflateEnd');
+
+ comprLen := c_stream.total_out;
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test inflateSync()
+ *)
+{$IFDEF TEST_SYNC}
+procedure test_sync(compr: Pointer; comprLen: LongInt;
+ uncompr: Pointer; uncomprLen : LongInt);
+var err: Integer;
+ d_stream: z_stream; (* decompression stream *)
+begin
+ StrCopy(PChar(uncompr), 'garbage');
+
+ d_stream.zalloc := NIL;
+ d_stream.zfree := NIL;
+ d_stream.opaque := NIL;
+
+ d_stream.next_in := compr;
+ d_stream.avail_in := 2; (* just read the zlib header *)
+
+ err := inflateInit(d_stream);
+ CHECK_ERR(err, 'inflateInit');
+
+ d_stream.next_out := uncompr;
+ d_stream.avail_out := Integer(uncomprLen);
+
+ inflate(d_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, 'inflate');
+
+ d_stream.avail_in := Integer(comprLen-2); (* read all compressed data *)
+ err := inflateSync(d_stream); (* but skip the damaged part *)
+ CHECK_ERR(err, 'inflateSync');
+
+ err := inflate(d_stream, Z_FINISH);
+ if err <> Z_DATA_ERROR then
+ EXIT_ERR('inflate should report DATA_ERROR');
+ (* Because of incorrect adler32 *)
+
+ err := inflateEnd(d_stream);
+ CHECK_ERR(err, 'inflateEnd');
+
+ WriteLn('after inflateSync(): hel', PChar(uncompr));
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test deflate with preset dictionary
+ *)
+{$IFDEF TEST_DICT}
+procedure test_dict_deflate(compr: Pointer; comprLen: LongInt);
+var c_stream: z_stream; (* compression stream *)
+ err: Integer;
+begin
+ c_stream.zalloc := NIL;
+ c_stream.zfree := NIL;
+ c_stream.opaque := NIL;
+
+ err := deflateInit(c_stream, Z_BEST_COMPRESSION);
+ CHECK_ERR(err, 'deflateInit');
+
+ err := deflateSetDictionary(c_stream, dictionary, StrLen(dictionary));
+ CHECK_ERR(err, 'deflateSetDictionary');
+
+ dictId := c_stream.adler;
+ c_stream.next_out := compr;
+ c_stream.avail_out := Integer(comprLen);
+
+ c_stream.next_in := hello;
+ c_stream.avail_in := StrLen(hello)+1;
+
+ err := deflate(c_stream, Z_FINISH);
+ if err <> Z_STREAM_END then
+ EXIT_ERR('deflate should report Z_STREAM_END');
+
+ err := deflateEnd(c_stream);
+ CHECK_ERR(err, 'deflateEnd');
+end;
+{$ENDIF}
+
+(* ===========================================================================
+ * Test inflate with a preset dictionary
+ *)
+{$IFDEF TEST_DICT}
+procedure test_dict_inflate(compr: Pointer; comprLen: LongInt;
+ uncompr: Pointer; uncomprLen: LongInt);
+var err: Integer;
+ d_stream: z_stream; (* decompression stream *)
+begin
+ StrCopy(PChar(uncompr), 'garbage');
+
+ d_stream.zalloc := NIL;
+ d_stream.zfree := NIL;
+ d_stream.opaque := NIL;
+
+ d_stream.next_in := compr;
+ d_stream.avail_in := Integer(comprLen);
+
+ err := inflateInit(d_stream);
+ CHECK_ERR(err, 'inflateInit');
+
+ d_stream.next_out := uncompr;
+ d_stream.avail_out := Integer(uncomprLen);
+
+ while TRUE do
+ begin
+ err := inflate(d_stream, Z_NO_FLUSH);
+ if err = Z_STREAM_END then
+ break;
+ if err = Z_NEED_DICT then
+ begin
+ if d_stream.adler <> dictId then
+ EXIT_ERR('unexpected dictionary');
+ err := inflateSetDictionary(d_stream, dictionary, StrLen(dictionary));
+ end;
+ CHECK_ERR(err, 'inflate with dict');
+ end;
+
+ err := inflateEnd(d_stream);
+ CHECK_ERR(err, 'inflateEnd');
+
+ if StrComp(PChar(uncompr), hello) <> 0 then
+ EXIT_ERR('bad inflate with dict')
+ else
+ WriteLn('inflate with dictionary: ', PChar(uncompr));
+end;
+{$ENDIF}
+
+var compr, uncompr: Pointer;
+ comprLen, uncomprLen: LongInt;
+
+begin
+ if zlibVersion^ <> ZLIB_VERSION[1] then
+ EXIT_ERR('Incompatible zlib version');
+
+ WriteLn('zlib version: ', zlibVersion);
+ WriteLn('zlib compile flags: ', Format('0x%x', [zlibCompileFlags]));
+
+ comprLen := 10000 * SizeOf(Integer); (* don't overflow on MSDOS *)
+ uncomprLen := comprLen;
+ GetMem(compr, comprLen);
+ GetMem(uncompr, uncomprLen);
+ if (compr = NIL) or (uncompr = NIL) then
+ EXIT_ERR('Out of memory');
+ (* compr and uncompr are cleared to avoid reading uninitialized
+ * data and to ensure that uncompr compresses well.
+ *)
+ FillChar(compr^, comprLen, 0);
+ FillChar(uncompr^, uncomprLen, 0);
+
+ {$IFDEF TEST_COMPRESS}
+ WriteLn('** Testing compress');
+ test_compress(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+
+ {$IFDEF TEST_GZIO}
+ WriteLn('** Testing gzio');
+ if ParamCount >= 1 then
+ test_gzio(ParamStr(1), uncompr, uncomprLen)
+ else
+ test_gzio(TESTFILE, uncompr, uncomprLen);
+ {$ENDIF}
+
+ {$IFDEF TEST_DEFLATE}
+ WriteLn('** Testing deflate with small buffers');
+ test_deflate(compr, comprLen);
+ {$ENDIF}
+ {$IFDEF TEST_INFLATE}
+ WriteLn('** Testing inflate with small buffers');
+ test_inflate(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+
+ {$IFDEF TEST_DEFLATE}
+ WriteLn('** Testing deflate with large buffers');
+ test_large_deflate(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+ {$IFDEF TEST_INFLATE}
+ WriteLn('** Testing inflate with large buffers');
+ test_large_inflate(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+
+ {$IFDEF TEST_FLUSH}
+ WriteLn('** Testing deflate with full flush');
+ test_flush(compr, comprLen);
+ {$ENDIF}
+ {$IFDEF TEST_SYNC}
+ WriteLn('** Testing inflateSync');
+ test_sync(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+ comprLen := uncomprLen;
+
+ {$IFDEF TEST_DICT}
+ WriteLn('** Testing deflate and inflate with preset dictionary');
+ test_dict_deflate(compr, comprLen);
+ test_dict_inflate(compr, comprLen, uncompr, uncomprLen);
+ {$ENDIF}
+
+ FreeMem(compr, comprLen);
+ FreeMem(uncompr, uncomprLen);
+end.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/readme.txt
new file mode 100644
index 000000000..60e87c8a3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/readme.txt
@@ -0,0 +1,76 @@
+
+This directory contains a Pascal (Delphi, Kylix) interface to the
+zlib data compression library.
+
+
+Directory listing
+=================
+
+zlibd32.mak makefile for Borland C++
+example.pas usage example of zlib
+zlibpas.pas the Pascal interface to zlib
+readme.txt this file
+
+
+Compatibility notes
+===================
+
+- Although the name "zlib" would have been more normal for the
+ zlibpas unit, this name is already taken by Borland's ZLib unit.
+ This is somehow unfortunate, because that unit is not a genuine
+ interface to the full-fledged zlib functionality, but a suite of
+ class wrappers around zlib streams. Other essential features,
+ such as checksums, are missing.
+ It would have been more appropriate for that unit to have a name
+ like "ZStreams", or something similar.
+
+- The C and zlib-supplied types int, uInt, long, uLong, etc. are
+ translated directly into Pascal types of similar sizes (Integer,
+ LongInt, etc.), to avoid namespace pollution. In particular,
+ there is no conversion of unsigned int into a Pascal unsigned
+ integer. The Word type is non-portable and has the same size
+ (16 bits) both in a 16-bit and in a 32-bit environment, unlike
+ Integer. Even if there is a 32-bit Cardinal type, there is no
+ real need for unsigned int in zlib under a 32-bit environment.
+
+- Except for the callbacks, the zlib function interfaces are
+ assuming the calling convention normally used in Pascal
+ (__pascal for DOS and Windows16, __fastcall for Windows32).
+ Since the cdecl keyword is used, the old Turbo Pascal does
+ not work with this interface.
+
+- The gz* function interfaces are not translated, to avoid
+ interfacing problems with the C runtime library. Besides,
+ gzprintf(gzFile file, const char *format, ...)
+ cannot be translated into Pascal.
+
+
+Legal issues
+============
+
+The zlibpas interface is:
+ Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler.
+ Copyright (C) 1998 by Bob Dellaca.
+ Copyright (C) 2003 by Cosmin Truta.
+
+The example program is:
+ Copyright (C) 1995-2003 by Jean-loup Gailly.
+ Copyright (C) 1998,1999,2000 by Jacques Nomssi Nzali.
+ Copyright (C) 2003 by Cosmin Truta.
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibd32.mak b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibd32.mak
new file mode 100644
index 000000000..9bb00b7cc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibd32.mak
@@ -0,0 +1,99 @@
+# Makefile for zlib
+# For use with Delphi and C++ Builder under Win32
+# Updated for zlib 1.2.x by Cosmin Truta
+
+# ------------ Borland C++ ------------
+
+# This project uses the Delphi (fastcall/register) calling convention:
+LOC = -DZEXPORT=__fastcall -DZEXPORTVA=__cdecl
+
+CC = bcc32
+LD = bcc32
+AR = tlib
+# do not use "-pr" in CFLAGS
+CFLAGS = -a -d -k- -O2 $(LOC)
+LDFLAGS =
+
+
+# variables
+ZLIB_LIB = zlib.lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj
+OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(CFLAGS) $*.c
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+
+
+# For the sake of the old Borland make,
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2)
+ -del $(ZLIB_LIB)
+ $(AR) $(ZLIB_LIB) $(OBJP1)
+ $(AR) $(ZLIB_LIB) $(OBJP2)
+
+
+# testing
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
+
+
+# cleanup
+clean:
+ -del *.obj
+ -del *.exe
+ -del *.lib
+ -del *.tds
+ -del zlib.bak
+ -del foo.gz
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibpas.pas b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibpas.pas
new file mode 100644
index 000000000..a0dff11b5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/pascal/zlibpas.pas
@@ -0,0 +1,276 @@
+(* zlibpas -- Pascal interface to the zlib data compression library
+ *
+ * Copyright (C) 2003 Cosmin Truta.
+ * Derived from original sources by Bob Dellaca.
+ * For conditions of distribution and use, see copyright notice in readme.txt
+ *)
+
+unit zlibpas;
+
+interface
+
+const
+ ZLIB_VERSION = '1.2.11';
+ ZLIB_VERNUM = $12a0;
+
+type
+ alloc_func = function(opaque: Pointer; items, size: Integer): Pointer;
+ cdecl;
+ free_func = procedure(opaque, address: Pointer);
+ cdecl;
+
+ in_func = function(opaque: Pointer; var buf: PByte): Integer;
+ cdecl;
+ out_func = function(opaque: Pointer; buf: PByte; size: Integer): Integer;
+ cdecl;
+
+ z_streamp = ^z_stream;
+ z_stream = packed record
+ next_in: PChar; (* next input byte *)
+ avail_in: Integer; (* number of bytes available at next_in *)
+ total_in: LongInt; (* total nb of input bytes read so far *)
+
+ next_out: PChar; (* next output byte should be put there *)
+ avail_out: Integer; (* remaining free space at next_out *)
+ total_out: LongInt; (* total nb of bytes output so far *)
+
+ msg: PChar; (* last error message, NULL if no error *)
+ state: Pointer; (* not visible by applications *)
+
+ zalloc: alloc_func; (* used to allocate the internal state *)
+ zfree: free_func; (* used to free the internal state *)
+ opaque: Pointer; (* private data object passed to zalloc and zfree *)
+
+ data_type: Integer; (* best guess about the data type: ascii or binary *)
+ adler: LongInt; (* adler32 value of the uncompressed data *)
+ reserved: LongInt; (* reserved for future use *)
+ end;
+
+ gz_headerp = ^gz_header;
+ gz_header = packed record
+ text: Integer; (* true if compressed data believed to be text *)
+ time: LongInt; (* modification time *)
+ xflags: Integer; (* extra flags (not used when writing a gzip file) *)
+ os: Integer; (* operating system *)
+ extra: PChar; (* pointer to extra field or Z_NULL if none *)
+ extra_len: Integer; (* extra field length (valid if extra != Z_NULL) *)
+ extra_max: Integer; (* space at extra (only when reading header) *)
+ name: PChar; (* pointer to zero-terminated file name or Z_NULL *)
+ name_max: Integer; (* space at name (only when reading header) *)
+ comment: PChar; (* pointer to zero-terminated comment or Z_NULL *)
+ comm_max: Integer; (* space at comment (only when reading header) *)
+ hcrc: Integer; (* true if there was or will be a header crc *)
+ done: Integer; (* true when done reading gzip header *)
+ end;
+
+(* constants *)
+const
+ Z_NO_FLUSH = 0;
+ Z_PARTIAL_FLUSH = 1;
+ Z_SYNC_FLUSH = 2;
+ Z_FULL_FLUSH = 3;
+ Z_FINISH = 4;
+ Z_BLOCK = 5;
+ Z_TREES = 6;
+
+ Z_OK = 0;
+ Z_STREAM_END = 1;
+ Z_NEED_DICT = 2;
+ Z_ERRNO = -1;
+ Z_STREAM_ERROR = -2;
+ Z_DATA_ERROR = -3;
+ Z_MEM_ERROR = -4;
+ Z_BUF_ERROR = -5;
+ Z_VERSION_ERROR = -6;
+
+ Z_NO_COMPRESSION = 0;
+ Z_BEST_SPEED = 1;
+ Z_BEST_COMPRESSION = 9;
+ Z_DEFAULT_COMPRESSION = -1;
+
+ Z_FILTERED = 1;
+ Z_HUFFMAN_ONLY = 2;
+ Z_RLE = 3;
+ Z_FIXED = 4;
+ Z_DEFAULT_STRATEGY = 0;
+
+ Z_BINARY = 0;
+ Z_TEXT = 1;
+ Z_ASCII = 1;
+ Z_UNKNOWN = 2;
+
+ Z_DEFLATED = 8;
+
+(* basic functions *)
+function zlibVersion: PChar;
+function deflateInit(var strm: z_stream; level: Integer): Integer;
+function deflate(var strm: z_stream; flush: Integer): Integer;
+function deflateEnd(var strm: z_stream): Integer;
+function inflateInit(var strm: z_stream): Integer;
+function inflate(var strm: z_stream; flush: Integer): Integer;
+function inflateEnd(var strm: z_stream): Integer;
+
+(* advanced functions *)
+function deflateInit2(var strm: z_stream; level, method, windowBits,
+ memLevel, strategy: Integer): Integer;
+function deflateSetDictionary(var strm: z_stream; const dictionary: PChar;
+ dictLength: Integer): Integer;
+function deflateCopy(var dest, source: z_stream): Integer;
+function deflateReset(var strm: z_stream): Integer;
+function deflateParams(var strm: z_stream; level, strategy: Integer): Integer;
+function deflateTune(var strm: z_stream; good_length, max_lazy, nice_length, max_chain: Integer): Integer;
+function deflateBound(var strm: z_stream; sourceLen: LongInt): LongInt;
+function deflatePending(var strm: z_stream; var pending: Integer; var bits: Integer): Integer;
+function deflatePrime(var strm: z_stream; bits, value: Integer): Integer;
+function deflateSetHeader(var strm: z_stream; head: gz_header): Integer;
+function inflateInit2(var strm: z_stream; windowBits: Integer): Integer;
+function inflateSetDictionary(var strm: z_stream; const dictionary: PChar;
+ dictLength: Integer): Integer;
+function inflateSync(var strm: z_stream): Integer;
+function inflateCopy(var dest, source: z_stream): Integer;
+function inflateReset(var strm: z_stream): Integer;
+function inflateReset2(var strm: z_stream; windowBits: Integer): Integer;
+function inflatePrime(var strm: z_stream; bits, value: Integer): Integer;
+function inflateMark(var strm: z_stream): LongInt;
+function inflateGetHeader(var strm: z_stream; var head: gz_header): Integer;
+function inflateBackInit(var strm: z_stream;
+ windowBits: Integer; window: PChar): Integer;
+function inflateBack(var strm: z_stream; in_fn: in_func; in_desc: Pointer;
+ out_fn: out_func; out_desc: Pointer): Integer;
+function inflateBackEnd(var strm: z_stream): Integer;
+function zlibCompileFlags: LongInt;
+
+(* utility functions *)
+function compress(dest: PChar; var destLen: LongInt;
+ const source: PChar; sourceLen: LongInt): Integer;
+function compress2(dest: PChar; var destLen: LongInt;
+ const source: PChar; sourceLen: LongInt;
+ level: Integer): Integer;
+function compressBound(sourceLen: LongInt): LongInt;
+function uncompress(dest: PChar; var destLen: LongInt;
+ const source: PChar; sourceLen: LongInt): Integer;
+
+(* checksum functions *)
+function adler32(adler: LongInt; const buf: PChar; len: Integer): LongInt;
+function adler32_combine(adler1, adler2, len2: LongInt): LongInt;
+function crc32(crc: LongInt; const buf: PChar; len: Integer): LongInt;
+function crc32_combine(crc1, crc2, len2: LongInt): LongInt;
+
+(* various hacks, don't look :) *)
+function deflateInit_(var strm: z_stream; level: Integer;
+ const version: PChar; stream_size: Integer): Integer;
+function inflateInit_(var strm: z_stream; const version: PChar;
+ stream_size: Integer): Integer;
+function deflateInit2_(var strm: z_stream;
+ level, method, windowBits, memLevel, strategy: Integer;
+ const version: PChar; stream_size: Integer): Integer;
+function inflateInit2_(var strm: z_stream; windowBits: Integer;
+ const version: PChar; stream_size: Integer): Integer;
+function inflateBackInit_(var strm: z_stream;
+ windowBits: Integer; window: PChar;
+ const version: PChar; stream_size: Integer): Integer;
+
+
+implementation
+
+{$L adler32.obj}
+{$L compress.obj}
+{$L crc32.obj}
+{$L deflate.obj}
+{$L infback.obj}
+{$L inffast.obj}
+{$L inflate.obj}
+{$L inftrees.obj}
+{$L trees.obj}
+{$L uncompr.obj}
+{$L zutil.obj}
+
+function adler32; external;
+function adler32_combine; external;
+function compress; external;
+function compress2; external;
+function compressBound; external;
+function crc32; external;
+function crc32_combine; external;
+function deflate; external;
+function deflateBound; external;
+function deflateCopy; external;
+function deflateEnd; external;
+function deflateInit_; external;
+function deflateInit2_; external;
+function deflateParams; external;
+function deflatePending; external;
+function deflatePrime; external;
+function deflateReset; external;
+function deflateSetDictionary; external;
+function deflateSetHeader; external;
+function deflateTune; external;
+function inflate; external;
+function inflateBack; external;
+function inflateBackEnd; external;
+function inflateBackInit_; external;
+function inflateCopy; external;
+function inflateEnd; external;
+function inflateGetHeader; external;
+function inflateInit_; external;
+function inflateInit2_; external;
+function inflateMark; external;
+function inflatePrime; external;
+function inflateReset; external;
+function inflateReset2; external;
+function inflateSetDictionary; external;
+function inflateSync; external;
+function uncompress; external;
+function zlibCompileFlags; external;
+function zlibVersion; external;
+
+function deflateInit(var strm: z_stream; level: Integer): Integer;
+begin
+ Result := deflateInit_(strm, level, ZLIB_VERSION, sizeof(z_stream));
+end;
+
+function deflateInit2(var strm: z_stream; level, method, windowBits, memLevel,
+ strategy: Integer): Integer;
+begin
+ Result := deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+ ZLIB_VERSION, sizeof(z_stream));
+end;
+
+function inflateInit(var strm: z_stream): Integer;
+begin
+ Result := inflateInit_(strm, ZLIB_VERSION, sizeof(z_stream));
+end;
+
+function inflateInit2(var strm: z_stream; windowBits: Integer): Integer;
+begin
+ Result := inflateInit2_(strm, windowBits, ZLIB_VERSION, sizeof(z_stream));
+end;
+
+function inflateBackInit(var strm: z_stream;
+ windowBits: Integer; window: PChar): Integer;
+begin
+ Result := inflateBackInit_(strm, windowBits, window,
+ ZLIB_VERSION, sizeof(z_stream));
+end;
+
+function _malloc(Size: Integer): Pointer; cdecl;
+begin
+ GetMem(Result, Size);
+end;
+
+procedure _free(Block: Pointer); cdecl;
+begin
+ FreeMem(Block);
+end;
+
+procedure _memset(P: Pointer; B: Byte; count: Integer); cdecl;
+begin
+ FillChar(P^, count, B);
+end;
+
+procedure _memcpy(dest, source: Pointer; count: Integer); cdecl;
+begin
+ Move(source^, dest^, count);
+end;
+
+end.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/Makefile
new file mode 100644
index 000000000..0e2594c80
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/Makefile
@@ -0,0 +1,42 @@
+CFLAGS=-O
+
+puff: puff.o pufftest.o
+
+puff.o: puff.h
+
+pufftest.o: puff.h
+
+test: puff
+ puff zeros.raw
+
+puft: puff.c puff.h pufftest.o
+ cc -fprofile-arcs -ftest-coverage -o puft puff.c pufftest.o
+
+# puff full coverage test (should say 100%)
+cov: puft
+ @rm -f *.gcov *.gcda
+ @puft -w zeros.raw 2>&1 | cat > /dev/null
+ @echo '04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
+ @echo '00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
+ @echo '00 00 00 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 254
+ @echo '00 01 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
+ @echo '01 01 00 fe ff 0a' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
+ @echo '02 7e ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
+ @echo '02' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
+ @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2
+ @echo '04 80 49 92 24 49 92 24 71 ff ff 93 11 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 249
+ @echo '04 c0 81 08 00 00 00 00 20 7f eb 0b 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
+ @echo '0b 00 00' | xxd -r -p | puft -f 2>&1 | cat > /dev/null
+ @echo '1a 07' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246
+ @echo '0c c0 81 00 00 00 00 00 90 ff 6b 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 245
+ @puft -f zeros.raw 2>&1 | cat > /dev/null
+ @echo 'fc 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 253
+ @echo '04 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 252
+ @echo '04 00 24 49' | xxd -r -p | puft 2> /dev/null || test $$? -eq 251
+ @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 84' | xxd -r -p | puft 2> /dev/null || test $$? -eq 248
+ @echo '04 00 24 e9 ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 250
+ @echo '04 00 24 e9 ff 6d' | xxd -r -p | puft 2> /dev/null || test $$? -eq 247
+ @gcov -n puff.c
+
+clean:
+ rm -f puff puft *.o *.gc*
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/README
new file mode 100644
index 000000000..bbc4cb595
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/README
@@ -0,0 +1,63 @@
+Puff -- A Simple Inflate
+3 Mar 2003
+Mark Adler
+madler@alumni.caltech.edu
+
+What this is --
+
+puff.c provides the routine puff() to decompress the deflate data format. It
+does so more slowly than zlib, but the code is about one-fifth the size of the
+inflate code in zlib, and written to be very easy to read.
+
+Why I wrote this --
+
+puff.c was written to document the deflate format unambiguously, by virtue of
+being working C code. It is meant to supplement RFC 1951, which formally
+describes the deflate format. I have received many questions on details of the
+deflate format, and I hope that reading this code will answer those questions.
+puff.c is heavily commented with details of the deflate format, especially
+those little nooks and cranies of the format that might not be obvious from a
+specification.
+
+puff.c may also be useful in applications where code size or memory usage is a
+very limited resource, and speed is not as important.
+
+How to use it --
+
+Well, most likely you should just be reading puff.c and using zlib for actual
+applications, but if you must ...
+
+Include puff.h in your code, which provides this prototype:
+
+int puff(unsigned char *dest, /* pointer to destination pointer */
+ unsigned long *destlen, /* amount of output space */
+ unsigned char *source, /* pointer to source data pointer */
+ unsigned long *sourcelen); /* amount of input available */
+
+Then you can call puff() to decompress a deflate stream that is in memory in
+its entirety at source, to a sufficiently sized block of memory for the
+decompressed data at dest. puff() is the only external symbol in puff.c The
+only C library functions that puff.c needs are setjmp() and longjmp(), which
+are used to simplify error checking in the code to improve readabilty. puff.c
+does no memory allocation, and uses less than 2K bytes off of the stack.
+
+If destlen is not enough space for the uncompressed data, then inflate will
+return an error without writing more than destlen bytes. Note that this means
+that in order to decompress the deflate data successfully, you need to know
+the size of the uncompressed data ahead of time.
+
+If needed, puff() can determine the size of the uncompressed data with no
+output space. This is done by passing dest equal to (unsigned char *)0. Then
+the initial value of *destlen is ignored and *destlen is set to the length of
+the uncompressed data. So if the size of the uncompressed data is not known,
+then two passes of puff() can be used--first to determine the size, and second
+to do the actual inflation after allocating the appropriate memory. Not
+pretty, but it works. (This is one of the reasons you should be using zlib.)
+
+The deflate format is self-terminating. If the deflate stream does not end
+in *sourcelen bytes, puff() will return an error without reading at or past
+endsource.
+
+On return, *sourcelen is updated to the amount of input data consumed, and
+*destlen is updated to the size of the uncompressed data. See the comments
+in puff.c for the possible return codes for puff().
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.c
new file mode 100644
index 000000000..c6c90d714
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.c
@@ -0,0 +1,840 @@
+/*
+ * puff.c
+ * Copyright (C) 2002-2013 Mark Adler
+ * For conditions of distribution and use, see copyright notice in puff.h
+ * version 2.3, 21 Jan 2013
+ *
+ * puff.c is a simple inflate written to be an unambiguous way to specify the
+ * deflate format. It is not written for speed but rather simplicity. As a
+ * side benefit, this code might actually be useful when small code is more
+ * important than speed, such as bootstrap applications. For typical deflate
+ * data, zlib's inflate() is about four times as fast as puff(). zlib's
+ * inflate compiles to around 20K on my machine, whereas puff.c compiles to
+ * around 4K on my machine (a PowerPC using GNU cc). If the faster decode()
+ * function here is used, then puff() is only twice as slow as zlib's
+ * inflate().
+ *
+ * All dynamically allocated memory comes from the stack. The stack required
+ * is less than 2K bytes. This code is compatible with 16-bit int's and
+ * assumes that long's are at least 32 bits. puff.c uses the short data type,
+ * assumed to be 16 bits, for arrays in order to conserve memory. The code
+ * works whether integers are stored big endian or little endian.
+ *
+ * In the comments below are "Format notes" that describe the inflate process
+ * and document some of the less obvious aspects of the format. This source
+ * code is meant to supplement RFC 1951, which formally describes the deflate
+ * format:
+ *
+ * http://www.zlib.org/rfc-deflate.html
+ */
+
+/*
+ * Change history:
+ *
+ * 1.0 10 Feb 2002 - First version
+ * 1.1 17 Feb 2002 - Clarifications of some comments and notes
+ * - Update puff() dest and source pointers on negative
+ * errors to facilitate debugging deflators
+ * - Remove longest from struct huffman -- not needed
+ * - Simplify offs[] index in construct()
+ * - Add input size and checking, using longjmp() to
+ * maintain easy readability
+ * - Use short data type for large arrays
+ * - Use pointers instead of long to specify source and
+ * destination sizes to avoid arbitrary 4 GB limits
+ * 1.2 17 Mar 2002 - Add faster version of decode(), doubles speed (!),
+ * but leave simple version for readabilty
+ * - Make sure invalid distances detected if pointers
+ * are 16 bits
+ * - Fix fixed codes table error
+ * - Provide a scanning mode for determining size of
+ * uncompressed data
+ * 1.3 20 Mar 2002 - Go back to lengths for puff() parameters [Gailly]
+ * - Add a puff.h file for the interface
+ * - Add braces in puff() for else do [Gailly]
+ * - Use indexes instead of pointers for readability
+ * 1.4 31 Mar 2002 - Simplify construct() code set check
+ * - Fix some comments
+ * - Add FIXLCODES #define
+ * 1.5 6 Apr 2002 - Minor comment fixes
+ * 1.6 7 Aug 2002 - Minor format changes
+ * 1.7 3 Mar 2003 - Added test code for distribution
+ * - Added zlib-like license
+ * 1.8 9 Jan 2004 - Added some comments on no distance codes case
+ * 1.9 21 Feb 2008 - Fix bug on 16-bit integer architectures [Pohland]
+ * - Catch missing end-of-block symbol error
+ * 2.0 25 Jul 2008 - Add #define to permit distance too far back
+ * - Add option in TEST code for puff to write the data
+ * - Add option in TEST code to skip input bytes
+ * - Allow TEST code to read from piped stdin
+ * 2.1 4 Apr 2010 - Avoid variable initialization for happier compilers
+ * - Avoid unsigned comparisons for even happier compilers
+ * 2.2 25 Apr 2010 - Fix bug in variable initializations [Oberhumer]
+ * - Add const where appropriate [Oberhumer]
+ * - Split if's and ?'s for coverage testing
+ * - Break out test code to separate file
+ * - Move NIL to puff.h
+ * - Allow incomplete code only if single code length is 1
+ * - Add full code coverage test to Makefile
+ * 2.3 21 Jan 2013 - Check for invalid code length codes in dynamic blocks
+ */
+
+#include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */
+#include "puff.h" /* prototype for puff() */
+
+#define local static /* for local function definitions */
+
+/*
+ * Maximums for allocations and loops. It is not useful to change these --
+ * they are fixed by the deflate format.
+ */
+#define MAXBITS 15 /* maximum bits in a code */
+#define MAXLCODES 286 /* maximum number of literal/length codes */
+#define MAXDCODES 30 /* maximum number of distance codes */
+#define MAXCODES (MAXLCODES+MAXDCODES) /* maximum codes lengths to read */
+#define FIXLCODES 288 /* number of fixed literal/length codes */
+
+/* input and output state */
+struct state {
+ /* output state */
+ unsigned char *out; /* output buffer */
+ unsigned long outlen; /* available space at out */
+ unsigned long outcnt; /* bytes written to out so far */
+
+ /* input state */
+ const unsigned char *in; /* input buffer */
+ unsigned long inlen; /* available input at in */
+ unsigned long incnt; /* bytes read so far */
+ int bitbuf; /* bit buffer */
+ int bitcnt; /* number of bits in bit buffer */
+
+ /* input limit error return state for bits() and decode() */
+ jmp_buf env;
+};
+
+/*
+ * Return need bits from the input stream. This always leaves less than
+ * eight bits in the buffer. bits() works properly for need == 0.
+ *
+ * Format notes:
+ *
+ * - Bits are stored in bytes from the least significant bit to the most
+ * significant bit. Therefore bits are dropped from the bottom of the bit
+ * buffer, using shift right, and new bytes are appended to the top of the
+ * bit buffer, using shift left.
+ */
+local int bits(struct state *s, int need)
+{
+ long val; /* bit accumulator (can use up to 20 bits) */
+
+ /* load at least need bits into val */
+ val = s->bitbuf;
+ while (s->bitcnt < need) {
+ if (s->incnt == s->inlen)
+ longjmp(s->env, 1); /* out of input */
+ val |= (long)(s->in[s->incnt++]) << s->bitcnt; /* load eight bits */
+ s->bitcnt += 8;
+ }
+
+ /* drop need bits and update buffer, always zero to seven bits left */
+ s->bitbuf = (int)(val >> need);
+ s->bitcnt -= need;
+
+ /* return need bits, zeroing the bits above that */
+ return (int)(val & ((1L << need) - 1));
+}
+
+/*
+ * Process a stored block.
+ *
+ * Format notes:
+ *
+ * - After the two-bit stored block type (00), the stored block length and
+ * stored bytes are byte-aligned for fast copying. Therefore any leftover
+ * bits in the byte that has the last bit of the type, as many as seven, are
+ * discarded. The value of the discarded bits are not defined and should not
+ * be checked against any expectation.
+ *
+ * - The second inverted copy of the stored block length does not have to be
+ * checked, but it's probably a good idea to do so anyway.
+ *
+ * - A stored block can have zero length. This is sometimes used to byte-align
+ * subsets of the compressed data for random access or partial recovery.
+ */
+local int stored(struct state *s)
+{
+ unsigned len; /* length of stored block */
+
+ /* discard leftover bits from current byte (assumes s->bitcnt < 8) */
+ s->bitbuf = 0;
+ s->bitcnt = 0;
+
+ /* get length and check against its one's complement */
+ if (s->incnt + 4 > s->inlen)
+ return 2; /* not enough input */
+ len = s->in[s->incnt++];
+ len |= s->in[s->incnt++] << 8;
+ if (s->in[s->incnt++] != (~len & 0xff) ||
+ s->in[s->incnt++] != ((~len >> 8) & 0xff))
+ return -2; /* didn't match complement! */
+
+ /* copy len bytes from in to out */
+ if (s->incnt + len > s->inlen)
+ return 2; /* not enough input */
+ if (s->out != NIL) {
+ if (s->outcnt + len > s->outlen)
+ return 1; /* not enough output space */
+ while (len--)
+ s->out[s->outcnt++] = s->in[s->incnt++];
+ }
+ else { /* just scanning */
+ s->outcnt += len;
+ s->incnt += len;
+ }
+
+ /* done with a valid stored block */
+ return 0;
+}
+
+/*
+ * Huffman code decoding tables. count[1..MAXBITS] is the number of symbols of
+ * each length, which for a canonical code are stepped through in order.
+ * symbol[] are the symbol values in canonical order, where the number of
+ * entries is the sum of the counts in count[]. The decoding process can be
+ * seen in the function decode() below.
+ */
+struct huffman {
+ short *count; /* number of symbols of each length */
+ short *symbol; /* canonically ordered symbols */
+};
+
+/*
+ * Decode a code from the stream s using huffman table h. Return the symbol or
+ * a negative value if there is an error. If all of the lengths are zero, i.e.
+ * an empty code, or if the code is incomplete and an invalid code is received,
+ * then -10 is returned after reading MAXBITS bits.
+ *
+ * Format notes:
+ *
+ * - The codes as stored in the compressed data are bit-reversed relative to
+ * a simple integer ordering of codes of the same lengths. Hence below the
+ * bits are pulled from the compressed data one at a time and used to
+ * build the code value reversed from what is in the stream in order to
+ * permit simple integer comparisons for decoding. A table-based decoding
+ * scheme (as used in zlib) does not need to do this reversal.
+ *
+ * - The first code for the shortest length is all zeros. Subsequent codes of
+ * the same length are simply integer increments of the previous code. When
+ * moving up a length, a zero bit is appended to the code. For a complete
+ * code, the last code of the longest length will be all ones.
+ *
+ * - Incomplete codes are handled by this decoder, since they are permitted
+ * in the deflate format. See the format notes for fixed() and dynamic().
+ */
+#ifdef SLOW
+local int decode(struct state *s, const struct huffman *h)
+{
+ int len; /* current number of bits in code */
+ int code; /* len bits being decoded */
+ int first; /* first code of length len */
+ int count; /* number of codes of length len */
+ int index; /* index of first code of length len in symbol table */
+
+ code = first = index = 0;
+ for (len = 1; len <= MAXBITS; len++) {
+ code |= bits(s, 1); /* get next bit */
+ count = h->count[len];
+ if (code - count < first) /* if length len, return symbol */
+ return h->symbol[index + (code - first)];
+ index += count; /* else update for next length */
+ first += count;
+ first <<= 1;
+ code <<= 1;
+ }
+ return -10; /* ran out of codes */
+}
+
+/*
+ * A faster version of decode() for real applications of this code. It's not
+ * as readable, but it makes puff() twice as fast. And it only makes the code
+ * a few percent larger.
+ */
+#else /* !SLOW */
+local int decode(struct state *s, const struct huffman *h)
+{
+ int len; /* current number of bits in code */
+ int code; /* len bits being decoded */
+ int first; /* first code of length len */
+ int count; /* number of codes of length len */
+ int index; /* index of first code of length len in symbol table */
+ int bitbuf; /* bits from stream */
+ int left; /* bits left in next or left to process */
+ short *next; /* next number of codes */
+
+ bitbuf = s->bitbuf;
+ left = s->bitcnt;
+ code = first = index = 0;
+ len = 1;
+ next = h->count + 1;
+ while (1) {
+ while (left--) {
+ code |= bitbuf & 1;
+ bitbuf >>= 1;
+ count = *next++;
+ if (code - count < first) { /* if length len, return symbol */
+ s->bitbuf = bitbuf;
+ s->bitcnt = (s->bitcnt - len) & 7;
+ return h->symbol[index + (code - first)];
+ }
+ index += count; /* else update for next length */
+ first += count;
+ first <<= 1;
+ code <<= 1;
+ len++;
+ }
+ left = (MAXBITS+1) - len;
+ if (left == 0)
+ break;
+ if (s->incnt == s->inlen)
+ longjmp(s->env, 1); /* out of input */
+ bitbuf = s->in[s->incnt++];
+ if (left > 8)
+ left = 8;
+ }
+ return -10; /* ran out of codes */
+}
+#endif /* SLOW */
+
+/*
+ * Given the list of code lengths length[0..n-1] representing a canonical
+ * Huffman code for n symbols, construct the tables required to decode those
+ * codes. Those tables are the number of codes of each length, and the symbols
+ * sorted by length, retaining their original order within each length. The
+ * return value is zero for a complete code set, negative for an over-
+ * subscribed code set, and positive for an incomplete code set. The tables
+ * can be used if the return value is zero or positive, but they cannot be used
+ * if the return value is negative. If the return value is zero, it is not
+ * possible for decode() using that table to return an error--any stream of
+ * enough bits will resolve to a symbol. If the return value is positive, then
+ * it is possible for decode() using that table to return an error for received
+ * codes past the end of the incomplete lengths.
+ *
+ * Not used by decode(), but used for error checking, h->count[0] is the number
+ * of the n symbols not in the code. So n - h->count[0] is the number of
+ * codes. This is useful for checking for incomplete codes that have more than
+ * one symbol, which is an error in a dynamic block.
+ *
+ * Assumption: for all i in 0..n-1, 0 <= length[i] <= MAXBITS
+ * This is assured by the construction of the length arrays in dynamic() and
+ * fixed() and is not verified by construct().
+ *
+ * Format notes:
+ *
+ * - Permitted and expected examples of incomplete codes are one of the fixed
+ * codes and any code with a single symbol which in deflate is coded as one
+ * bit instead of zero bits. See the format notes for fixed() and dynamic().
+ *
+ * - Within a given code length, the symbols are kept in ascending order for
+ * the code bits definition.
+ */
+local int construct(struct huffman *h, const short *length, int n)
+{
+ int symbol; /* current symbol when stepping through length[] */
+ int len; /* current length when stepping through h->count[] */
+ int left; /* number of possible codes left of current length */
+ short offs[MAXBITS+1]; /* offsets in symbol table for each length */
+
+ /* count number of codes of each length */
+ for (len = 0; len <= MAXBITS; len++)
+ h->count[len] = 0;
+ for (symbol = 0; symbol < n; symbol++)
+ (h->count[length[symbol]])++; /* assumes lengths are within bounds */
+ if (h->count[0] == n) /* no codes! */
+ return 0; /* complete, but decode() will fail */
+
+ /* check for an over-subscribed or incomplete set of lengths */
+ left = 1; /* one possible code of zero length */
+ for (len = 1; len <= MAXBITS; len++) {
+ left <<= 1; /* one more bit, double codes left */
+ left -= h->count[len]; /* deduct count from possible codes */
+ if (left < 0)
+ return left; /* over-subscribed--return negative */
+ } /* left > 0 means incomplete */
+
+ /* generate offsets into symbol table for each length for sorting */
+ offs[1] = 0;
+ for (len = 1; len < MAXBITS; len++)
+ offs[len + 1] = offs[len] + h->count[len];
+
+ /*
+ * put symbols in table sorted by length, by symbol order within each
+ * length
+ */
+ for (symbol = 0; symbol < n; symbol++)
+ if (length[symbol] != 0)
+ h->symbol[offs[length[symbol]]++] = symbol;
+
+ /* return zero for complete set, positive for incomplete set */
+ return left;
+}
+
+/*
+ * Decode literal/length and distance codes until an end-of-block code.
+ *
+ * Format notes:
+ *
+ * - Compressed data that is after the block type if fixed or after the code
+ * description if dynamic is a combination of literals and length/distance
+ * pairs terminated by and end-of-block code. Literals are simply Huffman
+ * coded bytes. A length/distance pair is a coded length followed by a
+ * coded distance to represent a string that occurs earlier in the
+ * uncompressed data that occurs again at the current location.
+ *
+ * - Literals, lengths, and the end-of-block code are combined into a single
+ * code of up to 286 symbols. They are 256 literals (0..255), 29 length
+ * symbols (257..285), and the end-of-block symbol (256).
+ *
+ * - There are 256 possible lengths (3..258), and so 29 symbols are not enough
+ * to represent all of those. Lengths 3..10 and 258 are in fact represented
+ * by just a length symbol. Lengths 11..257 are represented as a symbol and
+ * some number of extra bits that are added as an integer to the base length
+ * of the length symbol. The number of extra bits is determined by the base
+ * length symbol. These are in the static arrays below, lens[] for the base
+ * lengths and lext[] for the corresponding number of extra bits.
+ *
+ * - The reason that 258 gets its own symbol is that the longest length is used
+ * often in highly redundant files. Note that 258 can also be coded as the
+ * base value 227 plus the maximum extra value of 31. While a good deflate
+ * should never do this, it is not an error, and should be decoded properly.
+ *
+ * - If a length is decoded, including its extra bits if any, then it is
+ * followed a distance code. There are up to 30 distance symbols. Again
+ * there are many more possible distances (1..32768), so extra bits are added
+ * to a base value represented by the symbol. The distances 1..4 get their
+ * own symbol, but the rest require extra bits. The base distances and
+ * corresponding number of extra bits are below in the static arrays dist[]
+ * and dext[].
+ *
+ * - Literal bytes are simply written to the output. A length/distance pair is
+ * an instruction to copy previously uncompressed bytes to the output. The
+ * copy is from distance bytes back in the output stream, copying for length
+ * bytes.
+ *
+ * - Distances pointing before the beginning of the output data are not
+ * permitted.
+ *
+ * - Overlapped copies, where the length is greater than the distance, are
+ * allowed and common. For example, a distance of one and a length of 258
+ * simply copies the last byte 258 times. A distance of four and a length of
+ * twelve copies the last four bytes three times. A simple forward copy
+ * ignoring whether the length is greater than the distance or not implements
+ * this correctly. You should not use memcpy() since its behavior is not
+ * defined for overlapped arrays. You should not use memmove() or bcopy()
+ * since though their behavior -is- defined for overlapping arrays, it is
+ * defined to do the wrong thing in this case.
+ */
+local int codes(struct state *s,
+ const struct huffman *lencode,
+ const struct huffman *distcode)
+{
+ int symbol; /* decoded symbol */
+ int len; /* length for copy */
+ unsigned dist; /* distance for copy */
+ static const short lens[29] = { /* Size base for length codes 257..285 */
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+ 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258};
+ static const short lext[29] = { /* Extra bits for length codes 257..285 */
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+ 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0};
+ static const short dists[30] = { /* Offset base for distance codes 0..29 */
+ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+ 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+ 8193, 12289, 16385, 24577};
+ static const short dext[30] = { /* Extra bits for distance codes 0..29 */
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
+ 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
+ 12, 12, 13, 13};
+
+ /* decode literals and length/distance pairs */
+ do {
+ symbol = decode(s, lencode);
+ if (symbol < 0)
+ return symbol; /* invalid symbol */
+ if (symbol < 256) { /* literal: symbol is the byte */
+ /* write out the literal */
+ if (s->out != NIL) {
+ if (s->outcnt == s->outlen)
+ return 1;
+ s->out[s->outcnt] = symbol;
+ }
+ s->outcnt++;
+ }
+ else if (symbol > 256) { /* length */
+ /* get and compute length */
+ symbol -= 257;
+ if (symbol >= 29)
+ return -10; /* invalid fixed code */
+ len = lens[symbol] + bits(s, lext[symbol]);
+
+ /* get and check distance */
+ symbol = decode(s, distcode);
+ if (symbol < 0)
+ return symbol; /* invalid symbol */
+ dist = dists[symbol] + bits(s, dext[symbol]);
+#ifndef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ if (dist > s->outcnt)
+ return -11; /* distance too far back */
+#endif
+
+ /* copy length bytes from distance bytes back */
+ if (s->out != NIL) {
+ if (s->outcnt + len > s->outlen)
+ return 1;
+ while (len--) {
+ s->out[s->outcnt] =
+#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ dist > s->outcnt ?
+ 0 :
+#endif
+ s->out[s->outcnt - dist];
+ s->outcnt++;
+ }
+ }
+ else
+ s->outcnt += len;
+ }
+ } while (symbol != 256); /* end of block symbol */
+
+ /* done with a valid fixed or dynamic block */
+ return 0;
+}
+
+/*
+ * Process a fixed codes block.
+ *
+ * Format notes:
+ *
+ * - This block type can be useful for compressing small amounts of data for
+ * which the size of the code descriptions in a dynamic block exceeds the
+ * benefit of custom codes for that block. For fixed codes, no bits are
+ * spent on code descriptions. Instead the code lengths for literal/length
+ * codes and distance codes are fixed. The specific lengths for each symbol
+ * can be seen in the "for" loops below.
+ *
+ * - The literal/length code is complete, but has two symbols that are invalid
+ * and should result in an error if received. This cannot be implemented
+ * simply as an incomplete code since those two symbols are in the "middle"
+ * of the code. They are eight bits long and the longest literal/length\
+ * code is nine bits. Therefore the code must be constructed with those
+ * symbols, and the invalid symbols must be detected after decoding.
+ *
+ * - The fixed distance codes also have two invalid symbols that should result
+ * in an error if received. Since all of the distance codes are the same
+ * length, this can be implemented as an incomplete code. Then the invalid
+ * codes are detected while decoding.
+ */
+local int fixed(struct state *s)
+{
+ static int virgin = 1;
+ static short lencnt[MAXBITS+1], lensym[FIXLCODES];
+ static short distcnt[MAXBITS+1], distsym[MAXDCODES];
+ static struct huffman lencode, distcode;
+
+ /* build fixed huffman tables if first call (may not be thread safe) */
+ if (virgin) {
+ int symbol;
+ short lengths[FIXLCODES];
+
+ /* construct lencode and distcode */
+ lencode.count = lencnt;
+ lencode.symbol = lensym;
+ distcode.count = distcnt;
+ distcode.symbol = distsym;
+
+ /* literal/length table */
+ for (symbol = 0; symbol < 144; symbol++)
+ lengths[symbol] = 8;
+ for (; symbol < 256; symbol++)
+ lengths[symbol] = 9;
+ for (; symbol < 280; symbol++)
+ lengths[symbol] = 7;
+ for (; symbol < FIXLCODES; symbol++)
+ lengths[symbol] = 8;
+ construct(&lencode, lengths, FIXLCODES);
+
+ /* distance table */
+ for (symbol = 0; symbol < MAXDCODES; symbol++)
+ lengths[symbol] = 5;
+ construct(&distcode, lengths, MAXDCODES);
+
+ /* do this just once */
+ virgin = 0;
+ }
+
+ /* decode data until end-of-block code */
+ return codes(s, &lencode, &distcode);
+}
+
+/*
+ * Process a dynamic codes block.
+ *
+ * Format notes:
+ *
+ * - A dynamic block starts with a description of the literal/length and
+ * distance codes for that block. New dynamic blocks allow the compressor to
+ * rapidly adapt to changing data with new codes optimized for that data.
+ *
+ * - The codes used by the deflate format are "canonical", which means that
+ * the actual bits of the codes are generated in an unambiguous way simply
+ * from the number of bits in each code. Therefore the code descriptions
+ * are simply a list of code lengths for each symbol.
+ *
+ * - The code lengths are stored in order for the symbols, so lengths are
+ * provided for each of the literal/length symbols, and for each of the
+ * distance symbols.
+ *
+ * - If a symbol is not used in the block, this is represented by a zero as
+ * as the code length. This does not mean a zero-length code, but rather
+ * that no code should be created for this symbol. There is no way in the
+ * deflate format to represent a zero-length code.
+ *
+ * - The maximum number of bits in a code is 15, so the possible lengths for
+ * any code are 1..15.
+ *
+ * - The fact that a length of zero is not permitted for a code has an
+ * interesting consequence. Normally if only one symbol is used for a given
+ * code, then in fact that code could be represented with zero bits. However
+ * in deflate, that code has to be at least one bit. So for example, if
+ * only a single distance base symbol appears in a block, then it will be
+ * represented by a single code of length one, in particular one 0 bit. This
+ * is an incomplete code, since if a 1 bit is received, it has no meaning,
+ * and should result in an error. So incomplete distance codes of one symbol
+ * should be permitted, and the receipt of invalid codes should be handled.
+ *
+ * - It is also possible to have a single literal/length code, but that code
+ * must be the end-of-block code, since every dynamic block has one. This
+ * is not the most efficient way to create an empty block (an empty fixed
+ * block is fewer bits), but it is allowed by the format. So incomplete
+ * literal/length codes of one symbol should also be permitted.
+ *
+ * - If there are only literal codes and no lengths, then there are no distance
+ * codes. This is represented by one distance code with zero bits.
+ *
+ * - The list of up to 286 length/literal lengths and up to 30 distance lengths
+ * are themselves compressed using Huffman codes and run-length encoding. In
+ * the list of code lengths, a 0 symbol means no code, a 1..15 symbol means
+ * that length, and the symbols 16, 17, and 18 are run-length instructions.
+ * Each of 16, 17, and 18 are follwed by extra bits to define the length of
+ * the run. 16 copies the last length 3 to 6 times. 17 represents 3 to 10
+ * zero lengths, and 18 represents 11 to 138 zero lengths. Unused symbols
+ * are common, hence the special coding for zero lengths.
+ *
+ * - The symbols for 0..18 are Huffman coded, and so that code must be
+ * described first. This is simply a sequence of up to 19 three-bit values
+ * representing no code (0) or the code length for that symbol (1..7).
+ *
+ * - A dynamic block starts with three fixed-size counts from which is computed
+ * the number of literal/length code lengths, the number of distance code
+ * lengths, and the number of code length code lengths (ok, you come up with
+ * a better name!) in the code descriptions. For the literal/length and
+ * distance codes, lengths after those provided are considered zero, i.e. no
+ * code. The code length code lengths are received in a permuted order (see
+ * the order[] array below) to make a short code length code length list more
+ * likely. As it turns out, very short and very long codes are less likely
+ * to be seen in a dynamic code description, hence what may appear initially
+ * to be a peculiar ordering.
+ *
+ * - Given the number of literal/length code lengths (nlen) and distance code
+ * lengths (ndist), then they are treated as one long list of nlen + ndist
+ * code lengths. Therefore run-length coding can and often does cross the
+ * boundary between the two sets of lengths.
+ *
+ * - So to summarize, the code description at the start of a dynamic block is
+ * three counts for the number of code lengths for the literal/length codes,
+ * the distance codes, and the code length codes. This is followed by the
+ * code length code lengths, three bits each. This is used to construct the
+ * code length code which is used to read the remainder of the lengths. Then
+ * the literal/length code lengths and distance lengths are read as a single
+ * set of lengths using the code length codes. Codes are constructed from
+ * the resulting two sets of lengths, and then finally you can start
+ * decoding actual compressed data in the block.
+ *
+ * - For reference, a "typical" size for the code description in a dynamic
+ * block is around 80 bytes.
+ */
+local int dynamic(struct state *s)
+{
+ int nlen, ndist, ncode; /* number of lengths in descriptor */
+ int index; /* index of lengths[] */
+ int err; /* construct() return value */
+ short lengths[MAXCODES]; /* descriptor code lengths */
+ short lencnt[MAXBITS+1], lensym[MAXLCODES]; /* lencode memory */
+ short distcnt[MAXBITS+1], distsym[MAXDCODES]; /* distcode memory */
+ struct huffman lencode, distcode; /* length and distance codes */
+ static const short order[19] = /* permutation of code length codes */
+ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
+
+ /* construct lencode and distcode */
+ lencode.count = lencnt;
+ lencode.symbol = lensym;
+ distcode.count = distcnt;
+ distcode.symbol = distsym;
+
+ /* get number of lengths in each table, check lengths */
+ nlen = bits(s, 5) + 257;
+ ndist = bits(s, 5) + 1;
+ ncode = bits(s, 4) + 4;
+ if (nlen > MAXLCODES || ndist > MAXDCODES)
+ return -3; /* bad counts */
+
+ /* read code length code lengths (really), missing lengths are zero */
+ for (index = 0; index < ncode; index++)
+ lengths[order[index]] = bits(s, 3);
+ for (; index < 19; index++)
+ lengths[order[index]] = 0;
+
+ /* build huffman table for code lengths codes (use lencode temporarily) */
+ err = construct(&lencode, lengths, 19);
+ if (err != 0) /* require complete code set here */
+ return -4;
+
+ /* read length/literal and distance code length tables */
+ index = 0;
+ while (index < nlen + ndist) {
+ int symbol; /* decoded value */
+ int len; /* last length to repeat */
+
+ symbol = decode(s, &lencode);
+ if (symbol < 0)
+ return symbol; /* invalid symbol */
+ if (symbol < 16) /* length in 0..15 */
+ lengths[index++] = symbol;
+ else { /* repeat instruction */
+ len = 0; /* assume repeating zeros */
+ if (symbol == 16) { /* repeat last length 3..6 times */
+ if (index == 0)
+ return -5; /* no last length! */
+ len = lengths[index - 1]; /* last length */
+ symbol = 3 + bits(s, 2);
+ }
+ else if (symbol == 17) /* repeat zero 3..10 times */
+ symbol = 3 + bits(s, 3);
+ else /* == 18, repeat zero 11..138 times */
+ symbol = 11 + bits(s, 7);
+ if (index + symbol > nlen + ndist)
+ return -6; /* too many lengths! */
+ while (symbol--) /* repeat last or zero symbol times */
+ lengths[index++] = len;
+ }
+ }
+
+ /* check for end-of-block code -- there better be one! */
+ if (lengths[256] == 0)
+ return -9;
+
+ /* build huffman table for literal/length codes */
+ err = construct(&lencode, lengths, nlen);
+ if (err && (err < 0 || nlen != lencode.count[0] + lencode.count[1]))
+ return -7; /* incomplete code ok only for single length 1 code */
+
+ /* build huffman table for distance codes */
+ err = construct(&distcode, lengths + nlen, ndist);
+ if (err && (err < 0 || ndist != distcode.count[0] + distcode.count[1]))
+ return -8; /* incomplete code ok only for single length 1 code */
+
+ /* decode data until end-of-block code */
+ return codes(s, &lencode, &distcode);
+}
+
+/*
+ * Inflate source to dest. On return, destlen and sourcelen are updated to the
+ * size of the uncompressed data and the size of the deflate data respectively.
+ * On success, the return value of puff() is zero. If there is an error in the
+ * source data, i.e. it is not in the deflate format, then a negative value is
+ * returned. If there is not enough input available or there is not enough
+ * output space, then a positive error is returned. In that case, destlen and
+ * sourcelen are not updated to facilitate retrying from the beginning with the
+ * provision of more input data or more output space. In the case of invalid
+ * inflate data (a negative error), the dest and source pointers are updated to
+ * facilitate the debugging of deflators.
+ *
+ * puff() also has a mode to determine the size of the uncompressed output with
+ * no output written. For this dest must be (unsigned char *)0. In this case,
+ * the input value of *destlen is ignored, and on return *destlen is set to the
+ * size of the uncompressed output.
+ *
+ * The return codes are:
+ *
+ * 2: available inflate data did not terminate
+ * 1: output space exhausted before completing inflate
+ * 0: successful inflate
+ * -1: invalid block type (type == 3)
+ * -2: stored block length did not match one's complement
+ * -3: dynamic block code description: too many length or distance codes
+ * -4: dynamic block code description: code lengths codes incomplete
+ * -5: dynamic block code description: repeat lengths with no first length
+ * -6: dynamic block code description: repeat more than specified lengths
+ * -7: dynamic block code description: invalid literal/length code lengths
+ * -8: dynamic block code description: invalid distance code lengths
+ * -9: dynamic block code description: missing end-of-block code
+ * -10: invalid literal/length or distance code in fixed or dynamic block
+ * -11: distance is too far back in fixed or dynamic block
+ *
+ * Format notes:
+ *
+ * - Three bits are read for each block to determine the kind of block and
+ * whether or not it is the last block. Then the block is decoded and the
+ * process repeated if it was not the last block.
+ *
+ * - The leftover bits in the last byte of the deflate data after the last
+ * block (if it was a fixed or dynamic block) are undefined and have no
+ * expected values to check.
+ */
+int puff(unsigned char *dest, /* pointer to destination pointer */
+ unsigned long *destlen, /* amount of output space */
+ const unsigned char *source, /* pointer to source data pointer */
+ unsigned long *sourcelen) /* amount of input available */
+{
+ struct state s; /* input/output state */
+ int last, type; /* block information */
+ int err; /* return value */
+
+ /* initialize output state */
+ s.out = dest;
+ s.outlen = *destlen; /* ignored if dest is NIL */
+ s.outcnt = 0;
+
+ /* initialize input state */
+ s.in = source;
+ s.inlen = *sourcelen;
+ s.incnt = 0;
+ s.bitbuf = 0;
+ s.bitcnt = 0;
+
+ /* return if bits() or decode() tries to read past available input */
+ if (setjmp(s.env) != 0) /* if came back here via longjmp() */
+ err = 2; /* then skip do-loop, return error */
+ else {
+ /* process blocks until last block or error */
+ do {
+ last = bits(&s, 1); /* one if last block */
+ type = bits(&s, 2); /* block type 0..3 */
+ err = type == 0 ?
+ stored(&s) :
+ (type == 1 ?
+ fixed(&s) :
+ (type == 2 ?
+ dynamic(&s) :
+ -1)); /* type == 3, invalid */
+ if (err != 0)
+ break; /* return with error */
+ } while (!last);
+ }
+
+ /* update the lengths and return */
+ if (err <= 0) {
+ *destlen = s.outcnt;
+ *sourcelen = s.incnt;
+ }
+ return err;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.h
new file mode 100644
index 000000000..e23a24543
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/puff.h
@@ -0,0 +1,35 @@
+/* puff.h
+ Copyright (C) 2002-2013 Mark Adler, all rights reserved
+ version 2.3, 21 Jan 2013
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Mark Adler madler@alumni.caltech.edu
+ */
+
+
+/*
+ * See puff.c for purpose and usage.
+ */
+#ifndef NIL
+# define NIL ((unsigned char *)0) /* for no output option */
+#endif
+
+int puff(unsigned char *dest, /* pointer to destination pointer */
+ unsigned long *destlen, /* amount of output space */
+ const unsigned char *source, /* pointer to source data pointer */
+ unsigned long *sourcelen); /* amount of input available */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/pufftest.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/pufftest.c
new file mode 100644
index 000000000..776481488
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/pufftest.c
@@ -0,0 +1,165 @@
+/*
+ * pufftest.c
+ * Copyright (C) 2002-2013 Mark Adler
+ * For conditions of distribution and use, see copyright notice in puff.h
+ * version 2.3, 21 Jan 2013
+ */
+
+/* Example of how to use puff().
+
+ Usage: puff [-w] [-f] [-nnn] file
+ ... | puff [-w] [-f] [-nnn]
+
+ where file is the input file with deflate data, nnn is the number of bytes
+ of input to skip before inflating (e.g. to skip a zlib or gzip header), and
+ -w is used to write the decompressed data to stdout. -f is for coverage
+ testing, and causes pufftest to fail with not enough output space (-f does
+ a write like -w, so -w is not required). */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "puff.h"
+
+#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
+# include <fcntl.h>
+# include <io.h>
+# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+
+#define local static
+
+/* Return size times approximately the cube root of 2, keeping the result as 1,
+ 3, or 5 times a power of 2 -- the result is always > size, until the result
+ is the maximum value of an unsigned long, where it remains. This is useful
+ to keep reallocations less than ~33% over the actual data. */
+local size_t bythirds(size_t size)
+{
+ int n;
+ size_t m;
+
+ m = size;
+ for (n = 0; m; n++)
+ m >>= 1;
+ if (n < 3)
+ return size + 1;
+ n -= 3;
+ m = size >> n;
+ m += m == 6 ? 2 : 1;
+ m <<= n;
+ return m > size ? m : (size_t)(-1);
+}
+
+/* Read the input file *name, or stdin if name is NULL, into allocated memory.
+ Reallocate to larger buffers until the entire file is read in. Return a
+ pointer to the allocated data, or NULL if there was a memory allocation
+ failure. *len is the number of bytes of data read from the input file (even
+ if load() returns NULL). If the input file was empty or could not be opened
+ or read, *len is zero. */
+local void *load(const char *name, size_t *len)
+{
+ size_t size;
+ void *buf, *swap;
+ FILE *in;
+
+ *len = 0;
+ buf = malloc(size = 4096);
+ if (buf == NULL)
+ return NULL;
+ in = name == NULL ? stdin : fopen(name, "rb");
+ if (in != NULL) {
+ for (;;) {
+ *len += fread((char *)buf + *len, 1, size - *len, in);
+ if (*len < size) break;
+ size = bythirds(size);
+ if (size == *len || (swap = realloc(buf, size)) == NULL) {
+ free(buf);
+ buf = NULL;
+ break;
+ }
+ buf = swap;
+ }
+ fclose(in);
+ }
+ return buf;
+}
+
+int main(int argc, char **argv)
+{
+ int ret, put = 0, fail = 0;
+ unsigned skip = 0;
+ char *arg, *name = NULL;
+ unsigned char *source = NULL, *dest;
+ size_t len = 0;
+ unsigned long sourcelen, destlen;
+
+ /* process arguments */
+ while (arg = *++argv, --argc)
+ if (arg[0] == '-') {
+ if (arg[1] == 'w' && arg[2] == 0)
+ put = 1;
+ else if (arg[1] == 'f' && arg[2] == 0)
+ fail = 1, put = 1;
+ else if (arg[1] >= '0' && arg[1] <= '9')
+ skip = (unsigned)atoi(arg + 1);
+ else {
+ fprintf(stderr, "invalid option %s\n", arg);
+ return 3;
+ }
+ }
+ else if (name != NULL) {
+ fprintf(stderr, "only one file name allowed\n");
+ return 3;
+ }
+ else
+ name = arg;
+ source = load(name, &len);
+ if (source == NULL) {
+ fprintf(stderr, "memory allocation failure\n");
+ return 4;
+ }
+ if (len == 0) {
+ fprintf(stderr, "could not read %s, or it was empty\n",
+ name == NULL ? "<stdin>" : name);
+ free(source);
+ return 3;
+ }
+ if (skip >= len) {
+ fprintf(stderr, "skip request of %d leaves no input\n", skip);
+ free(source);
+ return 3;
+ }
+
+ /* test inflate data with offset skip */
+ len -= skip;
+ sourcelen = (unsigned long)len;
+ ret = puff(NIL, &destlen, source + skip, &sourcelen);
+ if (ret)
+ fprintf(stderr, "puff() failed with return code %d\n", ret);
+ else {
+ fprintf(stderr, "puff() succeeded uncompressing %lu bytes\n", destlen);
+ if (sourcelen < len) fprintf(stderr, "%lu compressed bytes unused\n",
+ len - sourcelen);
+ }
+
+ /* if requested, inflate again and write decompressd data to stdout */
+ if (put && ret == 0) {
+ if (fail)
+ destlen >>= 1;
+ dest = malloc(destlen);
+ if (dest == NULL) {
+ fprintf(stderr, "memory allocation failure\n");
+ free(source);
+ return 4;
+ }
+ puff(dest, &destlen, source + skip, &sourcelen);
+ SET_BINARY_MODE(stdout);
+ fwrite(dest, 1, destlen, stdout);
+ free(dest);
+ }
+
+ /* clean up */
+ free(source);
+ return ret;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/zeros.raw b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/zeros.raw
new file mode 100644
index 000000000..0a90e76b3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/puff/zeros.raw
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.c
new file mode 100644
index 000000000..8626c92ad
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.c
@@ -0,0 +1,275 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <windows.h>
+
+#include "zlib.h"
+
+
+void MyDoMinus64(LARGE_INTEGER *R,LARGE_INTEGER A,LARGE_INTEGER B)
+{
+ R->HighPart = A.HighPart - B.HighPart;
+ if (A.LowPart >= B.LowPart)
+ R->LowPart = A.LowPart - B.LowPart;
+ else
+ {
+ R->LowPart = A.LowPart - B.LowPart;
+ R->HighPart --;
+ }
+}
+
+#ifdef _M_X64
+// see http://msdn2.microsoft.com/library/twchhe95(en-us,vs.80).aspx for __rdtsc
+unsigned __int64 __rdtsc(void);
+void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
+{
+ // printf("rdtsc = %I64x\n",__rdtsc());
+ pbeginTime64->QuadPart=__rdtsc();
+}
+
+LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
+{
+ LARGE_INTEGER LIres;
+ unsigned _int64 res=__rdtsc()-((unsigned _int64)(beginTime64.QuadPart));
+ LIres.QuadPart=res;
+ // printf("rdtsc = %I64x\n",__rdtsc());
+ return LIres;
+}
+#else
+#ifdef _M_IX86
+void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
+{
+ DWORD dwEdx,dwEax;
+ _asm
+ {
+ rdtsc
+ mov dwEax,eax
+ mov dwEdx,edx
+ }
+ pbeginTime64->LowPart=dwEax;
+ pbeginTime64->HighPart=dwEdx;
+}
+
+void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
+{
+ myGetRDTSC32(pbeginTime64);
+}
+
+LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
+{
+ LARGE_INTEGER LIres,endTime64;
+ myGetRDTSC32(&endTime64);
+
+ LIres.LowPart=LIres.HighPart=0;
+ MyDoMinus64(&LIres,endTime64,beginTime64);
+ return LIres;
+}
+#else
+void myGetRDTSC32(LARGE_INTEGER * pbeginTime64)
+{
+}
+
+void BeginCountRdtsc(LARGE_INTEGER * pbeginTime64)
+{
+}
+
+LARGE_INTEGER GetResRdtsc(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
+{
+ LARGE_INTEGER lr;
+ lr.QuadPart=0;
+ return lr;
+}
+#endif
+#endif
+
+void BeginCountPerfCounter(LARGE_INTEGER * pbeginTime64,BOOL fComputeTimeQueryPerf)
+{
+ if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(pbeginTime64)))
+ {
+ pbeginTime64->LowPart = GetTickCount();
+ pbeginTime64->HighPart = 0;
+ }
+}
+
+DWORD GetMsecSincePerfCounter(LARGE_INTEGER beginTime64,BOOL fComputeTimeQueryPerf)
+{
+ LARGE_INTEGER endTime64,ticksPerSecond,ticks;
+ DWORDLONG ticksShifted,tickSecShifted;
+ DWORD dwLog=16+0;
+ DWORD dwRet;
+ if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))
+ dwRet = (GetTickCount() - beginTime64.LowPart)*1;
+ else
+ {
+ MyDoMinus64(&ticks,endTime64,beginTime64);
+ QueryPerformanceFrequency(&ticksPerSecond);
+
+
+ {
+ ticksShifted = Int64ShrlMod32(*(DWORDLONG*)&ticks,dwLog);
+ tickSecShifted = Int64ShrlMod32(*(DWORDLONG*)&ticksPerSecond,dwLog);
+
+ }
+
+ dwRet = (DWORD)((((DWORD)ticksShifted)*1000)/(DWORD)(tickSecShifted));
+ dwRet *=1;
+ }
+ return dwRet;
+}
+
+int ReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr)
+{
+ FILE* stream;
+ unsigned char* ptr;
+ int retVal=1;
+ stream=fopen(filename, "rb");
+ if (stream==NULL)
+ return 0;
+
+ fseek(stream,0,SEEK_END);
+
+ *plFileSize=ftell(stream);
+ fseek(stream,0,SEEK_SET);
+ ptr=malloc((*plFileSize)+1);
+ if (ptr==NULL)
+ retVal=0;
+ else
+ {
+ if (fread(ptr, 1, *plFileSize,stream) != (*plFileSize))
+ retVal=0;
+ }
+ fclose(stream);
+ *pFilePtr=ptr;
+ return retVal;
+}
+
+int main(int argc, char *argv[])
+{
+ int BlockSizeCompress=0x8000;
+ int BlockSizeUncompress=0x8000;
+ int cprLevel=Z_DEFAULT_COMPRESSION ;
+ long lFileSize;
+ unsigned char* FilePtr;
+ long lBufferSizeCpr;
+ long lBufferSizeUncpr;
+ long lCompressedSize=0;
+ unsigned char* CprPtr;
+ unsigned char* UncprPtr;
+ long lSizeCpr,lSizeUncpr;
+ DWORD dwGetTick,dwMsecQP;
+ LARGE_INTEGER li_qp,li_rdtsc,dwResRdtsc;
+
+ if (argc<=1)
+ {
+ printf("run TestZlib <File> [BlockSizeCompress] [BlockSizeUncompress] [compres. level]\n");
+ return 0;
+ }
+
+ if (ReadFileMemory(argv[1],&lFileSize,&FilePtr)==0)
+ {
+ printf("error reading %s\n",argv[1]);
+ return 1;
+ }
+ else printf("file %s read, %u bytes\n",argv[1],lFileSize);
+
+ if (argc>=3)
+ BlockSizeCompress=atol(argv[2]);
+
+ if (argc>=4)
+ BlockSizeUncompress=atol(argv[3]);
+
+ if (argc>=5)
+ cprLevel=(int)atol(argv[4]);
+
+ lBufferSizeCpr = lFileSize + (lFileSize/0x10) + 0x200;
+ lBufferSizeUncpr = lBufferSizeCpr;
+
+ CprPtr=(unsigned char*)malloc(lBufferSizeCpr + BlockSizeCompress);
+
+ BeginCountPerfCounter(&li_qp,TRUE);
+ dwGetTick=GetTickCount();
+ BeginCountRdtsc(&li_rdtsc);
+ {
+ z_stream zcpr;
+ int ret=Z_OK;
+ long lOrigToDo = lFileSize;
+ long lOrigDone = 0;
+ int step=0;
+ memset(&zcpr,0,sizeof(z_stream));
+ deflateInit(&zcpr,cprLevel);
+
+ zcpr.next_in = FilePtr;
+ zcpr.next_out = CprPtr;
+
+
+ do
+ {
+ long all_read_before = zcpr.total_in;
+ zcpr.avail_in = min(lOrigToDo,BlockSizeCompress);
+ zcpr.avail_out = BlockSizeCompress;
+ ret=deflate(&zcpr,(zcpr.avail_in==lOrigToDo) ? Z_FINISH : Z_SYNC_FLUSH);
+ lOrigDone += (zcpr.total_in-all_read_before);
+ lOrigToDo -= (zcpr.total_in-all_read_before);
+ step++;
+ } while (ret==Z_OK);
+
+ lSizeCpr=zcpr.total_out;
+ deflateEnd(&zcpr);
+ dwGetTick=GetTickCount()-dwGetTick;
+ dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
+ dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
+ printf("total compress size = %u, in %u step\n",lSizeCpr,step);
+ printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
+ printf("defcpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
+ printf("defcpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
+ }
+
+ CprPtr=(unsigned char*)realloc(CprPtr,lSizeCpr);
+ UncprPtr=(unsigned char*)malloc(lBufferSizeUncpr + BlockSizeUncompress);
+
+ BeginCountPerfCounter(&li_qp,TRUE);
+ dwGetTick=GetTickCount();
+ BeginCountRdtsc(&li_rdtsc);
+ {
+ z_stream zcpr;
+ int ret=Z_OK;
+ long lOrigToDo = lSizeCpr;
+ long lOrigDone = 0;
+ int step=0;
+ memset(&zcpr,0,sizeof(z_stream));
+ inflateInit(&zcpr);
+
+ zcpr.next_in = CprPtr;
+ zcpr.next_out = UncprPtr;
+
+
+ do
+ {
+ long all_read_before = zcpr.total_in;
+ zcpr.avail_in = min(lOrigToDo,BlockSizeUncompress);
+ zcpr.avail_out = BlockSizeUncompress;
+ ret=inflate(&zcpr,Z_SYNC_FLUSH);
+ lOrigDone += (zcpr.total_in-all_read_before);
+ lOrigToDo -= (zcpr.total_in-all_read_before);
+ step++;
+ } while (ret==Z_OK);
+
+ lSizeUncpr=zcpr.total_out;
+ inflateEnd(&zcpr);
+ dwGetTick=GetTickCount()-dwGetTick;
+ dwMsecQP=GetMsecSincePerfCounter(li_qp,TRUE);
+ dwResRdtsc=GetResRdtsc(li_rdtsc,TRUE);
+ printf("total uncompress size = %u, in %u step\n",lSizeUncpr,step);
+ printf("time = %u msec = %f sec\n",dwGetTick,dwGetTick/(double)1000.);
+ printf("uncpr time QP = %u msec = %f sec\n",dwMsecQP,dwMsecQP/(double)1000.);
+ printf("uncpr result rdtsc = %I64x\n\n",dwResRdtsc.QuadPart);
+ }
+
+ if (lSizeUncpr==lFileSize)
+ {
+ if (memcmp(FilePtr,UncprPtr,lFileSize)==0)
+ printf("compare ok\n");
+
+ }
+
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.txt
new file mode 100644
index 000000000..e508bb22f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/testzlib/testzlib.txt
@@ -0,0 +1,10 @@
+To build testzLib with Visual Studio 2005:
+
+copy to a directory file from :
+- root of zLib tree
+- contrib/testzlib
+- contrib/masmx86
+- contrib/masmx64
+- contrib/vstudio/vc7
+
+and open testzlib8.sln \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile
new file mode 100644
index 000000000..b54266fba
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile
@@ -0,0 +1,14 @@
+CC=cc
+CFLAGS=-g
+
+untgz: untgz.o ../../libz.a
+ $(CC) $(CFLAGS) -o untgz untgz.o -L../.. -lz
+
+untgz.o: untgz.c ../../zlib.h
+ $(CC) $(CFLAGS) -c -I../.. untgz.c
+
+../../libz.a:
+ cd ../..; ./configure; make
+
+clean:
+ rm -f untgz untgz.o *~
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile.msc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile.msc
new file mode 100644
index 000000000..77b860221
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/Makefile.msc
@@ -0,0 +1,17 @@
+CC=cl
+CFLAGS=-MD
+
+untgz.exe: untgz.obj ..\..\zlib.lib
+ $(CC) $(CFLAGS) untgz.obj ..\..\zlib.lib
+
+untgz.obj: untgz.c ..\..\zlib.h
+ $(CC) $(CFLAGS) -c -I..\.. untgz.c
+
+..\..\zlib.lib:
+ cd ..\..
+ $(MAKE) -f win32\makefile.msc
+ cd contrib\untgz
+
+clean:
+ -del untgz.obj
+ -del untgz.exe
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/untgz.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/untgz.c
new file mode 100644
index 000000000..2c391e598
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/untgz/untgz.c
@@ -0,0 +1,674 @@
+/*
+ * untgz.c -- Display contents and extract files from a gzip'd TAR file
+ *
+ * written by Pedro A. Aranda Gutierrez <paag@tid.es>
+ * adaptation to Unix by Jean-loup Gailly <jloup@gzip.org>
+ * various fixes by Cosmin Truta <cosmint@cs.ubbcluj.ro>
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <errno.h>
+
+#include "zlib.h"
+
+#ifdef unix
+# include <unistd.h>
+#else
+# include <direct.h>
+# include <io.h>
+#endif
+
+#ifdef WIN32
+#include <windows.h>
+# ifndef F_OK
+# define F_OK 0
+# endif
+# define mkdir(dirname,mode) _mkdir(dirname)
+# ifdef _MSC_VER
+# define access(path,mode) _access(path,mode)
+# define chmod(path,mode) _chmod(path,mode)
+# define strdup(str) _strdup(str)
+# endif
+#else
+# include <utime.h>
+#endif
+
+
+/* values used in typeflag field */
+
+#define REGTYPE '0' /* regular file */
+#define AREGTYPE '\0' /* regular file */
+#define LNKTYPE '1' /* link */
+#define SYMTYPE '2' /* reserved */
+#define CHRTYPE '3' /* character special */
+#define BLKTYPE '4' /* block special */
+#define DIRTYPE '5' /* directory */
+#define FIFOTYPE '6' /* FIFO special */
+#define CONTTYPE '7' /* reserved */
+
+/* GNU tar extensions */
+
+#define GNUTYPE_DUMPDIR 'D' /* file names from dumped directory */
+#define GNUTYPE_LONGLINK 'K' /* long link name */
+#define GNUTYPE_LONGNAME 'L' /* long file name */
+#define GNUTYPE_MULTIVOL 'M' /* continuation of file from another volume */
+#define GNUTYPE_NAMES 'N' /* file name that does not fit into main hdr */
+#define GNUTYPE_SPARSE 'S' /* sparse file */
+#define GNUTYPE_VOLHDR 'V' /* tape/volume header */
+
+
+/* tar header */
+
+#define BLOCKSIZE 512
+#define SHORTNAMESIZE 100
+
+struct tar_header
+{ /* byte offset */
+ char name[100]; /* 0 */
+ char mode[8]; /* 100 */
+ char uid[8]; /* 108 */
+ char gid[8]; /* 116 */
+ char size[12]; /* 124 */
+ char mtime[12]; /* 136 */
+ char chksum[8]; /* 148 */
+ char typeflag; /* 156 */
+ char linkname[100]; /* 157 */
+ char magic[6]; /* 257 */
+ char version[2]; /* 263 */
+ char uname[32]; /* 265 */
+ char gname[32]; /* 297 */
+ char devmajor[8]; /* 329 */
+ char devminor[8]; /* 337 */
+ char prefix[155]; /* 345 */
+ /* 500 */
+};
+
+union tar_buffer
+{
+ char buffer[BLOCKSIZE];
+ struct tar_header header;
+};
+
+struct attr_item
+{
+ struct attr_item *next;
+ char *fname;
+ int mode;
+ time_t time;
+};
+
+enum { TGZ_EXTRACT, TGZ_LIST, TGZ_INVALID };
+
+char *TGZfname OF((const char *));
+void TGZnotfound OF((const char *));
+
+int getoct OF((char *, int));
+char *strtime OF((time_t *));
+int setfiletime OF((char *, time_t));
+void push_attr OF((struct attr_item **, char *, int, time_t));
+void restore_attr OF((struct attr_item **));
+
+int ExprMatch OF((char *, char *));
+
+int makedir OF((char *));
+int matchname OF((int, int, char **, char *));
+
+void error OF((const char *));
+int tar OF((gzFile, int, int, int, char **));
+
+void help OF((int));
+int main OF((int, char **));
+
+char *prog;
+
+const char *TGZsuffix[] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL };
+
+/* return the file name of the TGZ archive */
+/* or NULL if it does not exist */
+
+char *TGZfname (const char *arcname)
+{
+ static char buffer[1024];
+ int origlen,i;
+
+ strcpy(buffer,arcname);
+ origlen = strlen(buffer);
+
+ for (i=0; TGZsuffix[i]; i++)
+ {
+ strcpy(buffer+origlen,TGZsuffix[i]);
+ if (access(buffer,F_OK) == 0)
+ return buffer;
+ }
+ return NULL;
+}
+
+
+/* error message for the filename */
+
+void TGZnotfound (const char *arcname)
+{
+ int i;
+
+ fprintf(stderr,"%s: Couldn't find ",prog);
+ for (i=0;TGZsuffix[i];i++)
+ fprintf(stderr,(TGZsuffix[i+1]) ? "%s%s, " : "or %s%s\n",
+ arcname,
+ TGZsuffix[i]);
+ exit(1);
+}
+
+
+/* convert octal digits to int */
+/* on error return -1 */
+
+int getoct (char *p,int width)
+{
+ int result = 0;
+ char c;
+
+ while (width--)
+ {
+ c = *p++;
+ if (c == 0)
+ break;
+ if (c == ' ')
+ continue;
+ if (c < '0' || c > '7')
+ return -1;
+ result = result * 8 + (c - '0');
+ }
+ return result;
+}
+
+
+/* convert time_t to string */
+/* use the "YYYY/MM/DD hh:mm:ss" format */
+
+char *strtime (time_t *t)
+{
+ struct tm *local;
+ static char result[32];
+
+ local = localtime(t);
+ sprintf(result,"%4d/%02d/%02d %02d:%02d:%02d",
+ local->tm_year+1900, local->tm_mon+1, local->tm_mday,
+ local->tm_hour, local->tm_min, local->tm_sec);
+ return result;
+}
+
+
+/* set file time */
+
+int setfiletime (char *fname,time_t ftime)
+{
+#ifdef WIN32
+ static int isWinNT = -1;
+ SYSTEMTIME st;
+ FILETIME locft, modft;
+ struct tm *loctm;
+ HANDLE hFile;
+ int result;
+
+ loctm = localtime(&ftime);
+ if (loctm == NULL)
+ return -1;
+
+ st.wYear = (WORD)loctm->tm_year + 1900;
+ st.wMonth = (WORD)loctm->tm_mon + 1;
+ st.wDayOfWeek = (WORD)loctm->tm_wday;
+ st.wDay = (WORD)loctm->tm_mday;
+ st.wHour = (WORD)loctm->tm_hour;
+ st.wMinute = (WORD)loctm->tm_min;
+ st.wSecond = (WORD)loctm->tm_sec;
+ st.wMilliseconds = 0;
+ if (!SystemTimeToFileTime(&st, &locft) ||
+ !LocalFileTimeToFileTime(&locft, &modft))
+ return -1;
+
+ if (isWinNT < 0)
+ isWinNT = (GetVersion() < 0x80000000) ? 1 : 0;
+ hFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
+ (isWinNT ? FILE_FLAG_BACKUP_SEMANTICS : 0),
+ NULL);
+ if (hFile == INVALID_HANDLE_VALUE)
+ return -1;
+ result = SetFileTime(hFile, NULL, NULL, &modft) ? 0 : -1;
+ CloseHandle(hFile);
+ return result;
+#else
+ struct utimbuf settime;
+
+ settime.actime = settime.modtime = ftime;
+ return utime(fname,&settime);
+#endif
+}
+
+
+/* push file attributes */
+
+void push_attr(struct attr_item **list,char *fname,int mode,time_t time)
+{
+ struct attr_item *item;
+
+ item = (struct attr_item *)malloc(sizeof(struct attr_item));
+ if (item == NULL)
+ error("Out of memory");
+ item->fname = strdup(fname);
+ item->mode = mode;
+ item->time = time;
+ item->next = *list;
+ *list = item;
+}
+
+
+/* restore file attributes */
+
+void restore_attr(struct attr_item **list)
+{
+ struct attr_item *item, *prev;
+
+ for (item = *list; item != NULL; )
+ {
+ setfiletime(item->fname,item->time);
+ chmod(item->fname,item->mode);
+ prev = item;
+ item = item->next;
+ free(prev);
+ }
+ *list = NULL;
+}
+
+
+/* match regular expression */
+
+#define ISSPECIAL(c) (((c) == '*') || ((c) == '/'))
+
+int ExprMatch (char *string,char *expr)
+{
+ while (1)
+ {
+ if (ISSPECIAL(*expr))
+ {
+ if (*expr == '/')
+ {
+ if (*string != '\\' && *string != '/')
+ return 0;
+ string ++; expr++;
+ }
+ else if (*expr == '*')
+ {
+ if (*expr ++ == 0)
+ return 1;
+ while (*++string != *expr)
+ if (*string == 0)
+ return 0;
+ }
+ }
+ else
+ {
+ if (*string != *expr)
+ return 0;
+ if (*expr++ == 0)
+ return 1;
+ string++;
+ }
+ }
+}
+
+
+/* recursive mkdir */
+/* abort on ENOENT; ignore other errors like "directory already exists" */
+/* return 1 if OK */
+/* 0 on error */
+
+int makedir (char *newdir)
+{
+ char *buffer = strdup(newdir);
+ char *p;
+ int len = strlen(buffer);
+
+ if (len <= 0) {
+ free(buffer);
+ return 0;
+ }
+ if (buffer[len-1] == '/') {
+ buffer[len-1] = '\0';
+ }
+ if (mkdir(buffer, 0755) == 0)
+ {
+ free(buffer);
+ return 1;
+ }
+
+ p = buffer+1;
+ while (1)
+ {
+ char hold;
+
+ while(*p && *p != '\\' && *p != '/')
+ p++;
+ hold = *p;
+ *p = 0;
+ if ((mkdir(buffer, 0755) == -1) && (errno == ENOENT))
+ {
+ fprintf(stderr,"%s: Couldn't create directory %s\n",prog,buffer);
+ free(buffer);
+ return 0;
+ }
+ if (hold == 0)
+ break;
+ *p++ = hold;
+ }
+ free(buffer);
+ return 1;
+}
+
+
+int matchname (int arg,int argc,char **argv,char *fname)
+{
+ if (arg == argc) /* no arguments given (untgz tgzarchive) */
+ return 1;
+
+ while (arg < argc)
+ if (ExprMatch(fname,argv[arg++]))
+ return 1;
+
+ return 0; /* ignore this for the moment being */
+}
+
+
+/* tar file list or extract */
+
+int tar (gzFile in,int action,int arg,int argc,char **argv)
+{
+ union tar_buffer buffer;
+ int len;
+ int err;
+ int getheader = 1;
+ int remaining = 0;
+ FILE *outfile = NULL;
+ char fname[BLOCKSIZE];
+ int tarmode;
+ time_t tartime;
+ struct attr_item *attributes = NULL;
+
+ if (action == TGZ_LIST)
+ printf(" date time size file\n"
+ " ---------- -------- --------- -------------------------------------\n");
+ while (1)
+ {
+ len = gzread(in, &buffer, BLOCKSIZE);
+ if (len < 0)
+ error(gzerror(in, &err));
+ /*
+ * Always expect complete blocks to process
+ * the tar information.
+ */
+ if (len != BLOCKSIZE)
+ {
+ action = TGZ_INVALID; /* force error exit */
+ remaining = 0; /* force I/O cleanup */
+ }
+
+ /*
+ * If we have to get a tar header
+ */
+ if (getheader >= 1)
+ {
+ /*
+ * if we met the end of the tar
+ * or the end-of-tar block,
+ * we are done
+ */
+ if (len == 0 || buffer.header.name[0] == 0)
+ break;
+
+ tarmode = getoct(buffer.header.mode,8);
+ tartime = (time_t)getoct(buffer.header.mtime,12);
+ if (tarmode == -1 || tartime == (time_t)-1)
+ {
+ buffer.header.name[0] = 0;
+ action = TGZ_INVALID;
+ }
+
+ if (getheader == 1)
+ {
+ strncpy(fname,buffer.header.name,SHORTNAMESIZE);
+ if (fname[SHORTNAMESIZE-1] != 0)
+ fname[SHORTNAMESIZE] = 0;
+ }
+ else
+ {
+ /*
+ * The file name is longer than SHORTNAMESIZE
+ */
+ if (strncmp(fname,buffer.header.name,SHORTNAMESIZE-1) != 0)
+ error("bad long name");
+ getheader = 1;
+ }
+
+ /*
+ * Act according to the type flag
+ */
+ switch (buffer.header.typeflag)
+ {
+ case DIRTYPE:
+ if (action == TGZ_LIST)
+ printf(" %s <dir> %s\n",strtime(&tartime),fname);
+ if (action == TGZ_EXTRACT)
+ {
+ makedir(fname);
+ push_attr(&attributes,fname,tarmode,tartime);
+ }
+ break;
+ case REGTYPE:
+ case AREGTYPE:
+ remaining = getoct(buffer.header.size,12);
+ if (remaining == -1)
+ {
+ action = TGZ_INVALID;
+ break;
+ }
+ if (action == TGZ_LIST)
+ printf(" %s %9d %s\n",strtime(&tartime),remaining,fname);
+ else if (action == TGZ_EXTRACT)
+ {
+ if (matchname(arg,argc,argv,fname))
+ {
+ outfile = fopen(fname,"wb");
+ if (outfile == NULL) {
+ /* try creating directory */
+ char *p = strrchr(fname, '/');
+ if (p != NULL) {
+ *p = '\0';
+ makedir(fname);
+ *p = '/';
+ outfile = fopen(fname,"wb");
+ }
+ }
+ if (outfile != NULL)
+ printf("Extracting %s\n",fname);
+ else
+ fprintf(stderr, "%s: Couldn't create %s",prog,fname);
+ }
+ else
+ outfile = NULL;
+ }
+ getheader = 0;
+ break;
+ case GNUTYPE_LONGLINK:
+ case GNUTYPE_LONGNAME:
+ remaining = getoct(buffer.header.size,12);
+ if (remaining < 0 || remaining >= BLOCKSIZE)
+ {
+ action = TGZ_INVALID;
+ break;
+ }
+ len = gzread(in, fname, BLOCKSIZE);
+ if (len < 0)
+ error(gzerror(in, &err));
+ if (fname[BLOCKSIZE-1] != 0 || (int)strlen(fname) > remaining)
+ {
+ action = TGZ_INVALID;
+ break;
+ }
+ getheader = 2;
+ break;
+ default:
+ if (action == TGZ_LIST)
+ printf(" %s <---> %s\n",strtime(&tartime),fname);
+ break;
+ }
+ }
+ else
+ {
+ unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining;
+
+ if (outfile != NULL)
+ {
+ if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes)
+ {
+ fprintf(stderr,
+ "%s: Error writing %s -- skipping\n",prog,fname);
+ fclose(outfile);
+ outfile = NULL;
+ remove(fname);
+ }
+ }
+ remaining -= bytes;
+ }
+
+ if (remaining == 0)
+ {
+ getheader = 1;
+ if (outfile != NULL)
+ {
+ fclose(outfile);
+ outfile = NULL;
+ if (action != TGZ_INVALID)
+ push_attr(&attributes,fname,tarmode,tartime);
+ }
+ }
+
+ /*
+ * Abandon if errors are found
+ */
+ if (action == TGZ_INVALID)
+ {
+ error("broken archive");
+ break;
+ }
+ }
+
+ /*
+ * Restore file modes and time stamps
+ */
+ restore_attr(&attributes);
+
+ if (gzclose(in) != Z_OK)
+ error("failed gzclose");
+
+ return 0;
+}
+
+
+/* ============================================================ */
+
+void help(int exitval)
+{
+ printf("untgz version 0.2.1\n"
+ " using zlib version %s\n\n",
+ zlibVersion());
+ printf("Usage: untgz file.tgz extract all files\n"
+ " untgz file.tgz fname ... extract selected files\n"
+ " untgz -l file.tgz list archive contents\n"
+ " untgz -h display this help\n");
+ exit(exitval);
+}
+
+void error(const char *msg)
+{
+ fprintf(stderr, "%s: %s\n", prog, msg);
+ exit(1);
+}
+
+
+/* ============================================================ */
+
+#if defined(WIN32) && defined(__GNUC__)
+int _CRT_glob = 0; /* disable argument globbing in MinGW */
+#endif
+
+int main(int argc,char **argv)
+{
+ int action = TGZ_EXTRACT;
+ int arg = 1;
+ char *TGZfile;
+ gzFile *f;
+
+ prog = strrchr(argv[0],'\\');
+ if (prog == NULL)
+ {
+ prog = strrchr(argv[0],'/');
+ if (prog == NULL)
+ {
+ prog = strrchr(argv[0],':');
+ if (prog == NULL)
+ prog = argv[0];
+ else
+ prog++;
+ }
+ else
+ prog++;
+ }
+ else
+ prog++;
+
+ if (argc == 1)
+ help(0);
+
+ if (strcmp(argv[arg],"-l") == 0)
+ {
+ action = TGZ_LIST;
+ if (argc == ++arg)
+ help(0);
+ }
+ else if (strcmp(argv[arg],"-h") == 0)
+ {
+ help(0);
+ }
+
+ if ((TGZfile = TGZfname(argv[arg])) == NULL)
+ TGZnotfound(argv[arg]);
+
+ ++arg;
+ if ((action == TGZ_LIST) && (arg != argc))
+ help(1);
+
+/*
+ * Process the TGZ file
+ */
+ switch(action)
+ {
+ case TGZ_LIST:
+ case TGZ_EXTRACT:
+ f = gzopen(TGZfile,"rb");
+ if (f == NULL)
+ {
+ fprintf(stderr,"%s: Couldn't gzopen %s\n",prog,TGZfile);
+ return 1;
+ }
+ exit(tar(f, action, arg, argc, argv));
+ break;
+
+ default:
+ error("Unknown option");
+ exit(1);
+ }
+
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/readme.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/readme.txt
new file mode 100644
index 000000000..48cccc0d2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/readme.txt
@@ -0,0 +1,78 @@
+Building instructions for the DLL versions of Zlib 1.2.11
+========================================================
+
+This directory contains projects that build zlib and minizip using
+Microsoft Visual C++ 9.0/10.0.
+
+You don't need to build these projects yourself. You can download the
+binaries from:
+ http://www.winimage.com/zLibDll
+
+More information can be found at this site.
+
+
+
+
+
+Build instructions for Visual Studio 2008 (32 bits or 64 bits)
+--------------------------------------------------------------
+- Decompress current zlib, including all contrib/* files
+- Compile assembly code (with Visual Studio Command Prompt) by running:
+ bld_ml64.bat (in contrib\masmx64)
+ bld_ml32.bat (in contrib\masmx86)
+- Open contrib\vstudio\vc9\zlibvc.sln with Microsoft Visual C++ 2008
+- Or run: vcbuild /rebuild contrib\vstudio\vc9\zlibvc.sln "Release|Win32"
+
+Build instructions for Visual Studio 2010 (32 bits or 64 bits)
+--------------------------------------------------------------
+- Decompress current zlib, including all contrib/* files
+- Open contrib\vstudio\vc10\zlibvc.sln with Microsoft Visual C++ 2010
+
+Build instructions for Visual Studio 2012 (32 bits or 64 bits)
+--------------------------------------------------------------
+- Decompress current zlib, including all contrib/* files
+- Open contrib\vstudio\vc11\zlibvc.sln with Microsoft Visual C++ 2012
+
+Build instructions for Visual Studio 2013 (32 bits or 64 bits)
+--------------------------------------------------------------
+- Decompress current zlib, including all contrib/* files
+- Open contrib\vstudio\vc12\zlibvc.sln with Microsoft Visual C++ 2013
+
+Build instructions for Visual Studio 2015 (32 bits or 64 bits)
+--------------------------------------------------------------
+- Decompress current zlib, including all contrib/* files
+- Open contrib\vstudio\vc14\zlibvc.sln with Microsoft Visual C++ 2015
+
+
+Important
+---------
+- To use zlibwapi.dll in your application, you must define the
+ macro ZLIB_WINAPI when compiling your application's source files.
+
+
+Additional notes
+----------------
+- This DLL, named zlibwapi.dll, is compatible to the old zlib.dll built
+ by Gilles Vollant from the zlib 1.1.x sources, and distributed at
+ http://www.winimage.com/zLibDll
+ It uses the WINAPI calling convention for the exported functions, and
+ includes the minizip functionality. If your application needs that
+ particular build of zlib.dll, you can rename zlibwapi.dll to zlib.dll.
+
+- The new DLL was renamed because there exist several incompatible
+ versions of zlib.dll on the Internet.
+
+- There is also an official DLL build of zlib, named zlib1.dll. This one
+ is exporting the functions using the CDECL convention. See the file
+ win32\DLL_FAQ.txt found in this zlib distribution.
+
+- There used to be a ZLIB_DLL macro in zlib 1.1.x, but now this symbol
+ has a slightly different effect. To avoid compatibility problems, do
+ not define it here.
+
+
+Gilles Vollant
+info@winimage.com
+
+Visual Studio 2013 and 2015 Projects from Sean Hunt
+seandhunt_7@yahoo.com
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj
new file mode 100644
index 000000000..1b3624215
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\miniunz.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj.filters
new file mode 100644
index 000000000..0bd12210c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/miniunz.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{048af943-022b-4db6-beeb-a54c34774ee2}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{c1d600d2-888f-4aea-b73e-8b0dd9befa0c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{0844199a-966b-4f19-81db-1e0125e141b9}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\miniunz.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj
new file mode 100644
index 000000000..ccd3651df
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\minizip.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj.filters
new file mode 100644
index 000000000..7076d76ff
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/minizip.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{c0419b40-bf50-40da-b153-ff74215b79de}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{bb87b070-735b-478e-92ce-7383abb2f36c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{f46ab6a6-548f-43cb-ae96-681abb5bd5db}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\minizip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj
new file mode 100644
index 000000000..476b8ea45
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj
@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <RootNamespace>testzlib</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj.filters
new file mode 100644
index 000000000..327649103
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlib.vcxproj.filters
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{c1f6a2e3-5da5-4955-8653-310d3efe05a9}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{c2aaffdc-2c95-4d6f-8466-4bec5890af2c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{c274fe07-05f2-461c-964b-f6341e4e7eb5}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\compress.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\crc32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\deflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\infback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inftrees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\testzlib\testzlib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\trees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\uncompr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj
new file mode 100644
index 000000000..8e38876fa
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
new file mode 100644
index 000000000..ab87f09f4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{fa61a89f-93fc-4c89-b29e-36224b7592f4}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{d4b85da0-2ba2-4934-b57f-e2584e3848ee}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{e573e075-00bd-4a7d-bd67-a8cc9bfc5aca}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\testzlib\testzlib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlib.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlib.rc
new file mode 100644
index 000000000..c4e4b016e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlib.rc
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+#define IDR_VERSION1 1
+IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+ FILEVERSION 1, 2, 11, 0
+ PRODUCTVERSION 1, 2, 11, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS_DOS_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+
+ BEGIN
+ VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
+ VALUE "FileVersion", "1.2.11\0"
+ VALUE "InternalName", "zlib\0"
+ VALUE "OriginalFilename", "zlibwapi.dll\0"
+ VALUE "ProductName", "ZLib.DLL\0"
+ VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj
new file mode 100644
index 000000000..45389a352
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c" />
+ <ClCompile Include="..\..\minizip\zip.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj.filters
new file mode 100644
index 000000000..0c8b2501c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibstat.vcxproj.filters
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{174213f6-7f66-4ae8-a3a8-a1e0a1e6ffdd}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\compress.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\crc32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\deflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzclose.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzlib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzread.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzwrite.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\infback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inftrees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\ioapi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\trees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\uncompr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc">
+ <Filter>Source Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def">
+ <Filter>Source Files</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.def
new file mode 100644
index 000000000..f876c3bca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.def
@@ -0,0 +1,153 @@
+LIBRARY
+; zlib data compression and ZIP file I/O library
+
+VERSION 1.2
+
+EXPORTS
+ adler32 @1
+ compress @2
+ crc32 @3
+ deflate @4
+ deflateCopy @5
+ deflateEnd @6
+ deflateInit2_ @7
+ deflateInit_ @8
+ deflateParams @9
+ deflateReset @10
+ deflateSetDictionary @11
+ gzclose @12
+ gzdopen @13
+ gzerror @14
+ gzflush @15
+ gzopen @16
+ gzread @17
+ gzwrite @18
+ inflate @19
+ inflateEnd @20
+ inflateInit2_ @21
+ inflateInit_ @22
+ inflateReset @23
+ inflateSetDictionary @24
+ inflateSync @25
+ uncompress @26
+ zlibVersion @27
+ gzprintf @28
+ gzputc @29
+ gzgetc @30
+ gzseek @31
+ gzrewind @32
+ gztell @33
+ gzeof @34
+ gzsetparams @35
+ zError @36
+ inflateSyncPoint @37
+ get_crc_table @38
+ compress2 @39
+ gzputs @40
+ gzgets @41
+ inflateCopy @42
+ inflateBackInit_ @43
+ inflateBack @44
+ inflateBackEnd @45
+ compressBound @46
+ deflateBound @47
+ gzclearerr @48
+ gzungetc @49
+ zlibCompileFlags @50
+ deflatePrime @51
+ deflatePending @52
+
+ unzOpen @61
+ unzClose @62
+ unzGetGlobalInfo @63
+ unzGetCurrentFileInfo @64
+ unzGoToFirstFile @65
+ unzGoToNextFile @66
+ unzOpenCurrentFile @67
+ unzReadCurrentFile @68
+ unzOpenCurrentFile3 @69
+ unztell @70
+ unzeof @71
+ unzCloseCurrentFile @72
+ unzGetGlobalComment @73
+ unzStringFileNameCompare @74
+ unzLocateFile @75
+ unzGetLocalExtrafield @76
+ unzOpen2 @77
+ unzOpenCurrentFile2 @78
+ unzOpenCurrentFilePassword @79
+
+ zipOpen @80
+ zipOpenNewFileInZip @81
+ zipWriteInFileInZip @82
+ zipCloseFileInZip @83
+ zipClose @84
+ zipOpenNewFileInZip2 @86
+ zipCloseFileInZipRaw @87
+ zipOpen2 @88
+ zipOpenNewFileInZip3 @89
+
+ unzGetFilePos @100
+ unzGoToFilePos @101
+
+ fill_win32_filefunc @110
+
+; zlibwapi v1.2.4 added:
+ fill_win32_filefunc64 @111
+ fill_win32_filefunc64A @112
+ fill_win32_filefunc64W @113
+
+ unzOpen64 @120
+ unzOpen2_64 @121
+ unzGetGlobalInfo64 @122
+ unzGetCurrentFileInfo64 @124
+ unzGetCurrentFileZStreamPos64 @125
+ unztell64 @126
+ unzGetFilePos64 @127
+ unzGoToFilePos64 @128
+
+ zipOpen64 @130
+ zipOpen2_64 @131
+ zipOpenNewFileInZip64 @132
+ zipOpenNewFileInZip2_64 @133
+ zipOpenNewFileInZip3_64 @134
+ zipOpenNewFileInZip4_64 @135
+ zipCloseFileInZipRaw64 @136
+
+; zlib1 v1.2.4 added:
+ adler32_combine @140
+ crc32_combine @142
+ deflateSetHeader @144
+ deflateTune @145
+ gzbuffer @146
+ gzclose_r @147
+ gzclose_w @148
+ gzdirect @149
+ gzoffset @150
+ inflateGetHeader @156
+ inflateMark @157
+ inflatePrime @158
+ inflateReset2 @159
+ inflateUndermine @160
+
+; zlib1 v1.2.6 added:
+ gzgetc_ @161
+ inflateResetKeep @163
+ deflateResetKeep @164
+
+; zlib1 v1.2.7 added:
+ gzopen_w @165
+
+; zlib1 v1.2.8 added:
+ inflateGetDictionary @166
+ gzvprintf @167
+
+; zlib1 v1.2.9 added:
+ inflateCodesUsed @168
+ inflateValidate @169
+ uncompress2 @170
+ gzfread @171
+ gzfwrite @172
+ deflateGetDictionary @173
+ adler32_z @174
+ crc32_z @175
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.sln
new file mode 100644
index 000000000..649f40c7e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.sln
@@ -0,0 +1,135 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Itanium = Debug|Itanium
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Itanium = Release|Itanium
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.Build.0 = Debug|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.Build.0 = Debug|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.Build.0 = Release|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.Build.0 = Release|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.Build.0 = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.Build.0 = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj
new file mode 100644
index 000000000..7d7c49a6d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj
@@ -0,0 +1,657 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapid</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapid</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\minizip\iowin32.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\deflate.h" />
+ <ClInclude Include="..\..\..\infblock.h" />
+ <ClInclude Include="..\..\..\infcodes.h" />
+ <ClInclude Include="..\..\..\inffast.h" />
+ <ClInclude Include="..\..\..\inftrees.h" />
+ <ClInclude Include="..\..\..\infutil.h" />
+ <ClInclude Include="..\..\..\zconf.h" />
+ <ClInclude Include="..\..\..\zlib.h" />
+ <ClInclude Include="..\..\..\zutil.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj.filters b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj.filters
new file mode 100644
index 000000000..22786824f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc10/zlibvc.vcxproj.filters
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{07934a85-8b61-443d-a0ee-b2eedb74f3cd}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{1d99675b-433d-4a21-9e50-ed4ab8b19762}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;fi;fd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{431c0958-fa71-44d0-9084-2d19d100c0cc}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\compress.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\crc32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\deflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzclose.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzlib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzread.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\gzwrite.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\infback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inflate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inftrees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\ioapi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\iowin32.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\trees.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\uncompr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc">
+ <Filter>Source Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def">
+ <Filter>Source Files</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\deflate.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\infblock.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\infcodes.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\inffast.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\inftrees.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\infutil.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\zconf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\zlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\zutil.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/miniunz.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/miniunz.vcxproj
new file mode 100644
index 000000000..99be63d69
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/miniunz.vcxproj
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\miniunz.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/minizip.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/minizip.vcxproj
new file mode 100644
index 000000000..d6e98f4d5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/minizip.vcxproj
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\minizip.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlib.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlib.vcxproj
new file mode 100644
index 000000000..0115dd17b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlib.vcxproj
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <RootNamespace>testzlib</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlibdll.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlibdll.vcxproj
new file mode 100644
index 000000000..9d36336eb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/testzlibdll.vcxproj
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlib.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlib.rc
new file mode 100644
index 000000000..c4e4b016e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlib.rc
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+#define IDR_VERSION1 1
+IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+ FILEVERSION 1, 2, 11, 0
+ PRODUCTVERSION 1, 2, 11, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS_DOS_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+
+ BEGIN
+ VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
+ VALUE "FileVersion", "1.2.11\0"
+ VALUE "InternalName", "zlib\0"
+ VALUE "OriginalFilename", "zlibwapi.dll\0"
+ VALUE "ProductName", "ZLib.DLL\0"
+ VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibstat.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibstat.vcxproj
new file mode 100644
index 000000000..64b4d869d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibstat.vcxproj
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c" />
+ <ClCompile Include="..\..\minizip\zip.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.def
new file mode 100644
index 000000000..f876c3bca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.def
@@ -0,0 +1,153 @@
+LIBRARY
+; zlib data compression and ZIP file I/O library
+
+VERSION 1.2
+
+EXPORTS
+ adler32 @1
+ compress @2
+ crc32 @3
+ deflate @4
+ deflateCopy @5
+ deflateEnd @6
+ deflateInit2_ @7
+ deflateInit_ @8
+ deflateParams @9
+ deflateReset @10
+ deflateSetDictionary @11
+ gzclose @12
+ gzdopen @13
+ gzerror @14
+ gzflush @15
+ gzopen @16
+ gzread @17
+ gzwrite @18
+ inflate @19
+ inflateEnd @20
+ inflateInit2_ @21
+ inflateInit_ @22
+ inflateReset @23
+ inflateSetDictionary @24
+ inflateSync @25
+ uncompress @26
+ zlibVersion @27
+ gzprintf @28
+ gzputc @29
+ gzgetc @30
+ gzseek @31
+ gzrewind @32
+ gztell @33
+ gzeof @34
+ gzsetparams @35
+ zError @36
+ inflateSyncPoint @37
+ get_crc_table @38
+ compress2 @39
+ gzputs @40
+ gzgets @41
+ inflateCopy @42
+ inflateBackInit_ @43
+ inflateBack @44
+ inflateBackEnd @45
+ compressBound @46
+ deflateBound @47
+ gzclearerr @48
+ gzungetc @49
+ zlibCompileFlags @50
+ deflatePrime @51
+ deflatePending @52
+
+ unzOpen @61
+ unzClose @62
+ unzGetGlobalInfo @63
+ unzGetCurrentFileInfo @64
+ unzGoToFirstFile @65
+ unzGoToNextFile @66
+ unzOpenCurrentFile @67
+ unzReadCurrentFile @68
+ unzOpenCurrentFile3 @69
+ unztell @70
+ unzeof @71
+ unzCloseCurrentFile @72
+ unzGetGlobalComment @73
+ unzStringFileNameCompare @74
+ unzLocateFile @75
+ unzGetLocalExtrafield @76
+ unzOpen2 @77
+ unzOpenCurrentFile2 @78
+ unzOpenCurrentFilePassword @79
+
+ zipOpen @80
+ zipOpenNewFileInZip @81
+ zipWriteInFileInZip @82
+ zipCloseFileInZip @83
+ zipClose @84
+ zipOpenNewFileInZip2 @86
+ zipCloseFileInZipRaw @87
+ zipOpen2 @88
+ zipOpenNewFileInZip3 @89
+
+ unzGetFilePos @100
+ unzGoToFilePos @101
+
+ fill_win32_filefunc @110
+
+; zlibwapi v1.2.4 added:
+ fill_win32_filefunc64 @111
+ fill_win32_filefunc64A @112
+ fill_win32_filefunc64W @113
+
+ unzOpen64 @120
+ unzOpen2_64 @121
+ unzGetGlobalInfo64 @122
+ unzGetCurrentFileInfo64 @124
+ unzGetCurrentFileZStreamPos64 @125
+ unztell64 @126
+ unzGetFilePos64 @127
+ unzGoToFilePos64 @128
+
+ zipOpen64 @130
+ zipOpen2_64 @131
+ zipOpenNewFileInZip64 @132
+ zipOpenNewFileInZip2_64 @133
+ zipOpenNewFileInZip3_64 @134
+ zipOpenNewFileInZip4_64 @135
+ zipCloseFileInZipRaw64 @136
+
+; zlib1 v1.2.4 added:
+ adler32_combine @140
+ crc32_combine @142
+ deflateSetHeader @144
+ deflateTune @145
+ gzbuffer @146
+ gzclose_r @147
+ gzclose_w @148
+ gzdirect @149
+ gzoffset @150
+ inflateGetHeader @156
+ inflateMark @157
+ inflatePrime @158
+ inflateReset2 @159
+ inflateUndermine @160
+
+; zlib1 v1.2.6 added:
+ gzgetc_ @161
+ inflateResetKeep @163
+ deflateResetKeep @164
+
+; zlib1 v1.2.7 added:
+ gzopen_w @165
+
+; zlib1 v1.2.8 added:
+ inflateGetDictionary @166
+ gzvprintf @167
+
+; zlib1 v1.2.9 added:
+ inflateCodesUsed @168
+ inflateValidate @169
+ uncompress2 @170
+ gzfread @171
+ gzfwrite @172
+ deflateGetDictionary @173
+ adler32_z @174
+ crc32_z @175
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.sln
new file mode 100644
index 000000000..b7e381266
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.sln
@@ -0,0 +1,117 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Itanium = Debug|Itanium
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Itanium = Release|Itanium
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.vcxproj
new file mode 100644
index 000000000..c4cffccf1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc11/zlibvc.vcxproj
@@ -0,0 +1,688 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\contrib\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\minizip\iowin32.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\deflate.h" />
+ <ClInclude Include="..\..\..\infblock.h" />
+ <ClInclude Include="..\..\..\infcodes.h" />
+ <ClInclude Include="..\..\..\inffast.h" />
+ <ClInclude Include="..\..\..\inftrees.h" />
+ <ClInclude Include="..\..\..\infutil.h" />
+ <ClInclude Include="..\..\..\zconf.h" />
+ <ClInclude Include="..\..\..\zlib.h" />
+ <ClInclude Include="..\..\..\zutil.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/miniunz.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/miniunz.vcxproj
new file mode 100644
index 000000000..d88ac7fc7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/miniunz.vcxproj
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\miniunz.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/minizip.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/minizip.vcxproj
new file mode 100644
index 000000000..f1f239c9e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/minizip.vcxproj
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\minizip.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlib.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlib.vcxproj
new file mode 100644
index 000000000..64b2cbe34
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlib.vcxproj
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <RootNamespace>testzlib</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlibdll.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlibdll.vcxproj
new file mode 100644
index 000000000..c66573a8b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/testzlibdll.vcxproj
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlib.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlib.rc
new file mode 100644
index 000000000..c4e4b016e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlib.rc
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+#define IDR_VERSION1 1
+IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+ FILEVERSION 1, 2, 11, 0
+ PRODUCTVERSION 1, 2, 11, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS_DOS_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+
+ BEGIN
+ VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
+ VALUE "FileVersion", "1.2.11\0"
+ VALUE "InternalName", "zlib\0"
+ VALUE "OriginalFilename", "zlibwapi.dll\0"
+ VALUE "ProductName", "ZLib.DLL\0"
+ VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibstat.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibstat.vcxproj
new file mode 100644
index 000000000..3fdee7c50
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibstat.vcxproj
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c" />
+ <ClCompile Include="..\..\minizip\zip.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.def
new file mode 100644
index 000000000..f876c3bca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.def
@@ -0,0 +1,153 @@
+LIBRARY
+; zlib data compression and ZIP file I/O library
+
+VERSION 1.2
+
+EXPORTS
+ adler32 @1
+ compress @2
+ crc32 @3
+ deflate @4
+ deflateCopy @5
+ deflateEnd @6
+ deflateInit2_ @7
+ deflateInit_ @8
+ deflateParams @9
+ deflateReset @10
+ deflateSetDictionary @11
+ gzclose @12
+ gzdopen @13
+ gzerror @14
+ gzflush @15
+ gzopen @16
+ gzread @17
+ gzwrite @18
+ inflate @19
+ inflateEnd @20
+ inflateInit2_ @21
+ inflateInit_ @22
+ inflateReset @23
+ inflateSetDictionary @24
+ inflateSync @25
+ uncompress @26
+ zlibVersion @27
+ gzprintf @28
+ gzputc @29
+ gzgetc @30
+ gzseek @31
+ gzrewind @32
+ gztell @33
+ gzeof @34
+ gzsetparams @35
+ zError @36
+ inflateSyncPoint @37
+ get_crc_table @38
+ compress2 @39
+ gzputs @40
+ gzgets @41
+ inflateCopy @42
+ inflateBackInit_ @43
+ inflateBack @44
+ inflateBackEnd @45
+ compressBound @46
+ deflateBound @47
+ gzclearerr @48
+ gzungetc @49
+ zlibCompileFlags @50
+ deflatePrime @51
+ deflatePending @52
+
+ unzOpen @61
+ unzClose @62
+ unzGetGlobalInfo @63
+ unzGetCurrentFileInfo @64
+ unzGoToFirstFile @65
+ unzGoToNextFile @66
+ unzOpenCurrentFile @67
+ unzReadCurrentFile @68
+ unzOpenCurrentFile3 @69
+ unztell @70
+ unzeof @71
+ unzCloseCurrentFile @72
+ unzGetGlobalComment @73
+ unzStringFileNameCompare @74
+ unzLocateFile @75
+ unzGetLocalExtrafield @76
+ unzOpen2 @77
+ unzOpenCurrentFile2 @78
+ unzOpenCurrentFilePassword @79
+
+ zipOpen @80
+ zipOpenNewFileInZip @81
+ zipWriteInFileInZip @82
+ zipCloseFileInZip @83
+ zipClose @84
+ zipOpenNewFileInZip2 @86
+ zipCloseFileInZipRaw @87
+ zipOpen2 @88
+ zipOpenNewFileInZip3 @89
+
+ unzGetFilePos @100
+ unzGoToFilePos @101
+
+ fill_win32_filefunc @110
+
+; zlibwapi v1.2.4 added:
+ fill_win32_filefunc64 @111
+ fill_win32_filefunc64A @112
+ fill_win32_filefunc64W @113
+
+ unzOpen64 @120
+ unzOpen2_64 @121
+ unzGetGlobalInfo64 @122
+ unzGetCurrentFileInfo64 @124
+ unzGetCurrentFileZStreamPos64 @125
+ unztell64 @126
+ unzGetFilePos64 @127
+ unzGoToFilePos64 @128
+
+ zipOpen64 @130
+ zipOpen2_64 @131
+ zipOpenNewFileInZip64 @132
+ zipOpenNewFileInZip2_64 @133
+ zipOpenNewFileInZip3_64 @134
+ zipOpenNewFileInZip4_64 @135
+ zipCloseFileInZipRaw64 @136
+
+; zlib1 v1.2.4 added:
+ adler32_combine @140
+ crc32_combine @142
+ deflateSetHeader @144
+ deflateTune @145
+ gzbuffer @146
+ gzclose_r @147
+ gzclose_w @148
+ gzdirect @149
+ gzoffset @150
+ inflateGetHeader @156
+ inflateMark @157
+ inflatePrime @158
+ inflateReset2 @159
+ inflateUndermine @160
+
+; zlib1 v1.2.6 added:
+ gzgetc_ @161
+ inflateResetKeep @163
+ deflateResetKeep @164
+
+; zlib1 v1.2.7 added:
+ gzopen_w @165
+
+; zlib1 v1.2.8 added:
+ inflateGetDictionary @166
+ gzvprintf @167
+
+; zlib1 v1.2.9 added:
+ inflateCodesUsed @168
+ inflateValidate @169
+ uncompress2 @170
+ gzfread @171
+ gzfwrite @172
+ deflateGetDictionary @173
+ adler32_z @174
+ crc32_z @175
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.sln
new file mode 100644
index 000000000..dcda22984
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.sln
@@ -0,0 +1,119 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Itanium = Debug|Itanium
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Itanium = Release|Itanium
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.vcxproj
new file mode 100644
index 000000000..ab2b6c360
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc12/zlibvc.vcxproj
@@ -0,0 +1,692 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\contrib\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\minizip\iowin32.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\deflate.h" />
+ <ClInclude Include="..\..\..\infblock.h" />
+ <ClInclude Include="..\..\..\infcodes.h" />
+ <ClInclude Include="..\..\..\inffast.h" />
+ <ClInclude Include="..\..\..\inftrees.h" />
+ <ClInclude Include="..\..\..\infutil.h" />
+ <ClInclude Include="..\..\..\zconf.h" />
+ <ClInclude Include="..\..\..\zlib.h" />
+ <ClInclude Include="..\..\..\zutil.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/miniunz.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/miniunz.vcxproj
new file mode 100644
index 000000000..9b5c07587
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/miniunz.vcxproj
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694382A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\MiniUnzip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)miniunz.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)miniunz.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\miniunz.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/minizip.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/minizip.vcxproj
new file mode 100644
index 000000000..968a410a1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/minizip.vcxproj
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\MiniZip$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)minizip.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)minizip.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\minizip\minizip.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlib.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlib.vcxproj
new file mode 100644
index 000000000..2c371252a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlib.vcxproj
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}</ProjectGuid>
+ <RootNamespace>testzlib</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlib$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(OutDir)testzlib.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlibdll.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlibdll.vcxproj
new file mode 100644
index 000000000..d87474dec
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/testzlibdll.vcxproj
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C52F9E7B-498A-42BE-8DB4-85A15694366A}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\TestZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x86\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllDebug\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)testzlib.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>x64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\..;..\..\minizip;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ia64\ZlibDllRelease\zlibwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)testzlibdll.exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\testzlib\testzlib.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="zlibvc.vcxproj">
+ <Project>{8fd826f8-3739-44e6-8cc8-997122e53b8d}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlib.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlib.rc
new file mode 100644
index 000000000..c4e4b016e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlib.rc
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+#define IDR_VERSION1 1
+IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+ FILEVERSION 1, 2, 11, 0
+ PRODUCTVERSION 1, 2, 11, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS_DOS_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+
+ BEGIN
+ VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
+ VALUE "FileVersion", "1.2.11\0"
+ VALUE "InternalName", "zlib\0"
+ VALUE "OriginalFilename", "zlibwapi.dll\0"
+ VALUE "ProductName", "ZLib.DLL\0"
+ VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibstat.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibstat.vcxproj
new file mode 100644
index 000000000..3e4b98639
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibstat.vcxproj
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibStat$(Configuration)\Tmp\</IntDir>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:X86 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:AMD64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibstat.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Lib>
+ <AdditionalOptions>/MACHINE:IA64 /NODEFAULTLIB %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibstat.lib</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c" />
+ <ClCompile Include="..\..\minizip\zip.c" />
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.def
new file mode 100644
index 000000000..f876c3bca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.def
@@ -0,0 +1,153 @@
+LIBRARY
+; zlib data compression and ZIP file I/O library
+
+VERSION 1.2
+
+EXPORTS
+ adler32 @1
+ compress @2
+ crc32 @3
+ deflate @4
+ deflateCopy @5
+ deflateEnd @6
+ deflateInit2_ @7
+ deflateInit_ @8
+ deflateParams @9
+ deflateReset @10
+ deflateSetDictionary @11
+ gzclose @12
+ gzdopen @13
+ gzerror @14
+ gzflush @15
+ gzopen @16
+ gzread @17
+ gzwrite @18
+ inflate @19
+ inflateEnd @20
+ inflateInit2_ @21
+ inflateInit_ @22
+ inflateReset @23
+ inflateSetDictionary @24
+ inflateSync @25
+ uncompress @26
+ zlibVersion @27
+ gzprintf @28
+ gzputc @29
+ gzgetc @30
+ gzseek @31
+ gzrewind @32
+ gztell @33
+ gzeof @34
+ gzsetparams @35
+ zError @36
+ inflateSyncPoint @37
+ get_crc_table @38
+ compress2 @39
+ gzputs @40
+ gzgets @41
+ inflateCopy @42
+ inflateBackInit_ @43
+ inflateBack @44
+ inflateBackEnd @45
+ compressBound @46
+ deflateBound @47
+ gzclearerr @48
+ gzungetc @49
+ zlibCompileFlags @50
+ deflatePrime @51
+ deflatePending @52
+
+ unzOpen @61
+ unzClose @62
+ unzGetGlobalInfo @63
+ unzGetCurrentFileInfo @64
+ unzGoToFirstFile @65
+ unzGoToNextFile @66
+ unzOpenCurrentFile @67
+ unzReadCurrentFile @68
+ unzOpenCurrentFile3 @69
+ unztell @70
+ unzeof @71
+ unzCloseCurrentFile @72
+ unzGetGlobalComment @73
+ unzStringFileNameCompare @74
+ unzLocateFile @75
+ unzGetLocalExtrafield @76
+ unzOpen2 @77
+ unzOpenCurrentFile2 @78
+ unzOpenCurrentFilePassword @79
+
+ zipOpen @80
+ zipOpenNewFileInZip @81
+ zipWriteInFileInZip @82
+ zipCloseFileInZip @83
+ zipClose @84
+ zipOpenNewFileInZip2 @86
+ zipCloseFileInZipRaw @87
+ zipOpen2 @88
+ zipOpenNewFileInZip3 @89
+
+ unzGetFilePos @100
+ unzGoToFilePos @101
+
+ fill_win32_filefunc @110
+
+; zlibwapi v1.2.4 added:
+ fill_win32_filefunc64 @111
+ fill_win32_filefunc64A @112
+ fill_win32_filefunc64W @113
+
+ unzOpen64 @120
+ unzOpen2_64 @121
+ unzGetGlobalInfo64 @122
+ unzGetCurrentFileInfo64 @124
+ unzGetCurrentFileZStreamPos64 @125
+ unztell64 @126
+ unzGetFilePos64 @127
+ unzGoToFilePos64 @128
+
+ zipOpen64 @130
+ zipOpen2_64 @131
+ zipOpenNewFileInZip64 @132
+ zipOpenNewFileInZip2_64 @133
+ zipOpenNewFileInZip3_64 @134
+ zipOpenNewFileInZip4_64 @135
+ zipCloseFileInZipRaw64 @136
+
+; zlib1 v1.2.4 added:
+ adler32_combine @140
+ crc32_combine @142
+ deflateSetHeader @144
+ deflateTune @145
+ gzbuffer @146
+ gzclose_r @147
+ gzclose_w @148
+ gzdirect @149
+ gzoffset @150
+ inflateGetHeader @156
+ inflateMark @157
+ inflatePrime @158
+ inflateReset2 @159
+ inflateUndermine @160
+
+; zlib1 v1.2.6 added:
+ gzgetc_ @161
+ inflateResetKeep @163
+ deflateResetKeep @164
+
+; zlib1 v1.2.7 added:
+ gzopen_w @165
+
+; zlib1 v1.2.8 added:
+ inflateGetDictionary @166
+ gzvprintf @167
+
+; zlib1 v1.2.9 added:
+ inflateCodesUsed @168
+ inflateValidate @169
+ uncompress2 @170
+ gzfread @171
+ gzfwrite @172
+ deflateGetDictionary @173
+ adler32_z @174
+ crc32_z @175
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.sln
new file mode 100644
index 000000000..6f4a1076a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.sln
@@ -0,0 +1,119 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Itanium = Debug|Itanium
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Itanium = Release|Itanium
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.vcxproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.vcxproj
new file mode 100644
index 000000000..f8f673cb0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc14/zlibvc.vcxproj
@@ -0,0 +1,692 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Itanium">
+ <Configuration>Debug</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Itanium">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|Win32">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseWithoutAsm|x64">
+ <Configuration>ReleaseWithoutAsm</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Itanium">
+ <Configuration>Release</Configuration>
+ <Platform>Itanium</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8FD826F8-3739-44E6-8CC8-997122E53B8D}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">x86\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">x64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ia64\ZlibDll$(Configuration)\Tmp\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</LinkIncremental>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">false</GenerateManifest>
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">zlibwapi</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">zlibwapi</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <AdditionalDependencies>..\..\masmx86\match686.obj;..\..\masmx86\inffas32.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx86
+bld_ml32.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\contrib\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>..\..\masmx64\gvmat64.obj;..\..\masmx64\inffasx64.obj;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ <PreBuildEvent>
+ <Command>cd ..\..\masmx64
+bld_ml64.bat</Command>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Itanium</TargetEnvironment>
+ <TypeLibraryName>$(OutDir)zlibvc.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..;..\..\masmx86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)zlibvc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerOutput>All</AssemblerOutput>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)</ProgramDataBaseFileName>
+ <BrowseInformation>
+ </BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)zlibwapi.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
+ <ModuleDefinitionFile>.\zlibvc.def</ModuleDefinitionFile>
+ <ProgramDatabaseFile>$(OutDir)zlibwapi.pdb</ProgramDatabaseFile>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)zlibwapi.map</MapFileName>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(OutDir)zlibwapi.lib</ImportLibrary>
+ <TargetMachine>MachineIA64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\adler32.c" />
+ <ClCompile Include="..\..\..\compress.c" />
+ <ClCompile Include="..\..\..\crc32.c" />
+ <ClCompile Include="..\..\..\deflate.c" />
+ <ClCompile Include="..\..\..\gzclose.c" />
+ <ClCompile Include="..\..\..\gzlib.c" />
+ <ClCompile Include="..\..\..\gzread.c" />
+ <ClCompile Include="..\..\..\gzwrite.c" />
+ <ClCompile Include="..\..\..\infback.c" />
+ <ClCompile Include="..\..\masmx64\inffas8664.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseWithoutAsm|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\inffast.c" />
+ <ClCompile Include="..\..\..\inflate.c" />
+ <ClCompile Include="..\..\..\inftrees.c" />
+ <ClCompile Include="..\..\minizip\ioapi.c" />
+ <ClCompile Include="..\..\minizip\iowin32.c" />
+ <ClCompile Include="..\..\..\trees.c" />
+ <ClCompile Include="..\..\..\uncompr.c" />
+ <ClCompile Include="..\..\minizip\unzip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\minizip\zip.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Itanium'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ZLIB_INTERNAL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="..\..\..\zutil.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="zlib.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="zlibvc.def" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\deflate.h" />
+ <ClInclude Include="..\..\..\infblock.h" />
+ <ClInclude Include="..\..\..\infcodes.h" />
+ <ClInclude Include="..\..\..\inffast.h" />
+ <ClInclude Include="..\..\..\inftrees.h" />
+ <ClInclude Include="..\..\..\infutil.h" />
+ <ClInclude Include="..\..\..\zconf.h" />
+ <ClInclude Include="..\..\..\zlib.h" />
+ <ClInclude Include="..\..\..\zutil.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/miniunz.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/miniunz.vcproj
new file mode 100644
index 000000000..038a9e5fa
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/miniunz.vcproj
@@ -0,0 +1,565 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="miniunz"
+ ProjectGUID="{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="x86\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/miniunz.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="x86\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="x64\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/miniunz.pdb"
+ SubSystem="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="ia64\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/miniunz.pdb"
+ SubSystem="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="x64\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\MiniUnzip$(ConfigurationName)"
+ IntermediateDirectory="ia64\MiniUnzip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/miniunz.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\..\minizip\miniunz.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/minizip.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/minizip.vcproj
new file mode 100644
index 000000000..ad4023991
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/minizip.vcproj
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="minizip"
+ ProjectGUID="{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\MiniZip$(ConfigurationName)"
+ IntermediateDirectory="x86\MiniZip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/minizip.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\MiniZip$(ConfigurationName)"
+ IntermediateDirectory="x86\MiniZip$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\$(ConfigurationName)"
+ IntermediateDirectory="x64\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/minizip.pdb"
+ SubSystem="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\$(ConfigurationName)"
+ IntermediateDirectory="ia64\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/minizip.pdb"
+ SubSystem="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\$(ConfigurationName)"
+ IntermediateDirectory="x64\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\$(ConfigurationName)"
+ IntermediateDirectory="ia64\$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/minizip.exe"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\..\minizip\minizip.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlib.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlib.vcproj
new file mode 100644
index 000000000..c9f19d24e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlib.vcproj
@@ -0,0 +1,852 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="testzlib"
+ ProjectGUID="{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+ RootNamespace="testzlib"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="4"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/testzlib.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ AssemblerListingLocation="$(IntDir)\"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj"
+ GenerateManifest="false"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ZLIB_WINAPI;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerOutput="4"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/testzlib.pdb"
+ SubSystem="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Win32"
+ OutputDirectory="x86\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|x64"
+ OutputDirectory="x64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ AssemblerListingLocation="$(IntDir)\"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies=""
+ GenerateManifest="false"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Itanium"
+ OutputDirectory="ia64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x86\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="x64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ASMV;ASMINF;WIN32;ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ AssemblerListingLocation="$(IntDir)\"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj"
+ GenerateManifest="false"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\TestZlib$(ConfigurationName)"
+ IntermediateDirectory="ia64\TestZlib$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\.."
+ PreprocessorDefinitions="ZLIB_WINAPI;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\..\..\adler32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\compress.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\crc32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\deflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infback.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\masmx64\inffas8664.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\inffast.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inftrees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\testzlib\testzlib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\trees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\uncompr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zutil.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlibdll.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlibdll.vcproj
new file mode 100644
index 000000000..d7530fd7d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/testzlibdll.vcproj
@@ -0,0 +1,565 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="TestZlibDll"
+ ProjectGUID="{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x86\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/testzlib.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x86\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x86\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x64\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/testzlib.pdb"
+ SubSystem="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="ia64\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;_DEBUG;_CONSOLE;WIN64"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllDebug\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/testzlib.pdb"
+ SubSystem="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x64\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="x64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\TestZlibDll$(ConfigurationName)"
+ IntermediateDirectory="ia64\TestZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="1"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\..\..;..\..\minizip"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ZLIB_WINAPI;NDEBUG;_CONSOLE;WIN64"
+ StringPooling="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ AssemblerListingLocation="$(IntDir)\"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ia64\ZlibDllRelease\zlibwapi.lib"
+ OutputFile="$(OutDir)/testzlib.exe"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"
+ >
+ <File
+ RelativePath="..\..\testzlib\testzlib.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlib.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlib.rc
new file mode 100644
index 000000000..c4e4b016e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlib.rc
@@ -0,0 +1,32 @@
+#include <windows.h>
+
+#define IDR_VERSION1 1
+IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+ FILEVERSION 1, 2, 11, 0
+ PRODUCTVERSION 1, 2, 11, 0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS 0
+ FILEOS VOS_DOS_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+
+ BEGIN
+ VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0"
+ VALUE "FileVersion", "1.2.11\0"
+ VALUE "InternalName", "zlib\0"
+ VALUE "OriginalFilename", "zlibwapi.dll\0"
+ VALUE "ProductName", "ZLib.DLL\0"
+ VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibstat.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibstat.vcproj
new file mode 100644
index 000000000..d4ffb46b2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibstat.vcproj
@@ -0,0 +1,835 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="zlibstat"
+ ProjectGUID="{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ ExceptionHandling="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ ExceptionHandling="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ ExceptionHandling="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
+ AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj "
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ASMV;ASMINF;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB"
+ AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj "
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Win32"
+ OutputDirectory="x86\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:X86 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|x64"
+ OutputDirectory="x64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:AMD64 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Itanium"
+ OutputDirectory="ia64\ZlibStat$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibStat$(ConfigurationName)\Tmp"
+ ConfigurationType="4"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="2"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="ZLIB_WINAPI;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibstat.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/MACHINE:IA64 /NODEFAULTLIB"
+ OutputFile="$(OutDir)\zlibstat.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ >
+ <File
+ RelativePath="..\..\..\adler32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\compress.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\crc32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\deflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzclose.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzguts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzlib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzwrite.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infback.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\masmx64\inffas8664.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\inffast.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inftrees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\ioapi.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\trees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\uncompr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\unzip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\zip.c"
+ >
+ </File>
+ <File
+ RelativePath=".\zlib.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\zlibvc.def"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zutil.c"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.def
new file mode 100644
index 000000000..f876c3bca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.def
@@ -0,0 +1,153 @@
+LIBRARY
+; zlib data compression and ZIP file I/O library
+
+VERSION 1.2
+
+EXPORTS
+ adler32 @1
+ compress @2
+ crc32 @3
+ deflate @4
+ deflateCopy @5
+ deflateEnd @6
+ deflateInit2_ @7
+ deflateInit_ @8
+ deflateParams @9
+ deflateReset @10
+ deflateSetDictionary @11
+ gzclose @12
+ gzdopen @13
+ gzerror @14
+ gzflush @15
+ gzopen @16
+ gzread @17
+ gzwrite @18
+ inflate @19
+ inflateEnd @20
+ inflateInit2_ @21
+ inflateInit_ @22
+ inflateReset @23
+ inflateSetDictionary @24
+ inflateSync @25
+ uncompress @26
+ zlibVersion @27
+ gzprintf @28
+ gzputc @29
+ gzgetc @30
+ gzseek @31
+ gzrewind @32
+ gztell @33
+ gzeof @34
+ gzsetparams @35
+ zError @36
+ inflateSyncPoint @37
+ get_crc_table @38
+ compress2 @39
+ gzputs @40
+ gzgets @41
+ inflateCopy @42
+ inflateBackInit_ @43
+ inflateBack @44
+ inflateBackEnd @45
+ compressBound @46
+ deflateBound @47
+ gzclearerr @48
+ gzungetc @49
+ zlibCompileFlags @50
+ deflatePrime @51
+ deflatePending @52
+
+ unzOpen @61
+ unzClose @62
+ unzGetGlobalInfo @63
+ unzGetCurrentFileInfo @64
+ unzGoToFirstFile @65
+ unzGoToNextFile @66
+ unzOpenCurrentFile @67
+ unzReadCurrentFile @68
+ unzOpenCurrentFile3 @69
+ unztell @70
+ unzeof @71
+ unzCloseCurrentFile @72
+ unzGetGlobalComment @73
+ unzStringFileNameCompare @74
+ unzLocateFile @75
+ unzGetLocalExtrafield @76
+ unzOpen2 @77
+ unzOpenCurrentFile2 @78
+ unzOpenCurrentFilePassword @79
+
+ zipOpen @80
+ zipOpenNewFileInZip @81
+ zipWriteInFileInZip @82
+ zipCloseFileInZip @83
+ zipClose @84
+ zipOpenNewFileInZip2 @86
+ zipCloseFileInZipRaw @87
+ zipOpen2 @88
+ zipOpenNewFileInZip3 @89
+
+ unzGetFilePos @100
+ unzGoToFilePos @101
+
+ fill_win32_filefunc @110
+
+; zlibwapi v1.2.4 added:
+ fill_win32_filefunc64 @111
+ fill_win32_filefunc64A @112
+ fill_win32_filefunc64W @113
+
+ unzOpen64 @120
+ unzOpen2_64 @121
+ unzGetGlobalInfo64 @122
+ unzGetCurrentFileInfo64 @124
+ unzGetCurrentFileZStreamPos64 @125
+ unztell64 @126
+ unzGetFilePos64 @127
+ unzGoToFilePos64 @128
+
+ zipOpen64 @130
+ zipOpen2_64 @131
+ zipOpenNewFileInZip64 @132
+ zipOpenNewFileInZip2_64 @133
+ zipOpenNewFileInZip3_64 @134
+ zipOpenNewFileInZip4_64 @135
+ zipCloseFileInZipRaw64 @136
+
+; zlib1 v1.2.4 added:
+ adler32_combine @140
+ crc32_combine @142
+ deflateSetHeader @144
+ deflateTune @145
+ gzbuffer @146
+ gzclose_r @147
+ gzclose_w @148
+ gzdirect @149
+ gzoffset @150
+ inflateGetHeader @156
+ inflateMark @157
+ inflatePrime @158
+ inflateReset2 @159
+ inflateUndermine @160
+
+; zlib1 v1.2.6 added:
+ gzgetc_ @161
+ inflateResetKeep @163
+ deflateResetKeep @164
+
+; zlib1 v1.2.7 added:
+ gzopen_w @165
+
+; zlib1 v1.2.8 added:
+ inflateGetDictionary @166
+ gzvprintf @167
+
+; zlib1 v1.2.9 added:
+ inflateCodesUsed @168
+ inflateValidate @169
+ uncompress2 @170
+ gzfread @171
+ gzfwrite @172
+ deflateGetDictionary @173
+ adler32_z @174
+ crc32_z @175
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.sln b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.sln
new file mode 100644
index 000000000..75c64c3f4
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.sln
@@ -0,0 +1,144 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestZlibDll", "testzlibdll.vcproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D} = {8FD826F8-3739-44E6-8CC8-997122E53B8D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D} = {8FD826F8-3739-44E6-8CC8-997122E53B8D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D} = {8FD826F8-3739-44E6-8CC8-997122E53B8D}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Itanium = Debug|Itanium
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Itanium = Release|Itanium
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
+ ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
+ ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.Build.0 = Debug|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.Build.0 = Release|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.Build.0 = Debug|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.Build.0 = Release|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.Build.0 = Release|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = ReleaseWithoutAsm|Itanium
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
+ {AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.Build.0 = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.Build.0 = Debug|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.Build.0 = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.Build.0 = Debug|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.Build.0 = Release|Itanium
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
+ {C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.vcproj b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.vcproj
new file mode 100644
index 000000000..95bb241f3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/contrib/vstudio/vc9/zlibvc.vcproj
@@ -0,0 +1,1156 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="zlibvc"
+ ProjectGUID="{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+ RootNamespace="zlibvc"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ <Platform
+ Name="Itanium"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="x86\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF"
+ ExceptionHandling="0"
+ RuntimeLibrary="1"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="x64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64"
+ ExceptionHandling="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj "
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Itanium"
+ OutputDirectory="ia64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="2"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
+ ExceptionHandling="0"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="false"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Win32"
+ OutputDirectory="x86\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|x64"
+ OutputDirectory="x64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="ReleaseWithoutAsm|Itanium"
+ OutputDirectory="ia64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="2"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="x86\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x86\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="WIN32;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalOptions="/MACHINE:I386"
+ AdditionalDependencies="..\..\masmx86\match686.obj ..\..\masmx86\inffas32.obj "
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="x64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="x64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;ASMV;ASMINF;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="..\..\masmx64\gvmat64.obj ..\..\masmx64\inffasx64.obj "
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Itanium"
+ OutputDirectory="ia64\ZlibDll$(ConfigurationName)"
+ IntermediateDirectory="ia64\ZlibDll$(ConfigurationName)\Tmp"
+ ConfigurationType="2"
+ InheritedPropertySheets="UpgradeFromVC70.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="2"
+ TypeLibraryName="$(OutDir)/zlibvc.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..;..\..\masmx86"
+ PreprocessorDefinitions="_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ZLIB_WINAPI;WIN64"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)/zlibvc.pch"
+ AssemblerOutput="2"
+ AssemblerListingLocation="$(IntDir)\"
+ ObjectFile="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)\"
+ BrowseInformation="0"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1036"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)\zlibwapi.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ IgnoreAllDefaultLibraries="false"
+ ModuleDefinitionFile=".\zlibvc.def"
+ ProgramDatabaseFile="$(OutDir)/zlibwapi.pdb"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/zlibwapi.map"
+ SubSystem="2"
+ OptimizeForWindows98="1"
+ ImportLibrary="$(OutDir)/zlibwapi.lib"
+ TargetMachine="5"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
+ >
+ <File
+ RelativePath="..\..\..\adler32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\compress.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\crc32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\deflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzclose.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzguts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzlib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\gzwrite.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infback.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\masmx64\inffas8664.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="ReleaseWithoutAsm|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Itanium"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\inffast.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inflate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inftrees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\ioapi.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\iowin32.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\trees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\uncompr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\minizip\unzip.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Itanium"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\minizip\zip.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Itanium"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="ZLIB_INTERNAL"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\zlib.rc"
+ >
+ </File>
+ <File
+ RelativePath=".\zlibvc.def"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zutil.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;fi;fd"
+ >
+ <File
+ RelativePath="..\..\..\deflate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infblock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infcodes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inffast.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\inftrees.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\infutil.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zconf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\zutil.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.c
new file mode 100644
index 000000000..9580440c0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.c
@@ -0,0 +1,442 @@
+/* crc32.c -- compute the CRC-32 of a data stream
+ * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ *
+ * Thanks to Rodney Brown <rbrown64@csc.com.au> for his contribution of faster
+ * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing
+ * tables for updating the shift register in one step with three exclusive-ors
+ * instead of four steps with four exclusive-ors. This results in about a
+ * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
+ */
+
+/* @(#) $Id$ */
+
+/*
+ Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
+ protection on the static variables used to control the first-use generation
+ of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should
+ first call get_crc_table() to initialize the tables before allowing more than
+ one thread to use crc32().
+
+ DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h.
+ */
+
+#ifdef MAKECRCH
+# include <stdio.h>
+# ifndef DYNAMIC_CRC_TABLE
+# define DYNAMIC_CRC_TABLE
+# endif /* !DYNAMIC_CRC_TABLE */
+#endif /* MAKECRCH */
+
+#include "zutil.h" /* for STDC and FAR definitions */
+
+/* Definitions for doing the crc four data bytes at a time. */
+#if !defined(NOBYFOUR) && defined(Z_U4)
+# define BYFOUR
+#endif
+#ifdef BYFOUR
+ local unsigned long crc32_little OF((unsigned long,
+ const unsigned char FAR *, z_size_t));
+ local unsigned long crc32_big OF((unsigned long,
+ const unsigned char FAR *, z_size_t));
+# define TBLS 8
+#else
+# define TBLS 1
+#endif /* BYFOUR */
+
+/* Local functions for crc concatenation */
+local unsigned long gf2_matrix_times OF((unsigned long *mat,
+ unsigned long vec));
+local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat));
+local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2));
+
+
+#ifdef DYNAMIC_CRC_TABLE
+
+local volatile int crc_table_empty = 1;
+local z_crc_t FAR crc_table[TBLS][256];
+local void make_crc_table OF((void));
+#ifdef MAKECRCH
+ local void write_table OF((FILE *, const z_crc_t FAR *));
+#endif /* MAKECRCH */
+/*
+ Generate tables for a byte-wise 32-bit CRC calculation on the polynomial:
+ x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
+
+ Polynomials over GF(2) are represented in binary, one bit per coefficient,
+ with the lowest powers in the most significant bit. Then adding polynomials
+ is just exclusive-or, and multiplying a polynomial by x is a right shift by
+ one. If we call the above polynomial p, and represent a byte as the
+ polynomial q, also with the lowest power in the most significant bit (so the
+ byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
+ where a mod b means the remainder after dividing a by b.
+
+ This calculation is done using the shift-register method of multiplying and
+ taking the remainder. The register is initialized to zero, and for each
+ incoming bit, x^32 is added mod p to the register if the bit is a one (where
+ x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
+ x (which is shifting right by one and adding x^32 mod p if the bit shifted
+ out is a one). We start with the highest power (least significant bit) of
+ q and repeat for all eight bits of q.
+
+ The first table is simply the CRC of all possible eight bit values. This is
+ all the information needed to generate CRCs on data a byte at a time for all
+ combinations of CRC register values and incoming bytes. The remaining tables
+ allow for word-at-a-time CRC calculation for both big-endian and little-
+ endian machines, where a word is four bytes.
+*/
+local void make_crc_table()
+{
+ z_crc_t c;
+ int n, k;
+ z_crc_t poly; /* polynomial exclusive-or pattern */
+ /* terms of polynomial defining this crc (except x^32): */
+ static volatile int first = 1; /* flag to limit concurrent making */
+ static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
+
+ /* See if another task is already doing this (not thread-safe, but better
+ than nothing -- significantly reduces duration of vulnerability in
+ case the advice about DYNAMIC_CRC_TABLE is ignored) */
+ if (first) {
+ first = 0;
+
+ /* make exclusive-or pattern from polynomial (0xedb88320UL) */
+ poly = 0;
+ for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++)
+ poly |= (z_crc_t)1 << (31 - p[n]);
+
+ /* generate a crc for every 8-bit value */
+ for (n = 0; n < 256; n++) {
+ c = (z_crc_t)n;
+ for (k = 0; k < 8; k++)
+ c = c & 1 ? poly ^ (c >> 1) : c >> 1;
+ crc_table[0][n] = c;
+ }
+
+#ifdef BYFOUR
+ /* generate crc for each value followed by one, two, and three zeros,
+ and then the byte reversal of those as well as the first table */
+ for (n = 0; n < 256; n++) {
+ c = crc_table[0][n];
+ crc_table[4][n] = ZSWAP32(c);
+ for (k = 1; k < 4; k++) {
+ c = crc_table[0][c & 0xff] ^ (c >> 8);
+ crc_table[k][n] = c;
+ crc_table[k + 4][n] = ZSWAP32(c);
+ }
+ }
+#endif /* BYFOUR */
+
+ crc_table_empty = 0;
+ }
+ else { /* not first */
+ /* wait for the other guy to finish (not efficient, but rare) */
+ while (crc_table_empty)
+ ;
+ }
+
+#ifdef MAKECRCH
+ /* write out CRC tables to crc32.h */
+ {
+ FILE *out;
+
+ out = fopen("crc32.h", "w");
+ if (out == NULL) return;
+ fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n");
+ fprintf(out, " * Generated automatically by crc32.c\n */\n\n");
+ fprintf(out, "local const z_crc_t FAR ");
+ fprintf(out, "crc_table[TBLS][256] =\n{\n {\n");
+ write_table(out, crc_table[0]);
+# ifdef BYFOUR
+ fprintf(out, "#ifdef BYFOUR\n");
+ for (k = 1; k < 8; k++) {
+ fprintf(out, " },\n {\n");
+ write_table(out, crc_table[k]);
+ }
+ fprintf(out, "#endif\n");
+# endif /* BYFOUR */
+ fprintf(out, " }\n};\n");
+ fclose(out);
+ }
+#endif /* MAKECRCH */
+}
+
+#ifdef MAKECRCH
+local void write_table(out, table)
+ FILE *out;
+ const z_crc_t FAR *table;
+{
+ int n;
+
+ for (n = 0; n < 256; n++)
+ fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ",
+ (unsigned long)(table[n]),
+ n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", "));
+}
+#endif /* MAKECRCH */
+
+#else /* !DYNAMIC_CRC_TABLE */
+/* ========================================================================
+ * Tables of CRC-32s of all single-byte values, made by make_crc_table().
+ */
+#include "crc32.h"
+#endif /* DYNAMIC_CRC_TABLE */
+
+/* =========================================================================
+ * This function can be used by asm versions of crc32()
+ */
+const z_crc_t FAR * ZEXPORT get_crc_table()
+{
+#ifdef DYNAMIC_CRC_TABLE
+ if (crc_table_empty)
+ make_crc_table();
+#endif /* DYNAMIC_CRC_TABLE */
+ return (const z_crc_t FAR *)crc_table;
+}
+
+/* ========================================================================= */
+#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8)
+#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1
+
+/* ========================================================================= */
+unsigned long ZEXPORT crc32_z(crc, buf, len)
+ unsigned long crc;
+ const unsigned char FAR *buf;
+ z_size_t len;
+{
+ if (buf == Z_NULL) return 0UL;
+
+#ifdef DYNAMIC_CRC_TABLE
+ if (crc_table_empty)
+ make_crc_table();
+#endif /* DYNAMIC_CRC_TABLE */
+
+#ifdef BYFOUR
+ if (sizeof(void *) == sizeof(ptrdiff_t)) {
+ z_crc_t endian;
+
+ endian = 1;
+ if (*((unsigned char *)(&endian)))
+ return crc32_little(crc, buf, len);
+ else
+ return crc32_big(crc, buf, len);
+ }
+#endif /* BYFOUR */
+ crc = crc ^ 0xffffffffUL;
+ while (len >= 8) {
+ DO8;
+ len -= 8;
+ }
+ if (len) do {
+ DO1;
+ } while (--len);
+ return crc ^ 0xffffffffUL;
+}
+
+/* ========================================================================= */
+unsigned long ZEXPORT crc32(crc, buf, len)
+ unsigned long crc;
+ const unsigned char FAR *buf;
+ uInt len;
+{
+ return crc32_z(crc, buf, len);
+}
+
+#ifdef BYFOUR
+
+/*
+ This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit
+ integer pointer type. This violates the strict aliasing rule, where a
+ compiler can assume, for optimization purposes, that two pointers to
+ fundamentally different types won't ever point to the same memory. This can
+ manifest as a problem only if one of the pointers is written to. This code
+ only reads from those pointers. So long as this code remains isolated in
+ this compilation unit, there won't be a problem. For this reason, this code
+ should not be copied and pasted into a compilation unit in which other code
+ writes to the buffer that is passed to these routines.
+ */
+
+/* ========================================================================= */
+#define DOLIT4 c ^= *buf4++; \
+ c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \
+ crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24]
+#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4
+
+/* ========================================================================= */
+local unsigned long crc32_little(crc, buf, len)
+ unsigned long crc;
+ const unsigned char FAR *buf;
+ z_size_t len;
+{
+ register z_crc_t c;
+ register const z_crc_t FAR *buf4;
+
+ c = (z_crc_t)crc;
+ c = ~c;
+ while (len && ((ptrdiff_t)buf & 3)) {
+ c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
+ len--;
+ }
+
+ buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
+ while (len >= 32) {
+ DOLIT32;
+ len -= 32;
+ }
+ while (len >= 4) {
+ DOLIT4;
+ len -= 4;
+ }
+ buf = (const unsigned char FAR *)buf4;
+
+ if (len) do {
+ c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8);
+ } while (--len);
+ c = ~c;
+ return (unsigned long)c;
+}
+
+/* ========================================================================= */
+#define DOBIG4 c ^= *buf4++; \
+ c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \
+ crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24]
+#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4
+
+/* ========================================================================= */
+local unsigned long crc32_big(crc, buf, len)
+ unsigned long crc;
+ const unsigned char FAR *buf;
+ z_size_t len;
+{
+ register z_crc_t c;
+ register const z_crc_t FAR *buf4;
+
+ c = ZSWAP32((z_crc_t)crc);
+ c = ~c;
+ while (len && ((ptrdiff_t)buf & 3)) {
+ c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
+ len--;
+ }
+
+ buf4 = (const z_crc_t FAR *)(const void FAR *)buf;
+ while (len >= 32) {
+ DOBIG32;
+ len -= 32;
+ }
+ while (len >= 4) {
+ DOBIG4;
+ len -= 4;
+ }
+ buf = (const unsigned char FAR *)buf4;
+
+ if (len) do {
+ c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8);
+ } while (--len);
+ c = ~c;
+ return (unsigned long)(ZSWAP32(c));
+}
+
+#endif /* BYFOUR */
+
+#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */
+
+/* ========================================================================= */
+local unsigned long gf2_matrix_times(mat, vec)
+ unsigned long *mat;
+ unsigned long vec;
+{
+ unsigned long sum;
+
+ sum = 0;
+ while (vec) {
+ if (vec & 1)
+ sum ^= *mat;
+ vec >>= 1;
+ mat++;
+ }
+ return sum;
+}
+
+/* ========================================================================= */
+local void gf2_matrix_square(square, mat)
+ unsigned long *square;
+ unsigned long *mat;
+{
+ int n;
+
+ for (n = 0; n < GF2_DIM; n++)
+ square[n] = gf2_matrix_times(mat, mat[n]);
+}
+
+/* ========================================================================= */
+local uLong crc32_combine_(crc1, crc2, len2)
+ uLong crc1;
+ uLong crc2;
+ z_off64_t len2;
+{
+ int n;
+ unsigned long row;
+ unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */
+ unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */
+
+ /* degenerate case (also disallow negative lengths) */
+ if (len2 <= 0)
+ return crc1;
+
+ /* put operator for one zero bit in odd */
+ odd[0] = 0xedb88320UL; /* CRC-32 polynomial */
+ row = 1;
+ for (n = 1; n < GF2_DIM; n++) {
+ odd[n] = row;
+ row <<= 1;
+ }
+
+ /* put operator for two zero bits in even */
+ gf2_matrix_square(even, odd);
+
+ /* put operator for four zero bits in odd */
+ gf2_matrix_square(odd, even);
+
+ /* apply len2 zeros to crc1 (first square will put the operator for one
+ zero byte, eight zero bits, in even) */
+ do {
+ /* apply zeros operator for this bit of len2 */
+ gf2_matrix_square(even, odd);
+ if (len2 & 1)
+ crc1 = gf2_matrix_times(even, crc1);
+ len2 >>= 1;
+
+ /* if no more bits set, then done */
+ if (len2 == 0)
+ break;
+
+ /* another iteration of the loop with odd and even swapped */
+ gf2_matrix_square(odd, even);
+ if (len2 & 1)
+ crc1 = gf2_matrix_times(odd, crc1);
+ len2 >>= 1;
+
+ /* if no more bits set, then done */
+ } while (len2 != 0);
+
+ /* return combined crc */
+ crc1 ^= crc2;
+ return crc1;
+}
+
+/* ========================================================================= */
+uLong ZEXPORT crc32_combine(crc1, crc2, len2)
+ uLong crc1;
+ uLong crc2;
+ z_off_t len2;
+{
+ return crc32_combine_(crc1, crc2, len2);
+}
+
+uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
+ uLong crc1;
+ uLong crc2;
+ z_off64_t len2;
+{
+ return crc32_combine_(crc1, crc2, len2);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.h
new file mode 100644
index 000000000..9e0c77810
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/crc32.h
@@ -0,0 +1,441 @@
+/* crc32.h -- tables for rapid CRC calculation
+ * Generated automatically by crc32.c
+ */
+
+local const z_crc_t FAR crc_table[TBLS][256] =
+{
+ {
+ 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL,
+ 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL,
+ 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL,
+ 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL,
+ 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL,
+ 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL,
+ 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL,
+ 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL,
+ 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL,
+ 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL,
+ 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL,
+ 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL,
+ 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL,
+ 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL,
+ 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL,
+ 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL,
+ 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL,
+ 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL,
+ 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL,
+ 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL,
+ 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL,
+ 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL,
+ 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL,
+ 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL,
+ 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL,
+ 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL,
+ 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL,
+ 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL,
+ 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL,
+ 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL,
+ 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL,
+ 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL,
+ 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL,
+ 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL,
+ 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL,
+ 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL,
+ 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL,
+ 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL,
+ 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL,
+ 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL,
+ 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL,
+ 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL,
+ 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL,
+ 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL,
+ 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL,
+ 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL,
+ 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL,
+ 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL,
+ 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL,
+ 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL,
+ 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL,
+ 0x2d02ef8dUL
+#ifdef BYFOUR
+ },
+ {
+ 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL,
+ 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL,
+ 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL,
+ 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL,
+ 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL,
+ 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL,
+ 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL,
+ 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL,
+ 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL,
+ 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL,
+ 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL,
+ 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL,
+ 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL,
+ 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL,
+ 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL,
+ 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL,
+ 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL,
+ 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL,
+ 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL,
+ 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL,
+ 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL,
+ 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL,
+ 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL,
+ 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL,
+ 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL,
+ 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL,
+ 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL,
+ 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL,
+ 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL,
+ 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL,
+ 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL,
+ 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL,
+ 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL,
+ 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL,
+ 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL,
+ 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL,
+ 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL,
+ 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL,
+ 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL,
+ 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL,
+ 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL,
+ 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL,
+ 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL,
+ 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL,
+ 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL,
+ 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL,
+ 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL,
+ 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL,
+ 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL,
+ 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL,
+ 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL,
+ 0x9324fd72UL
+ },
+ {
+ 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL,
+ 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL,
+ 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL,
+ 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL,
+ 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL,
+ 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL,
+ 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL,
+ 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL,
+ 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL,
+ 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL,
+ 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL,
+ 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL,
+ 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL,
+ 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL,
+ 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL,
+ 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL,
+ 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL,
+ 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL,
+ 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL,
+ 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL,
+ 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL,
+ 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL,
+ 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL,
+ 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL,
+ 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL,
+ 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL,
+ 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL,
+ 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL,
+ 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL,
+ 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL,
+ 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL,
+ 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL,
+ 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL,
+ 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL,
+ 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL,
+ 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL,
+ 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL,
+ 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL,
+ 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL,
+ 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL,
+ 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL,
+ 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL,
+ 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL,
+ 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL,
+ 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL,
+ 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL,
+ 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL,
+ 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL,
+ 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL,
+ 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL,
+ 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL,
+ 0xbe9834edUL
+ },
+ {
+ 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL,
+ 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL,
+ 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL,
+ 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL,
+ 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL,
+ 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL,
+ 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL,
+ 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL,
+ 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL,
+ 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL,
+ 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL,
+ 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL,
+ 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL,
+ 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL,
+ 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL,
+ 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL,
+ 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL,
+ 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL,
+ 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL,
+ 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL,
+ 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL,
+ 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL,
+ 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL,
+ 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL,
+ 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL,
+ 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL,
+ 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL,
+ 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL,
+ 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL,
+ 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL,
+ 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL,
+ 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL,
+ 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL,
+ 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL,
+ 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL,
+ 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL,
+ 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL,
+ 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL,
+ 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL,
+ 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL,
+ 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL,
+ 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL,
+ 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL,
+ 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL,
+ 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL,
+ 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL,
+ 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL,
+ 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL,
+ 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL,
+ 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL,
+ 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL,
+ 0xde0506f1UL
+ },
+ {
+ 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL,
+ 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL,
+ 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL,
+ 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL,
+ 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL,
+ 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL,
+ 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL,
+ 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL,
+ 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL,
+ 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL,
+ 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL,
+ 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL,
+ 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL,
+ 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL,
+ 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL,
+ 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL,
+ 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL,
+ 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL,
+ 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL,
+ 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL,
+ 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL,
+ 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL,
+ 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL,
+ 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL,
+ 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL,
+ 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL,
+ 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL,
+ 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL,
+ 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL,
+ 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL,
+ 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL,
+ 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL,
+ 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL,
+ 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL,
+ 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL,
+ 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL,
+ 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL,
+ 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL,
+ 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL,
+ 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL,
+ 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL,
+ 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL,
+ 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL,
+ 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL,
+ 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL,
+ 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL,
+ 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL,
+ 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL,
+ 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL,
+ 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL,
+ 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL,
+ 0x8def022dUL
+ },
+ {
+ 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL,
+ 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL,
+ 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL,
+ 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL,
+ 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL,
+ 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL,
+ 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL,
+ 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL,
+ 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL,
+ 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL,
+ 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL,
+ 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL,
+ 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL,
+ 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL,
+ 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL,
+ 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL,
+ 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL,
+ 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL,
+ 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL,
+ 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL,
+ 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL,
+ 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL,
+ 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL,
+ 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL,
+ 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL,
+ 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL,
+ 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL,
+ 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL,
+ 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL,
+ 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL,
+ 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL,
+ 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL,
+ 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL,
+ 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL,
+ 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL,
+ 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL,
+ 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL,
+ 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL,
+ 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL,
+ 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL,
+ 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL,
+ 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL,
+ 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL,
+ 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL,
+ 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL,
+ 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL,
+ 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL,
+ 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL,
+ 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL,
+ 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL,
+ 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL,
+ 0x72fd2493UL
+ },
+ {
+ 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL,
+ 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL,
+ 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL,
+ 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL,
+ 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL,
+ 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL,
+ 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL,
+ 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL,
+ 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL,
+ 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL,
+ 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL,
+ 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL,
+ 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL,
+ 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL,
+ 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL,
+ 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL,
+ 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL,
+ 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL,
+ 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL,
+ 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL,
+ 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL,
+ 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL,
+ 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL,
+ 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL,
+ 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL,
+ 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL,
+ 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL,
+ 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL,
+ 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL,
+ 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL,
+ 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL,
+ 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL,
+ 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL,
+ 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL,
+ 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL,
+ 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL,
+ 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL,
+ 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL,
+ 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL,
+ 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL,
+ 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL,
+ 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL,
+ 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL,
+ 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL,
+ 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL,
+ 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL,
+ 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL,
+ 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL,
+ 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL,
+ 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL,
+ 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL,
+ 0xed3498beUL
+ },
+ {
+ 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL,
+ 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL,
+ 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL,
+ 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL,
+ 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL,
+ 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL,
+ 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL,
+ 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL,
+ 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL,
+ 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL,
+ 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL,
+ 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL,
+ 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL,
+ 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL,
+ 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL,
+ 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL,
+ 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL,
+ 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL,
+ 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL,
+ 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL,
+ 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL,
+ 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL,
+ 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL,
+ 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL,
+ 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL,
+ 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL,
+ 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL,
+ 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL,
+ 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL,
+ 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL,
+ 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL,
+ 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL,
+ 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL,
+ 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL,
+ 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL,
+ 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL,
+ 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL,
+ 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL,
+ 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL,
+ 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL,
+ 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL,
+ 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL,
+ 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL,
+ 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL,
+ 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL,
+ 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL,
+ 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL,
+ 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL,
+ 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL,
+ 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL,
+ 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL,
+ 0xf10605deUL
+#endif
+ }
+};
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.c
new file mode 100644
index 000000000..1ec761448
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.c
@@ -0,0 +1,2163 @@
+/* deflate.c -- compress data using the deflation algorithm
+ * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ * ALGORITHM
+ *
+ * The "deflation" process depends on being able to identify portions
+ * of the input text which are identical to earlier input (within a
+ * sliding window trailing behind the input currently being processed).
+ *
+ * The most straightforward technique turns out to be the fastest for
+ * most input files: try all possible matches and select the longest.
+ * The key feature of this algorithm is that insertions into the string
+ * dictionary are very simple and thus fast, and deletions are avoided
+ * completely. Insertions are performed at each input character, whereas
+ * string matches are performed only when the previous match ends. So it
+ * is preferable to spend more time in matches to allow very fast string
+ * insertions and avoid deletions. The matching algorithm for small
+ * strings is inspired from that of Rabin & Karp. A brute force approach
+ * is used to find longer strings when a small match has been found.
+ * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
+ * (by Leonid Broukhis).
+ * A previous version of this file used a more sophisticated algorithm
+ * (by Fiala and Greene) which is guaranteed to run in linear amortized
+ * time, but has a larger average cost, uses more memory and is patented.
+ * However the F&G algorithm may be faster for some highly redundant
+ * files if the parameter max_chain_length (described below) is too large.
+ *
+ * ACKNOWLEDGEMENTS
+ *
+ * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
+ * I found it in 'freeze' written by Leonid Broukhis.
+ * Thanks to many people for bug reports and testing.
+ *
+ * REFERENCES
+ *
+ * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
+ * Available in http://tools.ietf.org/html/rfc1951
+ *
+ * A description of the Rabin and Karp algorithm is given in the book
+ * "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
+ *
+ * Fiala,E.R., and Greene,D.H.
+ * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
+ *
+ */
+
+/* @(#) $Id$ */
+
+#include "deflate.h"
+
+const char deflate_copyright[] =
+ " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler ";
+/*
+ If you use the zlib library in a product, an acknowledgment is welcome
+ in the documentation of your product. If for some reason you cannot
+ include such an acknowledgment, I would appreciate that you keep this
+ copyright string in the executable of your product.
+ */
+
+/* ===========================================================================
+ * Function prototypes.
+ */
+typedef enum {
+ need_more, /* block not completed, need more input or more output */
+ block_done, /* block flush performed */
+ finish_started, /* finish started, need only more output at next deflate */
+ finish_done /* finish done, accept no more input or output */
+} block_state;
+
+typedef block_state (*compress_func) OF((deflate_state *s, int flush));
+/* Compression function. Returns the block state after the call. */
+
+local int deflateStateCheck OF((z_streamp strm));
+local void slide_hash OF((deflate_state *s));
+local void fill_window OF((deflate_state *s));
+local block_state deflate_stored OF((deflate_state *s, int flush));
+local block_state deflate_fast OF((deflate_state *s, int flush));
+#ifndef FASTEST
+local block_state deflate_slow OF((deflate_state *s, int flush));
+#endif
+local block_state deflate_rle OF((deflate_state *s, int flush));
+local block_state deflate_huff OF((deflate_state *s, int flush));
+local void lm_init OF((deflate_state *s));
+local void putShortMSB OF((deflate_state *s, uInt b));
+local void flush_pending OF((z_streamp strm));
+local unsigned read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
+#ifdef ASMV
+# pragma message("Assembler code may have bugs -- use at your own risk")
+ void match_init OF((void)); /* asm code initialization */
+ uInt longest_match OF((deflate_state *s, IPos cur_match));
+#else
+local uInt longest_match OF((deflate_state *s, IPos cur_match));
+#endif
+
+#ifdef ZLIB_DEBUG
+local void check_match OF((deflate_state *s, IPos start, IPos match,
+ int length));
+#endif
+
+/* ===========================================================================
+ * Local data
+ */
+
+#define NIL 0
+/* Tail of hash chains */
+
+#ifndef TOO_FAR
+# define TOO_FAR 4096
+#endif
+/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
+
+/* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+ * exclude worst case performance for pathological files. Better values may be
+ * found for specific files.
+ */
+typedef struct config_s {
+ ush good_length; /* reduce lazy search above this match length */
+ ush max_lazy; /* do not perform lazy search above this match length */
+ ush nice_length; /* quit search above this match length */
+ ush max_chain;
+ compress_func func;
+} config;
+
+#ifdef FASTEST
+local const config configuration_table[2] = {
+/* good lazy nice chain */
+/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
+/* 1 */ {4, 4, 8, 4, deflate_fast}}; /* max speed, no lazy matches */
+#else
+local const config configuration_table[10] = {
+/* good lazy nice chain */
+/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
+/* 1 */ {4, 4, 8, 4, deflate_fast}, /* max speed, no lazy matches */
+/* 2 */ {4, 5, 16, 8, deflate_fast},
+/* 3 */ {4, 6, 32, 32, deflate_fast},
+
+/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */
+/* 5 */ {8, 16, 32, 32, deflate_slow},
+/* 6 */ {8, 16, 128, 128, deflate_slow},
+/* 7 */ {8, 32, 128, 256, deflate_slow},
+/* 8 */ {32, 128, 258, 1024, deflate_slow},
+/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* max compression */
+#endif
+
+/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
+ * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
+ * meaning.
+ */
+
+/* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
+#define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0))
+
+/* ===========================================================================
+ * Update a hash value with the given input byte
+ * IN assertion: all calls to UPDATE_HASH are made with consecutive input
+ * characters, so that a running hash key can be computed from the previous
+ * key instead of complete recalculation each time.
+ */
+#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
+
+
+/* ===========================================================================
+ * Insert string str in the dictionary and set match_head to the previous head
+ * of the hash chain (the most recent string with same hash key). Return
+ * the previous length of the hash chain.
+ * If this file is compiled with -DFASTEST, the compression level is forced
+ * to 1, and no hash chains are maintained.
+ * IN assertion: all calls to INSERT_STRING are made with consecutive input
+ * characters and the first MIN_MATCH bytes of str are valid (except for
+ * the last MIN_MATCH-1 bytes of the input file).
+ */
+#ifdef FASTEST
+#define INSERT_STRING(s, str, match_head) \
+ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
+ match_head = s->head[s->ins_h], \
+ s->head[s->ins_h] = (Pos)(str))
+#else
+#define INSERT_STRING(s, str, match_head) \
+ (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
+ match_head = s->prev[(str) & s->w_mask] = s->head[s->ins_h], \
+ s->head[s->ins_h] = (Pos)(str))
+#endif
+
+/* ===========================================================================
+ * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
+ * prev[] will be initialized on the fly.
+ */
+#define CLEAR_HASH(s) \
+ s->head[s->hash_size-1] = NIL; \
+ zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
+
+/* ===========================================================================
+ * Slide the hash table when sliding the window down (could be avoided with 32
+ * bit values at the expense of memory usage). We slide even when level == 0 to
+ * keep the hash table consistent if we switch back to level > 0 later.
+ */
+local void slide_hash(s)
+ deflate_state *s;
+{
+ unsigned n, m;
+ Posf *p;
+ uInt wsize = s->w_size;
+
+ n = s->hash_size;
+ p = &s->head[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ } while (--n);
+ n = wsize;
+#ifndef FASTEST
+ p = &s->prev[n];
+ do {
+ m = *--p;
+ *p = (Pos)(m >= wsize ? m - wsize : NIL);
+ /* If n is not on any hash chain, prev[n] is garbage but
+ * its value will never be used.
+ */
+ } while (--n);
+#endif
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateInit_(strm, level, version, stream_size)
+ z_streamp strm;
+ int level;
+ const char *version;
+ int stream_size;
+{
+ return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
+ Z_DEFAULT_STRATEGY, version, stream_size);
+ /* To do: ignore strm->next_in if we use it as window */
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
+ version, stream_size)
+ z_streamp strm;
+ int level;
+ int method;
+ int windowBits;
+ int memLevel;
+ int strategy;
+ const char *version;
+ int stream_size;
+{
+ deflate_state *s;
+ int wrap = 1;
+ static const char my_version[] = ZLIB_VERSION;
+
+ ushf *overlay;
+ /* We overlay pending_buf and d_buf+l_buf. This works since the average
+ * output size for (length,distance) codes is <= 24 bits.
+ */
+
+ if (version == Z_NULL || version[0] != my_version[0] ||
+ stream_size != sizeof(z_stream)) {
+ return Z_VERSION_ERROR;
+ }
+ if (strm == Z_NULL) return Z_STREAM_ERROR;
+
+ strm->msg = Z_NULL;
+ if (strm->zalloc == (alloc_func)0) {
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zalloc = zcalloc;
+ strm->opaque = (voidpf)0;
+#endif
+ }
+ if (strm->zfree == (free_func)0)
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zfree = zcfree;
+#endif
+
+#ifdef FASTEST
+ if (level != 0) level = 1;
+#else
+ if (level == Z_DEFAULT_COMPRESSION) level = 6;
+#endif
+
+ if (windowBits < 0) { /* suppress zlib wrapper */
+ wrap = 0;
+ windowBits = -windowBits;
+ }
+#ifdef GZIP
+ else if (windowBits > 15) {
+ wrap = 2; /* write gzip wrapper instead */
+ windowBits -= 16;
+ }
+#endif
+ if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
+ windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
+ strategy < 0 || strategy > Z_FIXED || (windowBits == 8 && wrap != 1)) {
+ return Z_STREAM_ERROR;
+ }
+ if (windowBits == 8) windowBits = 9; /* until 256-byte window bug fixed */
+ s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
+ if (s == Z_NULL) return Z_MEM_ERROR;
+ strm->state = (struct internal_state FAR *)s;
+ s->strm = strm;
+ s->status = INIT_STATE; /* to pass state test in deflateReset() */
+
+ s->wrap = wrap;
+ s->gzhead = Z_NULL;
+ s->w_bits = (uInt)windowBits;
+ s->w_size = 1 << s->w_bits;
+ s->w_mask = s->w_size - 1;
+
+ s->hash_bits = (uInt)memLevel + 7;
+ s->hash_size = 1 << s->hash_bits;
+ s->hash_mask = s->hash_size - 1;
+ s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
+
+ s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
+ s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
+ s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
+
+ s->high_water = 0; /* nothing written to s->window yet */
+
+ s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+
+ overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+ s->pending_buf = (uchf *) overlay;
+ s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
+
+ if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
+ s->pending_buf == Z_NULL) {
+ s->status = FINISH_STATE;
+ strm->msg = ERR_MSG(Z_MEM_ERROR);
+ deflateEnd (strm);
+ return Z_MEM_ERROR;
+ }
+ s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+ s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+
+ s->level = level;
+ s->strategy = strategy;
+ s->method = (Byte)method;
+
+ return deflateReset(strm);
+}
+
+/* =========================================================================
+ * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
+ */
+local int deflateStateCheck (strm)
+ z_streamp strm;
+{
+ deflate_state *s;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ s = strm->state;
+ if (s == Z_NULL || s->strm != strm || (s->status != INIT_STATE &&
+#ifdef GZIP
+ s->status != GZIP_STATE &&
+#endif
+ s->status != EXTRA_STATE &&
+ s->status != NAME_STATE &&
+ s->status != COMMENT_STATE &&
+ s->status != HCRC_STATE &&
+ s->status != BUSY_STATE &&
+ s->status != FINISH_STATE))
+ return 1;
+ return 0;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
+ z_streamp strm;
+ const Bytef *dictionary;
+ uInt dictLength;
+{
+ deflate_state *s;
+ uInt str, n;
+ int wrap;
+ unsigned avail;
+ z_const unsigned char *next;
+
+ if (deflateStateCheck(strm) || dictionary == Z_NULL)
+ return Z_STREAM_ERROR;
+ s = strm->state;
+ wrap = s->wrap;
+ if (wrap == 2 || (wrap == 1 && s->status != INIT_STATE) || s->lookahead)
+ return Z_STREAM_ERROR;
+
+ /* when using zlib wrappers, compute Adler-32 for provided dictionary */
+ if (wrap == 1)
+ strm->adler = adler32(strm->adler, dictionary, dictLength);
+ s->wrap = 0; /* avoid computing Adler-32 in read_buf */
+
+ /* if dictionary would fill window, just replace the history */
+ if (dictLength >= s->w_size) {
+ if (wrap == 0) { /* already empty otherwise */
+ CLEAR_HASH(s);
+ s->strstart = 0;
+ s->block_start = 0L;
+ s->insert = 0;
+ }
+ dictionary += dictLength - s->w_size; /* use the tail */
+ dictLength = s->w_size;
+ }
+
+ /* insert dictionary into window and hash */
+ avail = strm->avail_in;
+ next = strm->next_in;
+ strm->avail_in = dictLength;
+ strm->next_in = (z_const Bytef *)dictionary;
+ fill_window(s);
+ while (s->lookahead >= MIN_MATCH) {
+ str = s->strstart;
+ n = s->lookahead - (MIN_MATCH-1);
+ do {
+ UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
+#ifndef FASTEST
+ s->prev[str & s->w_mask] = s->head[s->ins_h];
+#endif
+ s->head[s->ins_h] = (Pos)str;
+ str++;
+ } while (--n);
+ s->strstart = str;
+ s->lookahead = MIN_MATCH-1;
+ fill_window(s);
+ }
+ s->strstart += s->lookahead;
+ s->block_start = (long)s->strstart;
+ s->insert = s->lookahead;
+ s->lookahead = 0;
+ s->match_length = s->prev_length = MIN_MATCH-1;
+ s->match_available = 0;
+ strm->next_in = next;
+ strm->avail_in = avail;
+ s->wrap = wrap;
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateGetDictionary (strm, dictionary, dictLength)
+ z_streamp strm;
+ Bytef *dictionary;
+ uInt *dictLength;
+{
+ deflate_state *s;
+ uInt len;
+
+ if (deflateStateCheck(strm))
+ return Z_STREAM_ERROR;
+ s = strm->state;
+ len = s->strstart + s->lookahead;
+ if (len > s->w_size)
+ len = s->w_size;
+ if (dictionary != Z_NULL && len)
+ zmemcpy(dictionary, s->window + s->strstart + s->lookahead - len, len);
+ if (dictLength != Z_NULL)
+ *dictLength = len;
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateResetKeep (strm)
+ z_streamp strm;
+{
+ deflate_state *s;
+
+ if (deflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+
+ strm->total_in = strm->total_out = 0;
+ strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
+ strm->data_type = Z_UNKNOWN;
+
+ s = (deflate_state *)strm->state;
+ s->pending = 0;
+ s->pending_out = s->pending_buf;
+
+ if (s->wrap < 0) {
+ s->wrap = -s->wrap; /* was made negative by deflate(..., Z_FINISH); */
+ }
+ s->status =
+#ifdef GZIP
+ s->wrap == 2 ? GZIP_STATE :
+#endif
+ s->wrap ? INIT_STATE : BUSY_STATE;
+ strm->adler =
+#ifdef GZIP
+ s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
+#endif
+ adler32(0L, Z_NULL, 0);
+ s->last_flush = Z_NO_FLUSH;
+
+ _tr_init(s);
+
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateReset (strm)
+ z_streamp strm;
+{
+ int ret;
+
+ ret = deflateResetKeep(strm);
+ if (ret == Z_OK)
+ lm_init(strm->state);
+ return ret;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateSetHeader (strm, head)
+ z_streamp strm;
+ gz_headerp head;
+{
+ if (deflateStateCheck(strm) || strm->state->wrap != 2)
+ return Z_STREAM_ERROR;
+ strm->state->gzhead = head;
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflatePending (strm, pending, bits)
+ unsigned *pending;
+ int *bits;
+ z_streamp strm;
+{
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+ if (pending != Z_NULL)
+ *pending = strm->state->pending;
+ if (bits != Z_NULL)
+ *bits = strm->state->bi_valid;
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflatePrime (strm, bits, value)
+ z_streamp strm;
+ int bits;
+ int value;
+{
+ deflate_state *s;
+ int put;
+
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+ s = strm->state;
+ if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
+ return Z_BUF_ERROR;
+ do {
+ put = Buf_size - s->bi_valid;
+ if (put > bits)
+ put = bits;
+ s->bi_buf |= (ush)((value & ((1 << put) - 1)) << s->bi_valid);
+ s->bi_valid += put;
+ _tr_flush_bits(s);
+ value >>= put;
+ bits -= put;
+ } while (bits);
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateParams(strm, level, strategy)
+ z_streamp strm;
+ int level;
+ int strategy;
+{
+ deflate_state *s;
+ compress_func func;
+
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+ s = strm->state;
+
+#ifdef FASTEST
+ if (level != 0) level = 1;
+#else
+ if (level == Z_DEFAULT_COMPRESSION) level = 6;
+#endif
+ if (level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
+ return Z_STREAM_ERROR;
+ }
+ func = configuration_table[s->level].func;
+
+ if ((strategy != s->strategy || func != configuration_table[level].func) &&
+ s->high_water) {
+ /* Flush the last buffer: */
+ int err = deflate(strm, Z_BLOCK);
+ if (err == Z_STREAM_ERROR)
+ return err;
+ if (strm->avail_out == 0)
+ return Z_BUF_ERROR;
+ }
+ if (s->level != level) {
+ if (s->level == 0 && s->matches != 0) {
+ if (s->matches == 1)
+ slide_hash(s);
+ else
+ CLEAR_HASH(s);
+ s->matches = 0;
+ }
+ s->level = level;
+ s->max_lazy_match = configuration_table[level].max_lazy;
+ s->good_match = configuration_table[level].good_length;
+ s->nice_match = configuration_table[level].nice_length;
+ s->max_chain_length = configuration_table[level].max_chain;
+ }
+ s->strategy = strategy;
+ return Z_OK;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain)
+ z_streamp strm;
+ int good_length;
+ int max_lazy;
+ int nice_length;
+ int max_chain;
+{
+ deflate_state *s;
+
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+ s = strm->state;
+ s->good_match = (uInt)good_length;
+ s->max_lazy_match = (uInt)max_lazy;
+ s->nice_match = nice_length;
+ s->max_chain_length = (uInt)max_chain;
+ return Z_OK;
+}
+
+/* =========================================================================
+ * For the default windowBits of 15 and memLevel of 8, this function returns
+ * a close to exact, as well as small, upper bound on the compressed size.
+ * They are coded as constants here for a reason--if the #define's are
+ * changed, then this function needs to be changed as well. The return
+ * value for 15 and 8 only works for those exact settings.
+ *
+ * For any setting other than those defaults for windowBits and memLevel,
+ * the value returned is a conservative worst case for the maximum expansion
+ * resulting from using fixed blocks instead of stored blocks, which deflate
+ * can emit on compressed data for some combinations of the parameters.
+ *
+ * This function could be more sophisticated to provide closer upper bounds for
+ * every combination of windowBits and memLevel. But even the conservative
+ * upper bound of about 14% expansion does not seem onerous for output buffer
+ * allocation.
+ */
+uLong ZEXPORT deflateBound(strm, sourceLen)
+ z_streamp strm;
+ uLong sourceLen;
+{
+ deflate_state *s;
+ uLong complen, wraplen;
+
+ /* conservative upper bound for compressed data */
+ complen = sourceLen +
+ ((sourceLen + 7) >> 3) + ((sourceLen + 63) >> 6) + 5;
+
+ /* if can't get parameters, return conservative bound plus zlib wrapper */
+ if (deflateStateCheck(strm))
+ return complen + 6;
+
+ /* compute wrapper length */
+ s = strm->state;
+ switch (s->wrap) {
+ case 0: /* raw deflate */
+ wraplen = 0;
+ break;
+ case 1: /* zlib wrapper */
+ wraplen = 6 + (s->strstart ? 4 : 0);
+ break;
+#ifdef GZIP
+ case 2: /* gzip wrapper */
+ wraplen = 18;
+ if (s->gzhead != Z_NULL) { /* user-supplied gzip header */
+ Bytef *str;
+ if (s->gzhead->extra != Z_NULL)
+ wraplen += 2 + s->gzhead->extra_len;
+ str = s->gzhead->name;
+ if (str != Z_NULL)
+ do {
+ wraplen++;
+ } while (*str++);
+ str = s->gzhead->comment;
+ if (str != Z_NULL)
+ do {
+ wraplen++;
+ } while (*str++);
+ if (s->gzhead->hcrc)
+ wraplen += 2;
+ }
+ break;
+#endif
+ default: /* for compiler happiness */
+ wraplen = 6;
+ }
+
+ /* if not default parameters, return conservative bound */
+ if (s->w_bits != 15 || s->hash_bits != 8 + 7)
+ return complen + wraplen;
+
+ /* default settings: return tight bound for that case */
+ return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
+ (sourceLen >> 25) + 13 - 6 + wraplen;
+}
+
+/* =========================================================================
+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
+ * IN assertion: the stream state is correct and there is enough room in
+ * pending_buf.
+ */
+local void putShortMSB (s, b)
+ deflate_state *s;
+ uInt b;
+{
+ put_byte(s, (Byte)(b >> 8));
+ put_byte(s, (Byte)(b & 0xff));
+}
+
+/* =========================================================================
+ * Flush as much pending output as possible. All deflate() output, except for
+ * some deflate_stored() output, goes through this function so some
+ * applications may wish to modify it to avoid allocating a large
+ * strm->next_out buffer and copying into it. (See also read_buf()).
+ */
+local void flush_pending(strm)
+ z_streamp strm;
+{
+ unsigned len;
+ deflate_state *s = strm->state;
+
+ _tr_flush_bits(s);
+ len = s->pending;
+ if (len > strm->avail_out) len = strm->avail_out;
+ if (len == 0) return;
+
+ zmemcpy(strm->next_out, s->pending_out, len);
+ strm->next_out += len;
+ s->pending_out += len;
+ strm->total_out += len;
+ strm->avail_out -= len;
+ s->pending -= len;
+ if (s->pending == 0) {
+ s->pending_out = s->pending_buf;
+ }
+}
+
+/* ===========================================================================
+ * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
+ */
+#define HCRC_UPDATE(beg) \
+ do { \
+ if (s->gzhead->hcrc && s->pending > (beg)) \
+ strm->adler = crc32(strm->adler, s->pending_buf + (beg), \
+ s->pending - (beg)); \
+ } while (0)
+
+/* ========================================================================= */
+int ZEXPORT deflate (strm, flush)
+ z_streamp strm;
+ int flush;
+{
+ int old_flush; /* value of flush param for previous deflate call */
+ deflate_state *s;
+
+ if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
+ return Z_STREAM_ERROR;
+ }
+ s = strm->state;
+
+ if (strm->next_out == Z_NULL ||
+ (strm->avail_in != 0 && strm->next_in == Z_NULL) ||
+ (s->status == FINISH_STATE && flush != Z_FINISH)) {
+ ERR_RETURN(strm, Z_STREAM_ERROR);
+ }
+ if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
+
+ old_flush = s->last_flush;
+ s->last_flush = flush;
+
+ /* Flush as much pending output as possible */
+ if (s->pending != 0) {
+ flush_pending(strm);
+ if (strm->avail_out == 0) {
+ /* Since avail_out is 0, deflate will be called again with
+ * more output space, but possibly with both pending and
+ * avail_in equal to zero. There won't be anything to do,
+ * but this is not an error situation so make sure we
+ * return OK instead of BUF_ERROR at next call of deflate:
+ */
+ s->last_flush = -1;
+ return Z_OK;
+ }
+
+ /* Make sure there is something to do and avoid duplicate consecutive
+ * flushes. For repeated and useless calls with Z_FINISH, we keep
+ * returning Z_STREAM_END instead of Z_BUF_ERROR.
+ */
+ } else if (strm->avail_in == 0 && RANK(flush) <= RANK(old_flush) &&
+ flush != Z_FINISH) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
+ /* User must not provide more input after the first FINISH: */
+ if (s->status == FINISH_STATE && strm->avail_in != 0) {
+ ERR_RETURN(strm, Z_BUF_ERROR);
+ }
+
+ /* Write the header */
+ if (s->status == INIT_STATE) {
+ /* zlib header */
+ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
+ uInt level_flags;
+
+ if (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2)
+ level_flags = 0;
+ else if (s->level < 6)
+ level_flags = 1;
+ else if (s->level == 6)
+ level_flags = 2;
+ else
+ level_flags = 3;
+ header |= (level_flags << 6);
+ if (s->strstart != 0) header |= PRESET_DICT;
+ header += 31 - (header % 31);
+
+ putShortMSB(s, header);
+
+ /* Save the adler32 of the preset dictionary: */
+ if (s->strstart != 0) {
+ putShortMSB(s, (uInt)(strm->adler >> 16));
+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ }
+ strm->adler = adler32(0L, Z_NULL, 0);
+ s->status = BUSY_STATE;
+
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+#ifdef GZIP
+ if (s->status == GZIP_STATE) {
+ /* gzip header */
+ strm->adler = crc32(0L, Z_NULL, 0);
+ put_byte(s, 31);
+ put_byte(s, 139);
+ put_byte(s, 8);
+ if (s->gzhead == Z_NULL) {
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, OS_CODE);
+ s->status = BUSY_STATE;
+
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+ else {
+ put_byte(s, (s->gzhead->text ? 1 : 0) +
+ (s->gzhead->hcrc ? 2 : 0) +
+ (s->gzhead->extra == Z_NULL ? 0 : 4) +
+ (s->gzhead->name == Z_NULL ? 0 : 8) +
+ (s->gzhead->comment == Z_NULL ? 0 : 16)
+ );
+ put_byte(s, (Byte)(s->gzhead->time & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 8) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 16) & 0xff));
+ put_byte(s, (Byte)((s->gzhead->time >> 24) & 0xff));
+ put_byte(s, s->level == 9 ? 2 :
+ (s->strategy >= Z_HUFFMAN_ONLY || s->level < 2 ?
+ 4 : 0));
+ put_byte(s, s->gzhead->os & 0xff);
+ if (s->gzhead->extra != Z_NULL) {
+ put_byte(s, s->gzhead->extra_len & 0xff);
+ put_byte(s, (s->gzhead->extra_len >> 8) & 0xff);
+ }
+ if (s->gzhead->hcrc)
+ strm->adler = crc32(strm->adler, s->pending_buf,
+ s->pending);
+ s->gzindex = 0;
+ s->status = EXTRA_STATE;
+ }
+ }
+ if (s->status == EXTRA_STATE) {
+ if (s->gzhead->extra != Z_NULL) {
+ ulg beg = s->pending; /* start of bytes to update crc */
+ uInt left = (s->gzhead->extra_len & 0xffff) - s->gzindex;
+ while (s->pending + left > s->pending_buf_size) {
+ uInt copy = s->pending_buf_size - s->pending;
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, copy);
+ s->pending = s->pending_buf_size;
+ HCRC_UPDATE(beg);
+ s->gzindex += copy;
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ left -= copy;
+ }
+ zmemcpy(s->pending_buf + s->pending,
+ s->gzhead->extra + s->gzindex, left);
+ s->pending += left;
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
+ }
+ s->status = NAME_STATE;
+ }
+ if (s->status == NAME_STATE) {
+ if (s->gzhead->name != Z_NULL) {
+ ulg beg = s->pending; /* start of bytes to update crc */
+ int val;
+ do {
+ if (s->pending == s->pending_buf_size) {
+ HCRC_UPDATE(beg);
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ }
+ val = s->gzhead->name[s->gzindex++];
+ put_byte(s, val);
+ } while (val != 0);
+ HCRC_UPDATE(beg);
+ s->gzindex = 0;
+ }
+ s->status = COMMENT_STATE;
+ }
+ if (s->status == COMMENT_STATE) {
+ if (s->gzhead->comment != Z_NULL) {
+ ulg beg = s->pending; /* start of bytes to update crc */
+ int val;
+ do {
+ if (s->pending == s->pending_buf_size) {
+ HCRC_UPDATE(beg);
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ }
+ val = s->gzhead->comment[s->gzindex++];
+ put_byte(s, val);
+ } while (val != 0);
+ HCRC_UPDATE(beg);
+ }
+ s->status = HCRC_STATE;
+ }
+ if (s->status == HCRC_STATE) {
+ if (s->gzhead->hcrc) {
+ if (s->pending + 2 > s->pending_buf_size) {
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+ put_byte(s, (Byte)(strm->adler & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
+ strm->adler = crc32(0L, Z_NULL, 0);
+ }
+ s->status = BUSY_STATE;
+
+ /* Compression must start with an empty pending buffer */
+ flush_pending(strm);
+ if (s->pending != 0) {
+ s->last_flush = -1;
+ return Z_OK;
+ }
+ }
+#endif
+
+ /* Start a new block or continue the current one.
+ */
+ if (strm->avail_in != 0 || s->lookahead != 0 ||
+ (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
+ block_state bstate;
+
+ bstate = s->level == 0 ? deflate_stored(s, flush) :
+ s->strategy == Z_HUFFMAN_ONLY ? deflate_huff(s, flush) :
+ s->strategy == Z_RLE ? deflate_rle(s, flush) :
+ (*(configuration_table[s->level].func))(s, flush);
+
+ if (bstate == finish_started || bstate == finish_done) {
+ s->status = FINISH_STATE;
+ }
+ if (bstate == need_more || bstate == finish_started) {
+ if (strm->avail_out == 0) {
+ s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
+ }
+ return Z_OK;
+ /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
+ * of deflate should use the same flush parameter to make sure
+ * that the flush is complete. So we don't have to output an
+ * empty block here, this will be done at next call. This also
+ * ensures that for a very small output buffer, we emit at most
+ * one empty block.
+ */
+ }
+ if (bstate == block_done) {
+ if (flush == Z_PARTIAL_FLUSH) {
+ _tr_align(s);
+ } else if (flush != Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
+ _tr_stored_block(s, (char*)0, 0L, 0);
+ /* For a full flush, this empty block will be recognized
+ * as a special marker by inflate_sync().
+ */
+ if (flush == Z_FULL_FLUSH) {
+ CLEAR_HASH(s); /* forget history */
+ if (s->lookahead == 0) {
+ s->strstart = 0;
+ s->block_start = 0L;
+ s->insert = 0;
+ }
+ }
+ }
+ flush_pending(strm);
+ if (strm->avail_out == 0) {
+ s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
+ return Z_OK;
+ }
+ }
+ }
+
+ if (flush != Z_FINISH) return Z_OK;
+ if (s->wrap <= 0) return Z_STREAM_END;
+
+ /* Write the trailer */
+#ifdef GZIP
+ if (s->wrap == 2) {
+ put_byte(s, (Byte)(strm->adler & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 8) & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 16) & 0xff));
+ put_byte(s, (Byte)((strm->adler >> 24) & 0xff));
+ put_byte(s, (Byte)(strm->total_in & 0xff));
+ put_byte(s, (Byte)((strm->total_in >> 8) & 0xff));
+ put_byte(s, (Byte)((strm->total_in >> 16) & 0xff));
+ put_byte(s, (Byte)((strm->total_in >> 24) & 0xff));
+ }
+ else
+#endif
+ {
+ putShortMSB(s, (uInt)(strm->adler >> 16));
+ putShortMSB(s, (uInt)(strm->adler & 0xffff));
+ }
+ flush_pending(strm);
+ /* If avail_out is zero, the application will call deflate again
+ * to flush the rest.
+ */
+ if (s->wrap > 0) s->wrap = -s->wrap; /* write the trailer only once! */
+ return s->pending != 0 ? Z_OK : Z_STREAM_END;
+}
+
+/* ========================================================================= */
+int ZEXPORT deflateEnd (strm)
+ z_streamp strm;
+{
+ int status;
+
+ if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
+
+ status = strm->state->status;
+
+ /* Deallocate in reverse order of allocations: */
+ TRY_FREE(strm, strm->state->pending_buf);
+ TRY_FREE(strm, strm->state->head);
+ TRY_FREE(strm, strm->state->prev);
+ TRY_FREE(strm, strm->state->window);
+
+ ZFREE(strm, strm->state);
+ strm->state = Z_NULL;
+
+ return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
+}
+
+/* =========================================================================
+ * Copy the source state to the destination state.
+ * To simplify the source, this is not supported for 16-bit MSDOS (which
+ * doesn't have enough memory anyway to duplicate compression states).
+ */
+int ZEXPORT deflateCopy (dest, source)
+ z_streamp dest;
+ z_streamp source;
+{
+#ifdef MAXSEG_64K
+ return Z_STREAM_ERROR;
+#else
+ deflate_state *ds;
+ deflate_state *ss;
+ ushf *overlay;
+
+
+ if (deflateStateCheck(source) || dest == Z_NULL) {
+ return Z_STREAM_ERROR;
+ }
+
+ ss = source->state;
+
+ zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
+
+ ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
+ if (ds == Z_NULL) return Z_MEM_ERROR;
+ dest->state = (struct internal_state FAR *) ds;
+ zmemcpy((voidpf)ds, (voidpf)ss, sizeof(deflate_state));
+ ds->strm = dest;
+
+ ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
+ ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
+ ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
+ overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
+ ds->pending_buf = (uchf *) overlay;
+
+ if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
+ ds->pending_buf == Z_NULL) {
+ deflateEnd (dest);
+ return Z_MEM_ERROR;
+ }
+ /* following zmemcpy do not work for 16-bit MSDOS */
+ zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
+ zmemcpy((voidpf)ds->prev, (voidpf)ss->prev, ds->w_size * sizeof(Pos));
+ zmemcpy((voidpf)ds->head, (voidpf)ss->head, ds->hash_size * sizeof(Pos));
+ zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
+
+ ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
+ ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
+ ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
+
+ ds->l_desc.dyn_tree = ds->dyn_ltree;
+ ds->d_desc.dyn_tree = ds->dyn_dtree;
+ ds->bl_desc.dyn_tree = ds->bl_tree;
+
+ return Z_OK;
+#endif /* MAXSEG_64K */
+}
+
+/* ===========================================================================
+ * Read a new buffer from the current input stream, update the adler32
+ * and total number of bytes read. All deflate() input goes through
+ * this function so some applications may wish to modify it to avoid
+ * allocating a large strm->next_in buffer and copying from it.
+ * (See also flush_pending()).
+ */
+local unsigned read_buf(strm, buf, size)
+ z_streamp strm;
+ Bytef *buf;
+ unsigned size;
+{
+ unsigned len = strm->avail_in;
+
+ if (len > size) len = size;
+ if (len == 0) return 0;
+
+ strm->avail_in -= len;
+
+ zmemcpy(buf, strm->next_in, len);
+ if (strm->state->wrap == 1) {
+ strm->adler = adler32(strm->adler, buf, len);
+ }
+#ifdef GZIP
+ else if (strm->state->wrap == 2) {
+ strm->adler = crc32(strm->adler, buf, len);
+ }
+#endif
+ strm->next_in += len;
+ strm->total_in += len;
+
+ return len;
+}
+
+/* ===========================================================================
+ * Initialize the "longest match" routines for a new zlib stream
+ */
+local void lm_init (s)
+ deflate_state *s;
+{
+ s->window_size = (ulg)2L*s->w_size;
+
+ CLEAR_HASH(s);
+
+ /* Set the default configuration parameters:
+ */
+ s->max_lazy_match = configuration_table[s->level].max_lazy;
+ s->good_match = configuration_table[s->level].good_length;
+ s->nice_match = configuration_table[s->level].nice_length;
+ s->max_chain_length = configuration_table[s->level].max_chain;
+
+ s->strstart = 0;
+ s->block_start = 0L;
+ s->lookahead = 0;
+ s->insert = 0;
+ s->match_length = s->prev_length = MIN_MATCH-1;
+ s->match_available = 0;
+ s->ins_h = 0;
+#ifndef FASTEST
+#ifdef ASMV
+ match_init(); /* initialize the asm code */
+#endif
+#endif
+}
+
+#ifndef FASTEST
+/* ===========================================================================
+ * Set match_start to the longest match starting at the given string and
+ * return its length. Matches shorter or equal to prev_length are discarded,
+ * in which case the result is equal to prev_length and match_start is
+ * garbage.
+ * IN assertions: cur_match is the head of the hash chain for the current
+ * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
+ * OUT assertion: the match length is not greater than s->lookahead.
+ */
+#ifndef ASMV
+/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
+ * match.S. The code will be functionally equivalent.
+ */
+local uInt longest_match(s, cur_match)
+ deflate_state *s;
+ IPos cur_match; /* current match */
+{
+ unsigned chain_length = s->max_chain_length;/* max hash chain length */
+ register Bytef *scan = s->window + s->strstart; /* current string */
+ register Bytef *match; /* matched string */
+ register int len; /* length of current match */
+ int best_len = (int)s->prev_length; /* best match length so far */
+ int nice_match = s->nice_match; /* stop if match long enough */
+ IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
+ s->strstart - (IPos)MAX_DIST(s) : NIL;
+ /* Stop when cur_match becomes <= limit. To simplify the code,
+ * we prevent matches with the string of window index 0.
+ */
+ Posf *prev = s->prev;
+ uInt wmask = s->w_mask;
+
+#ifdef UNALIGNED_OK
+ /* Compare two bytes at a time. Note: this is not always beneficial.
+ * Try with and without -DUNALIGNED_OK to check.
+ */
+ register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
+ register ush scan_start = *(ushf*)scan;
+ register ush scan_end = *(ushf*)(scan+best_len-1);
+#else
+ register Bytef *strend = s->window + s->strstart + MAX_MATCH;
+ register Byte scan_end1 = scan[best_len-1];
+ register Byte scan_end = scan[best_len];
+#endif
+
+ /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+ * It is easy to get rid of this optimization if necessary.
+ */
+ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+ /* Do not waste too much time if we already have a good match: */
+ if (s->prev_length >= s->good_match) {
+ chain_length >>= 2;
+ }
+ /* Do not look for matches beyond the end of the input. This is necessary
+ * to make deflate deterministic.
+ */
+ if ((uInt)nice_match > s->lookahead) nice_match = (int)s->lookahead;
+
+ Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+ do {
+ Assert(cur_match < s->strstart, "no future");
+ match = s->window + cur_match;
+
+ /* Skip to next match if the match length cannot increase
+ * or if the match length is less than 2. Note that the checks below
+ * for insufficient lookahead only occur occasionally for performance
+ * reasons. Therefore uninitialized memory will be accessed, and
+ * conditional jumps will be made that depend on those values.
+ * However the length of the match is limited to the lookahead, so
+ * the output of deflate is not affected by the uninitialized values.
+ */
+#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
+ /* This code assumes sizeof(unsigned short) == 2. Do not use
+ * UNALIGNED_OK if your compiler uses a different size.
+ */
+ if (*(ushf*)(match+best_len-1) != scan_end ||
+ *(ushf*)match != scan_start) continue;
+
+ /* It is not necessary to compare scan[2] and match[2] since they are
+ * always equal when the other bytes match, given that the hash keys
+ * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
+ * strstart+3, +5, ... up to strstart+257. We check for insufficient
+ * lookahead only every 4th comparison; the 128th check will be made
+ * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
+ * necessary to put more guard bytes at the end of the window, or
+ * to check more often for insufficient lookahead.
+ */
+ Assert(scan[2] == match[2], "scan[2]?");
+ scan++, match++;
+ do {
+ } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
+ *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
+ scan < strend);
+ /* The funny "do {}" generates better code on most compilers */
+
+ /* Here, scan <= window+strstart+257 */
+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+ if (*scan == *match) scan++;
+
+ len = (MAX_MATCH - 1) - (int)(strend-scan);
+ scan = strend - (MAX_MATCH-1);
+
+#else /* UNALIGNED_OK */
+
+ if (match[best_len] != scan_end ||
+ match[best_len-1] != scan_end1 ||
+ *match != *scan ||
+ *++match != scan[1]) continue;
+
+ /* The check at best_len-1 can be removed because it will be made
+ * again later. (This heuristic is not always a win.)
+ * It is not necessary to compare scan[2] and match[2] since they
+ * are always equal when the other bytes match, given that
+ * the hash keys are equal and that HASH_BITS >= 8.
+ */
+ scan += 2, match++;
+ Assert(*scan == *match, "match[2]?");
+
+ /* We check for insufficient lookahead only every 8th comparison;
+ * the 256th check will be made at strstart+258.
+ */
+ do {
+ } while (*++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ scan < strend);
+
+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+ len = MAX_MATCH - (int)(strend - scan);
+ scan = strend - MAX_MATCH;
+
+#endif /* UNALIGNED_OK */
+
+ if (len > best_len) {
+ s->match_start = cur_match;
+ best_len = len;
+ if (len >= nice_match) break;
+#ifdef UNALIGNED_OK
+ scan_end = *(ushf*)(scan+best_len-1);
+#else
+ scan_end1 = scan[best_len-1];
+ scan_end = scan[best_len];
+#endif
+ }
+ } while ((cur_match = prev[cur_match & wmask]) > limit
+ && --chain_length != 0);
+
+ if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
+ return s->lookahead;
+}
+#endif /* ASMV */
+
+#else /* FASTEST */
+
+/* ---------------------------------------------------------------------------
+ * Optimized version for FASTEST only
+ */
+local uInt longest_match(s, cur_match)
+ deflate_state *s;
+ IPos cur_match; /* current match */
+{
+ register Bytef *scan = s->window + s->strstart; /* current string */
+ register Bytef *match; /* matched string */
+ register int len; /* length of current match */
+ register Bytef *strend = s->window + s->strstart + MAX_MATCH;
+
+ /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+ * It is easy to get rid of this optimization if necessary.
+ */
+ Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+ Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+ Assert(cur_match < s->strstart, "no future");
+
+ match = s->window + cur_match;
+
+ /* Return failure if the match length is less than 2:
+ */
+ if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
+
+ /* The check at best_len-1 can be removed because it will be made
+ * again later. (This heuristic is not always a win.)
+ * It is not necessary to compare scan[2] and match[2] since they
+ * are always equal when the other bytes match, given that
+ * the hash keys are equal and that HASH_BITS >= 8.
+ */
+ scan += 2, match += 2;
+ Assert(*scan == *match, "match[2]?");
+
+ /* We check for insufficient lookahead only every 8th comparison;
+ * the 256th check will be made at strstart+258.
+ */
+ do {
+ } while (*++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ *++scan == *++match && *++scan == *++match &&
+ scan < strend);
+
+ Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+ len = MAX_MATCH - (int)(strend - scan);
+
+ if (len < MIN_MATCH) return MIN_MATCH - 1;
+
+ s->match_start = cur_match;
+ return (uInt)len <= s->lookahead ? (uInt)len : s->lookahead;
+}
+
+#endif /* FASTEST */
+
+#ifdef ZLIB_DEBUG
+
+#define EQUAL 0
+/* result of memcmp for equal strings */
+
+/* ===========================================================================
+ * Check that the match at match_start is indeed a match.
+ */
+local void check_match(s, start, match, length)
+ deflate_state *s;
+ IPos start, match;
+ int length;
+{
+ /* check that the match is indeed a match */
+ if (zmemcmp(s->window + match,
+ s->window + start, length) != EQUAL) {
+ fprintf(stderr, " start %u, match %u, length %d\n",
+ start, match, length);
+ do {
+ fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
+ } while (--length != 0);
+ z_error("invalid match");
+ }
+ if (z_verbose > 1) {
+ fprintf(stderr,"\\[%d,%d]", start-match, length);
+ do { putc(s->window[start++], stderr); } while (--length != 0);
+ }
+}
+#else
+# define check_match(s, start, match, length)
+#endif /* ZLIB_DEBUG */
+
+/* ===========================================================================
+ * Fill the window when the lookahead becomes insufficient.
+ * Updates strstart and lookahead.
+ *
+ * IN assertion: lookahead < MIN_LOOKAHEAD
+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
+ * At least one byte has been read, or avail_in == 0; reads are
+ * performed for at least two bytes (required for the zip translate_eol
+ * option -- not supported here).
+ */
+local void fill_window(s)
+ deflate_state *s;
+{
+ unsigned n;
+ unsigned more; /* Amount of free space at the end of the window. */
+ uInt wsize = s->w_size;
+
+ Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+ do {
+ more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
+
+ /* Deal with !@#$% 64K limit: */
+ if (sizeof(int) <= 2) {
+ if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+ more = wsize;
+
+ } else if (more == (unsigned)(-1)) {
+ /* Very unlikely, but possible on 16 bit machine if
+ * strstart == 0 && lookahead == 1 (input done a byte at time)
+ */
+ more--;
+ }
+ }
+
+ /* If the window is almost full and there is insufficient lookahead,
+ * move the upper half to the lower one to make room in the upper half.
+ */
+ if (s->strstart >= wsize+MAX_DIST(s)) {
+
+ zmemcpy(s->window, s->window+wsize, (unsigned)wsize - more);
+ s->match_start -= wsize;
+ s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
+ s->block_start -= (long) wsize;
+ slide_hash(s);
+ more += wsize;
+ }
+ if (s->strm->avail_in == 0) break;
+
+ /* If there was no sliding:
+ * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+ * more == window_size - lookahead - strstart
+ * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+ * => more >= window_size - 2*WSIZE + 2
+ * In the BIG_MEM or MMAP case (not yet supported),
+ * window_size == input_size + MIN_LOOKAHEAD &&
+ * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+ * Otherwise, window_size == 2*WSIZE so more >= 2.
+ * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+ */
+ Assert(more >= 2, "more < 2");
+
+ n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
+ s->lookahead += n;
+
+ /* Initialize the hash value now that we have some input: */
+ if (s->lookahead + s->insert >= MIN_MATCH) {
+ uInt str = s->strstart - s->insert;
+ s->ins_h = s->window[str];
+ UPDATE_HASH(s, s->ins_h, s->window[str + 1]);
+#if MIN_MATCH != 3
+ Call UPDATE_HASH() MIN_MATCH-3 more times
+#endif
+ while (s->insert) {
+ UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]);
+#ifndef FASTEST
+ s->prev[str & s->w_mask] = s->head[s->ins_h];
+#endif
+ s->head[s->ins_h] = (Pos)str;
+ str++;
+ s->insert--;
+ if (s->lookahead + s->insert < MIN_MATCH)
+ break;
+ }
+ }
+ /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+ * but this is not important since only literal bytes will be emitted.
+ */
+
+ } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
+
+ /* If the WIN_INIT bytes after the end of the current data have never been
+ * written, then zero those bytes in order to avoid memory check reports of
+ * the use of uninitialized (or uninitialised as Julian writes) bytes by
+ * the longest match routines. Update the high water mark for the next
+ * time through here. WIN_INIT is set to MAX_MATCH since the longest match
+ * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+ */
+ if (s->high_water < s->window_size) {
+ ulg curr = s->strstart + (ulg)(s->lookahead);
+ ulg init;
+
+ if (s->high_water < curr) {
+ /* Previous high water mark below current data -- zero WIN_INIT
+ * bytes or up to end of window, whichever is less.
+ */
+ init = s->window_size - curr;
+ if (init > WIN_INIT)
+ init = WIN_INIT;
+ zmemzero(s->window + curr, (unsigned)init);
+ s->high_water = curr + init;
+ }
+ else if (s->high_water < (ulg)curr + WIN_INIT) {
+ /* High water mark at or above current data, but below current data
+ * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+ * to end of window, whichever is less.
+ */
+ init = (ulg)curr + WIN_INIT - s->high_water;
+ if (init > s->window_size - s->high_water)
+ init = s->window_size - s->high_water;
+ zmemzero(s->window + s->high_water, (unsigned)init);
+ s->high_water += init;
+ }
+ }
+
+ Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+ "not enough room for search");
+}
+
+/* ===========================================================================
+ * Flush the current block, with given end-of-file flag.
+ * IN assertion: strstart is set to the end of the current match.
+ */
+#define FLUSH_BLOCK_ONLY(s, last) { \
+ _tr_flush_block(s, (s->block_start >= 0L ? \
+ (charf *)&s->window[(unsigned)s->block_start] : \
+ (charf *)Z_NULL), \
+ (ulg)((long)s->strstart - s->block_start), \
+ (last)); \
+ s->block_start = s->strstart; \
+ flush_pending(s->strm); \
+ Tracev((stderr,"[FLUSH]")); \
+}
+
+/* Same but force premature exit if necessary. */
+#define FLUSH_BLOCK(s, last) { \
+ FLUSH_BLOCK_ONLY(s, last); \
+ if (s->strm->avail_out == 0) return (last) ? finish_started : need_more; \
+}
+
+/* Maximum stored block length in deflate format (not including header). */
+#define MAX_STORED 65535
+
+/* Minimum of a and b. */
+#define MIN(a, b) ((a) > (b) ? (b) : (a))
+
+/* ===========================================================================
+ * Copy without compression as much as possible from the input stream, return
+ * the current block state.
+ *
+ * In case deflateParams() is used to later switch to a non-zero compression
+ * level, s->matches (otherwise unused when storing) keeps track of the number
+ * of hash table slides to perform. If s->matches is 1, then one hash table
+ * slide will be done when switching. If s->matches is 2, the maximum value
+ * allowed here, then the hash table will be cleared, since two or more slides
+ * is the same as a clear.
+ *
+ * deflate_stored() is written to minimize the number of times an input byte is
+ * copied. It is most efficient with large input and output buffers, which
+ * maximizes the opportunites to have a single copy from next_in to next_out.
+ */
+local block_state deflate_stored(s, flush)
+ deflate_state *s;
+ int flush;
+{
+ /* Smallest worthy block size when not flushing or finishing. By default
+ * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
+ * large input and output buffers, the stored block size will be larger.
+ */
+ unsigned min_block = MIN(s->pending_buf_size - 5, s->w_size);
+
+ /* Copy as many min_block or larger stored blocks directly to next_out as
+ * possible. If flushing, copy the remaining available input to next_out as
+ * stored blocks, if there is enough space.
+ */
+ unsigned len, left, have, last = 0;
+ unsigned used = s->strm->avail_in;
+ do {
+ /* Set len to the maximum size block that we can copy directly with the
+ * available input data and output space. Set left to how much of that
+ * would be copied from what's left in the window.
+ */
+ len = MAX_STORED; /* maximum deflate stored block length */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ if (s->strm->avail_out < have) /* need room for header */
+ break;
+ /* maximum stored block length that will fit in avail_out: */
+ have = s->strm->avail_out - have;
+ left = s->strstart - s->block_start; /* bytes left in window */
+ if (len > (ulg)left + s->strm->avail_in)
+ len = left + s->strm->avail_in; /* limit len to the input */
+ if (len > have)
+ len = have; /* limit len to the output */
+
+ /* If the stored block would be less than min_block in length, or if
+ * unable to copy all of the available input when flushing, then try
+ * copying to the window and the pending buffer instead. Also don't
+ * write an empty block when flushing -- deflate() does that.
+ */
+ if (len < min_block && ((len == 0 && flush != Z_FINISH) ||
+ flush == Z_NO_FLUSH ||
+ len != left + s->strm->avail_in))
+ break;
+
+ /* Make a dummy stored block in pending to get the header bytes,
+ * including any pending bits. This also updates the debugging counts.
+ */
+ last = flush == Z_FINISH && len == left + s->strm->avail_in ? 1 : 0;
+ _tr_stored_block(s, (char *)0, 0L, last);
+
+ /* Replace the lengths in the dummy stored block with len. */
+ s->pending_buf[s->pending - 4] = len;
+ s->pending_buf[s->pending - 3] = len >> 8;
+ s->pending_buf[s->pending - 2] = ~len;
+ s->pending_buf[s->pending - 1] = ~len >> 8;
+
+ /* Write the stored block header bytes. */
+ flush_pending(s->strm);
+
+#ifdef ZLIB_DEBUG
+ /* Update debugging counts for the data about to be copied. */
+ s->compressed_len += len << 3;
+ s->bits_sent += len << 3;
+#endif
+
+ /* Copy uncompressed bytes from the window to next_out. */
+ if (left) {
+ if (left > len)
+ left = len;
+ zmemcpy(s->strm->next_out, s->window + s->block_start, left);
+ s->strm->next_out += left;
+ s->strm->avail_out -= left;
+ s->strm->total_out += left;
+ s->block_start += left;
+ len -= left;
+ }
+
+ /* Copy uncompressed bytes directly from next_in to next_out, updating
+ * the check value.
+ */
+ if (len) {
+ read_buf(s->strm, s->strm->next_out, len);
+ s->strm->next_out += len;
+ s->strm->avail_out -= len;
+ s->strm->total_out += len;
+ }
+ } while (last == 0);
+
+ /* Update the sliding window with the last s->w_size bytes of the copied
+ * data, or append all of the copied data to the existing window if less
+ * than s->w_size bytes were copied. Also update the number of bytes to
+ * insert in the hash tables, in the event that deflateParams() switches to
+ * a non-zero compression level.
+ */
+ used -= s->strm->avail_in; /* number of input bytes directly copied */
+ if (used) {
+ /* If any input was used, then no unused input remains in the window,
+ * therefore s->block_start == s->strstart.
+ */
+ if (used >= s->w_size) { /* supplant the previous history */
+ s->matches = 2; /* clear hash */
+ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size);
+ s->strstart = s->w_size;
+ }
+ else {
+ if (s->window_size - s->strstart <= used) {
+ /* Slide the window down. */
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ }
+ zmemcpy(s->window + s->strstart, s->strm->next_in - used, used);
+ s->strstart += used;
+ }
+ s->block_start = s->strstart;
+ s->insert += MIN(used, s->w_size - s->insert);
+ }
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* If the last block was written to next_out, then done. */
+ if (last)
+ return finish_done;
+
+ /* If flushing and all input has been consumed, then done. */
+ if (flush != Z_NO_FLUSH && flush != Z_FINISH &&
+ s->strm->avail_in == 0 && (long)s->strstart == s->block_start)
+ return block_done;
+
+ /* Fill the window with any remaining input. */
+ have = s->window_size - s->strstart - 1;
+ if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) {
+ /* Slide the window down. */
+ s->block_start -= s->w_size;
+ s->strstart -= s->w_size;
+ zmemcpy(s->window, s->window + s->w_size, s->strstart);
+ if (s->matches < 2)
+ s->matches++; /* add a pending slide_hash() */
+ have += s->w_size; /* more space now */
+ }
+ if (have > s->strm->avail_in)
+ have = s->strm->avail_in;
+ if (have) {
+ read_buf(s->strm, s->window + s->strstart, have);
+ s->strstart += have;
+ }
+ if (s->high_water < s->strstart)
+ s->high_water = s->strstart;
+
+ /* There was not enough avail_out to write a complete worthy or flushed
+ * stored block to next_out. Write a stored block to pending instead, if we
+ * have enough input for a worthy block, or if flushing and there is enough
+ * room for the remaining input as a stored block in the pending buffer.
+ */
+ have = (s->bi_valid + 42) >> 3; /* number of header bytes */
+ /* maximum stored block length that will fit in pending: */
+ have = MIN(s->pending_buf_size - have, MAX_STORED);
+ min_block = MIN(have, s->w_size);
+ left = s->strstart - s->block_start;
+ if (left >= min_block ||
+ ((left || flush == Z_FINISH) && flush != Z_NO_FLUSH &&
+ s->strm->avail_in == 0 && left <= have)) {
+ len = MIN(left, have);
+ last = flush == Z_FINISH && s->strm->avail_in == 0 &&
+ len == left ? 1 : 0;
+ _tr_stored_block(s, (charf *)s->window + s->block_start, len, last);
+ s->block_start += len;
+ flush_pending(s->strm);
+ }
+
+ /* We've done all we can with the available input and output. */
+ return last ? finish_started : need_more;
+}
+
+/* ===========================================================================
+ * Compress as much as possible from the input stream, return the current
+ * block state.
+ * This function does not perform lazy evaluation of matches and inserts
+ * new strings in the dictionary only for unmatched strings or for short
+ * matches. It is used only for the fast compression options.
+ */
+local block_state deflate_fast(s, flush)
+ deflate_state *s;
+ int flush;
+{
+ IPos hash_head; /* head of the hash chain */
+ int bflush; /* set if current block must be flushed */
+
+ for (;;) {
+ /* Make sure that we always have enough lookahead, except
+ * at the end of the input file. We need MAX_MATCH bytes
+ * for the next match, plus MIN_MATCH bytes to insert the
+ * string following the next match.
+ */
+ if (s->lookahead < MIN_LOOKAHEAD) {
+ fill_window(s);
+ if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
+ return need_more;
+ }
+ if (s->lookahead == 0) break; /* flush the current block */
+ }
+
+ /* Insert the string window[strstart .. strstart+2] in the
+ * dictionary, and set hash_head to the head of the hash chain:
+ */
+ hash_head = NIL;
+ if (s->lookahead >= MIN_MATCH) {
+ INSERT_STRING(s, s->strstart, hash_head);
+ }
+
+ /* Find the longest match, discarding those <= prev_length.
+ * At this point we have always match_length < MIN_MATCH
+ */
+ if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
+ /* To simplify the code, we prevent matches with the string
+ * of window index 0 (in particular we have to avoid a match
+ * of the string with itself at the start of the input file).
+ */
+ s->match_length = longest_match (s, hash_head);
+ /* longest_match() sets match_start */
+ }
+ if (s->match_length >= MIN_MATCH) {
+ check_match(s, s->strstart, s->match_start, s->match_length);
+
+ _tr_tally_dist(s, s->strstart - s->match_start,
+ s->match_length - MIN_MATCH, bflush);
+
+ s->lookahead -= s->match_length;
+
+ /* Insert new strings in the hash table only if the match length
+ * is not too large. This saves time but degrades compression.
+ */
+#ifndef FASTEST
+ if (s->match_length <= s->max_insert_length &&
+ s->lookahead >= MIN_MATCH) {
+ s->match_length--; /* string at strstart already in table */
+ do {
+ s->strstart++;
+ INSERT_STRING(s, s->strstart, hash_head);
+ /* strstart never exceeds WSIZE-MAX_MATCH, so there are
+ * always MIN_MATCH bytes ahead.
+ */
+ } while (--s->match_length != 0);
+ s->strstart++;
+ } else
+#endif
+ {
+ s->strstart += s->match_length;
+ s->match_length = 0;
+ s->ins_h = s->window[s->strstart];
+ UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
+#if MIN_MATCH != 3
+ Call UPDATE_HASH() MIN_MATCH-3 more times
+#endif
+ /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
+ * matter since it will be recomputed at next deflate call.
+ */
+ }
+ } else {
+ /* No match, output a literal byte */
+ Tracevv((stderr,"%c", s->window[s->strstart]));
+ _tr_tally_lit (s, s->window[s->strstart], bflush);
+ s->lookahead--;
+ s->strstart++;
+ }
+ if (bflush) FLUSH_BLOCK(s, 0);
+ }
+ s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
+ if (flush == Z_FINISH) {
+ FLUSH_BLOCK(s, 1);
+ return finish_done;
+ }
+ if (s->last_lit)
+ FLUSH_BLOCK(s, 0);
+ return block_done;
+}
+
+#ifndef FASTEST
+/* ===========================================================================
+ * Same as above, but achieves better compression. We use a lazy
+ * evaluation for matches: a match is finally adopted only if there is
+ * no better match at the next window position.
+ */
+local block_state deflate_slow(s, flush)
+ deflate_state *s;
+ int flush;
+{
+ IPos hash_head; /* head of hash chain */
+ int bflush; /* set if current block must be flushed */
+
+ /* Process the input block. */
+ for (;;) {
+ /* Make sure that we always have enough lookahead, except
+ * at the end of the input file. We need MAX_MATCH bytes
+ * for the next match, plus MIN_MATCH bytes to insert the
+ * string following the next match.
+ */
+ if (s->lookahead < MIN_LOOKAHEAD) {
+ fill_window(s);
+ if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
+ return need_more;
+ }
+ if (s->lookahead == 0) break; /* flush the current block */
+ }
+
+ /* Insert the string window[strstart .. strstart+2] in the
+ * dictionary, and set hash_head to the head of the hash chain:
+ */
+ hash_head = NIL;
+ if (s->lookahead >= MIN_MATCH) {
+ INSERT_STRING(s, s->strstart, hash_head);
+ }
+
+ /* Find the longest match, discarding those <= prev_length.
+ */
+ s->prev_length = s->match_length, s->prev_match = s->match_start;
+ s->match_length = MIN_MATCH-1;
+
+ if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
+ s->strstart - hash_head <= MAX_DIST(s)) {
+ /* To simplify the code, we prevent matches with the string
+ * of window index 0 (in particular we have to avoid a match
+ * of the string with itself at the start of the input file).
+ */
+ s->match_length = longest_match (s, hash_head);
+ /* longest_match() sets match_start */
+
+ if (s->match_length <= 5 && (s->strategy == Z_FILTERED
+#if TOO_FAR <= 32767
+ || (s->match_length == MIN_MATCH &&
+ s->strstart - s->match_start > TOO_FAR)
+#endif
+ )) {
+
+ /* If prev_match is also MIN_MATCH, match_start is garbage
+ * but we will ignore the current match anyway.
+ */
+ s->match_length = MIN_MATCH-1;
+ }
+ }
+ /* If there was a match at the previous step and the current
+ * match is not better, output the previous match:
+ */
+ if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
+ uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
+ /* Do not insert strings in hash table beyond this. */
+
+ check_match(s, s->strstart-1, s->prev_match, s->prev_length);
+
+ _tr_tally_dist(s, s->strstart -1 - s->prev_match,
+ s->prev_length - MIN_MATCH, bflush);
+
+ /* Insert in hash table all strings up to the end of the match.
+ * strstart-1 and strstart are already inserted. If there is not
+ * enough lookahead, the last two strings are not inserted in
+ * the hash table.
+ */
+ s->lookahead -= s->prev_length-1;
+ s->prev_length -= 2;
+ do {
+ if (++s->strstart <= max_insert) {
+ INSERT_STRING(s, s->strstart, hash_head);
+ }
+ } while (--s->prev_length != 0);
+ s->match_available = 0;
+ s->match_length = MIN_MATCH-1;
+ s->strstart++;
+
+ if (bflush) FLUSH_BLOCK(s, 0);
+
+ } else if (s->match_available) {
+ /* If there was no match at the previous position, output a
+ * single literal. If there was a match but the current match
+ * is longer, truncate the previous match to a single literal.
+ */
+ Tracevv((stderr,"%c", s->window[s->strstart-1]));
+ _tr_tally_lit(s, s->window[s->strstart-1], bflush);
+ if (bflush) {
+ FLUSH_BLOCK_ONLY(s, 0);
+ }
+ s->strstart++;
+ s->lookahead--;
+ if (s->strm->avail_out == 0) return need_more;
+ } else {
+ /* There is no previous match to compare with, wait for
+ * the next step to decide.
+ */
+ s->match_available = 1;
+ s->strstart++;
+ s->lookahead--;
+ }
+ }
+ Assert (flush != Z_NO_FLUSH, "no flush?");
+ if (s->match_available) {
+ Tracevv((stderr,"%c", s->window[s->strstart-1]));
+ _tr_tally_lit(s, s->window[s->strstart-1], bflush);
+ s->match_available = 0;
+ }
+ s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1;
+ if (flush == Z_FINISH) {
+ FLUSH_BLOCK(s, 1);
+ return finish_done;
+ }
+ if (s->last_lit)
+ FLUSH_BLOCK(s, 0);
+ return block_done;
+}
+#endif /* FASTEST */
+
+/* ===========================================================================
+ * For Z_RLE, simply look for runs of bytes, generate matches only of distance
+ * one. Do not maintain a hash table. (It will be regenerated if this run of
+ * deflate switches away from Z_RLE.)
+ */
+local block_state deflate_rle(s, flush)
+ deflate_state *s;
+ int flush;
+{
+ int bflush; /* set if current block must be flushed */
+ uInt prev; /* byte at distance one to match */
+ Bytef *scan, *strend; /* scan goes up to strend for length of run */
+
+ for (;;) {
+ /* Make sure that we always have enough lookahead, except
+ * at the end of the input file. We need MAX_MATCH bytes
+ * for the longest run, plus one for the unrolled loop.
+ */
+ if (s->lookahead <= MAX_MATCH) {
+ fill_window(s);
+ if (s->lookahead <= MAX_MATCH && flush == Z_NO_FLUSH) {
+ return need_more;
+ }
+ if (s->lookahead == 0) break; /* flush the current block */
+ }
+
+ /* See how many times the previous byte repeats */
+ s->match_length = 0;
+ if (s->lookahead >= MIN_MATCH && s->strstart > 0) {
+ scan = s->window + s->strstart - 1;
+ prev = *scan;
+ if (prev == *++scan && prev == *++scan && prev == *++scan) {
+ strend = s->window + s->strstart + MAX_MATCH;
+ do {
+ } while (prev == *++scan && prev == *++scan &&
+ prev == *++scan && prev == *++scan &&
+ prev == *++scan && prev == *++scan &&
+ prev == *++scan && prev == *++scan &&
+ scan < strend);
+ s->match_length = MAX_MATCH - (uInt)(strend - scan);
+ if (s->match_length > s->lookahead)
+ s->match_length = s->lookahead;
+ }
+ Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+ }
+
+ /* Emit match if have run of MIN_MATCH or longer, else emit literal */
+ if (s->match_length >= MIN_MATCH) {
+ check_match(s, s->strstart, s->strstart - 1, s->match_length);
+
+ _tr_tally_dist(s, 1, s->match_length - MIN_MATCH, bflush);
+
+ s->lookahead -= s->match_length;
+ s->strstart += s->match_length;
+ s->match_length = 0;
+ } else {
+ /* No match, output a literal byte */
+ Tracevv((stderr,"%c", s->window[s->strstart]));
+ _tr_tally_lit (s, s->window[s->strstart], bflush);
+ s->lookahead--;
+ s->strstart++;
+ }
+ if (bflush) FLUSH_BLOCK(s, 0);
+ }
+ s->insert = 0;
+ if (flush == Z_FINISH) {
+ FLUSH_BLOCK(s, 1);
+ return finish_done;
+ }
+ if (s->last_lit)
+ FLUSH_BLOCK(s, 0);
+ return block_done;
+}
+
+/* ===========================================================================
+ * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
+ * (It will be regenerated if this run of deflate switches away from Huffman.)
+ */
+local block_state deflate_huff(s, flush)
+ deflate_state *s;
+ int flush;
+{
+ int bflush; /* set if current block must be flushed */
+
+ for (;;) {
+ /* Make sure that we have a literal to write. */
+ if (s->lookahead == 0) {
+ fill_window(s);
+ if (s->lookahead == 0) {
+ if (flush == Z_NO_FLUSH)
+ return need_more;
+ break; /* flush the current block */
+ }
+ }
+
+ /* Output a literal byte */
+ s->match_length = 0;
+ Tracevv((stderr,"%c", s->window[s->strstart]));
+ _tr_tally_lit (s, s->window[s->strstart], bflush);
+ s->lookahead--;
+ s->strstart++;
+ if (bflush) FLUSH_BLOCK(s, 0);
+ }
+ s->insert = 0;
+ if (flush == Z_FINISH) {
+ FLUSH_BLOCK(s, 1);
+ return finish_done;
+ }
+ if (s->last_lit)
+ FLUSH_BLOCK(s, 0);
+ return block_done;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.h
new file mode 100644
index 000000000..23ecdd312
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/deflate.h
@@ -0,0 +1,349 @@
+/* deflate.h -- internal compression state
+ * Copyright (C) 1995-2016 Jean-loup Gailly
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* @(#) $Id$ */
+
+#ifndef DEFLATE_H
+#define DEFLATE_H
+
+#include "zutil.h"
+
+/* define NO_GZIP when compiling if you want to disable gzip header and
+ trailer creation by deflate(). NO_GZIP would be used to avoid linking in
+ the crc code when it is not needed. For shared libraries, gzip encoding
+ should be left enabled. */
+#ifndef NO_GZIP
+# define GZIP
+#endif
+
+/* ===========================================================================
+ * Internal compression state.
+ */
+
+#define LENGTH_CODES 29
+/* number of length codes, not counting the special END_BLOCK code */
+
+#define LITERALS 256
+/* number of literal bytes 0..255 */
+
+#define L_CODES (LITERALS+1+LENGTH_CODES)
+/* number of Literal or Length codes, including the END_BLOCK code */
+
+#define D_CODES 30
+/* number of distance codes */
+
+#define BL_CODES 19
+/* number of codes used to transfer the bit lengths */
+
+#define HEAP_SIZE (2*L_CODES+1)
+/* maximum heap size */
+
+#define MAX_BITS 15
+/* All codes must not exceed MAX_BITS bits */
+
+#define Buf_size 16
+/* size of bit buffer in bi_buf */
+
+#define INIT_STATE 42 /* zlib header -> BUSY_STATE */
+#ifdef GZIP
+# define GZIP_STATE 57 /* gzip header -> BUSY_STATE | EXTRA_STATE */
+#endif
+#define EXTRA_STATE 69 /* gzip extra block -> NAME_STATE */
+#define NAME_STATE 73 /* gzip file name -> COMMENT_STATE */
+#define COMMENT_STATE 91 /* gzip comment -> HCRC_STATE */
+#define HCRC_STATE 103 /* gzip header CRC -> BUSY_STATE */
+#define BUSY_STATE 113 /* deflate -> FINISH_STATE */
+#define FINISH_STATE 666 /* stream complete */
+/* Stream status */
+
+
+/* Data structure describing a single value and its code string. */
+typedef struct ct_data_s {
+ union {
+ ush freq; /* frequency count */
+ ush code; /* bit string */
+ } fc;
+ union {
+ ush dad; /* father node in Huffman tree */
+ ush len; /* length of bit string */
+ } dl;
+} FAR ct_data;
+
+#define Freq fc.freq
+#define Code fc.code
+#define Dad dl.dad
+#define Len dl.len
+
+typedef struct static_tree_desc_s static_tree_desc;
+
+typedef struct tree_desc_s {
+ ct_data *dyn_tree; /* the dynamic tree */
+ int max_code; /* largest code with non zero frequency */
+ const static_tree_desc *stat_desc; /* the corresponding static tree */
+} FAR tree_desc;
+
+typedef ush Pos;
+typedef Pos FAR Posf;
+typedef unsigned IPos;
+
+/* A Pos is an index in the character window. We use short instead of int to
+ * save space in the various tables. IPos is used only for parameter passing.
+ */
+
+typedef struct internal_state {
+ z_streamp strm; /* pointer back to this zlib stream */
+ int status; /* as the name implies */
+ Bytef *pending_buf; /* output still pending */
+ ulg pending_buf_size; /* size of pending_buf */
+ Bytef *pending_out; /* next pending byte to output to the stream */
+ ulg pending; /* nb of bytes in the pending buffer */
+ int wrap; /* bit 0 true for zlib, bit 1 true for gzip */
+ gz_headerp gzhead; /* gzip header information to write */
+ ulg gzindex; /* where in extra, name, or comment */
+ Byte method; /* can only be DEFLATED */
+ int last_flush; /* value of flush param for previous deflate call */
+
+ /* used by deflate.c: */
+
+ uInt w_size; /* LZ77 window size (32K by default) */
+ uInt w_bits; /* log2(w_size) (8..16) */
+ uInt w_mask; /* w_size - 1 */
+
+ Bytef *window;
+ /* Sliding window. Input bytes are read into the second half of the window,
+ * and move to the first half later to keep a dictionary of at least wSize
+ * bytes. With this organization, matches are limited to a distance of
+ * wSize-MAX_MATCH bytes, but this ensures that IO is always
+ * performed with a length multiple of the block size. Also, it limits
+ * the window size to 64K, which is quite useful on MSDOS.
+ * To do: use the user input buffer as sliding window.
+ */
+
+ ulg window_size;
+ /* Actual size of window: 2*wSize, except when the user input buffer
+ * is directly used as sliding window.
+ */
+
+ Posf *prev;
+ /* Link to older string with same hash index. To limit the size of this
+ * array to 64K, this link is maintained only for the last 32K strings.
+ * An index in this array is thus a window index modulo 32K.
+ */
+
+ Posf *head; /* Heads of the hash chains or NIL. */
+
+ uInt ins_h; /* hash index of string to be inserted */
+ uInt hash_size; /* number of elements in hash table */
+ uInt hash_bits; /* log2(hash_size) */
+ uInt hash_mask; /* hash_size-1 */
+
+ uInt hash_shift;
+ /* Number of bits by which ins_h must be shifted at each input
+ * step. It must be such that after MIN_MATCH steps, the oldest
+ * byte no longer takes part in the hash key, that is:
+ * hash_shift * MIN_MATCH >= hash_bits
+ */
+
+ long block_start;
+ /* Window position at the beginning of the current output block. Gets
+ * negative when the window is moved backwards.
+ */
+
+ uInt match_length; /* length of best match */
+ IPos prev_match; /* previous match */
+ int match_available; /* set if previous match exists */
+ uInt strstart; /* start of string to insert */
+ uInt match_start; /* start of matching string */
+ uInt lookahead; /* number of valid bytes ahead in window */
+
+ uInt prev_length;
+ /* Length of the best match at previous step. Matches not greater than this
+ * are discarded. This is used in the lazy match evaluation.
+ */
+
+ uInt max_chain_length;
+ /* To speed up deflation, hash chains are never searched beyond this
+ * length. A higher limit improves compression ratio but degrades the
+ * speed.
+ */
+
+ uInt max_lazy_match;
+ /* Attempt to find a better match only when the current match is strictly
+ * smaller than this value. This mechanism is used only for compression
+ * levels >= 4.
+ */
+# define max_insert_length max_lazy_match
+ /* Insert new strings in the hash table only if the match length is not
+ * greater than this length. This saves time but degrades compression.
+ * max_insert_length is used only for compression levels <= 3.
+ */
+
+ int level; /* compression level (1..9) */
+ int strategy; /* favor or force Huffman coding*/
+
+ uInt good_match;
+ /* Use a faster search when the previous match is longer than this */
+
+ int nice_match; /* Stop searching when current match exceeds this */
+
+ /* used by trees.c: */
+ /* Didn't use ct_data typedef below to suppress compiler warning */
+ struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
+ struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
+ struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
+
+ struct tree_desc_s l_desc; /* desc. for literal tree */
+ struct tree_desc_s d_desc; /* desc. for distance tree */
+ struct tree_desc_s bl_desc; /* desc. for bit length tree */
+
+ ush bl_count[MAX_BITS+1];
+ /* number of codes at each bit length for an optimal tree */
+
+ int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
+ int heap_len; /* number of elements in the heap */
+ int heap_max; /* element of largest frequency */
+ /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
+ * The same heap array is used to build all trees.
+ */
+
+ uch depth[2*L_CODES+1];
+ /* Depth of each subtree used as tie breaker for trees of equal frequency
+ */
+
+ uchf *l_buf; /* buffer for literals or lengths */
+
+ uInt lit_bufsize;
+ /* Size of match buffer for literals/lengths. There are 4 reasons for
+ * limiting lit_bufsize to 64K:
+ * - frequencies can be kept in 16 bit counters
+ * - if compression is not successful for the first block, all input
+ * data is still in the window so we can still emit a stored block even
+ * when input comes from standard input. (This can also be done for
+ * all blocks if lit_bufsize is not greater than 32K.)
+ * - if compression is not successful for a file smaller than 64K, we can
+ * even emit a stored file instead of a stored block (saving 5 bytes).
+ * This is applicable only for zip (not gzip or zlib).
+ * - creating new Huffman trees less frequently may not provide fast
+ * adaptation to changes in the input data statistics. (Take for
+ * example a binary file with poorly compressible code followed by
+ * a highly compressible string table.) Smaller buffer sizes give
+ * fast adaptation but have of course the overhead of transmitting
+ * trees more frequently.
+ * - I can't count above 4
+ */
+
+ uInt last_lit; /* running index in l_buf */
+
+ ushf *d_buf;
+ /* Buffer for distances. To simplify the code, d_buf and l_buf have
+ * the same number of elements. To use different lengths, an extra flag
+ * array would be necessary.
+ */
+
+ ulg opt_len; /* bit length of current block with optimal trees */
+ ulg static_len; /* bit length of current block with static trees */
+ uInt matches; /* number of string matches in current block */
+ uInt insert; /* bytes at end of window left to insert */
+
+#ifdef ZLIB_DEBUG
+ ulg compressed_len; /* total bit length of compressed file mod 2^32 */
+ ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
+#endif
+
+ ush bi_buf;
+ /* Output buffer. bits are inserted starting at the bottom (least
+ * significant bits).
+ */
+ int bi_valid;
+ /* Number of valid bits in bi_buf. All bits above the last valid bit
+ * are always zero.
+ */
+
+ ulg high_water;
+ /* High water mark offset in window for initialized bytes -- bytes above
+ * this are set to zero in order to avoid memory check warnings when
+ * longest match routines access bytes past the input. This is then
+ * updated to the new high water mark.
+ */
+
+} FAR deflate_state;
+
+/* Output a byte on the stream.
+ * IN assertion: there is enough room in pending_buf.
+ */
+#define put_byte(s, c) {s->pending_buf[s->pending++] = (Bytef)(c);}
+
+
+#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
+/* Minimum amount of lookahead, except at the end of the input file.
+ * See deflate.c for comments about the MIN_MATCH+1.
+ */
+
+#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
+/* In order to simplify the code, particularly on 16 bit machines, match
+ * distances are limited to MAX_DIST instead of WSIZE.
+ */
+
+#define WIN_INIT MAX_MATCH
+/* Number of bytes after end of data in window to initialize in order to avoid
+ memory checker errors from longest match routines */
+
+ /* in trees.c */
+void ZLIB_INTERNAL _tr_init OF((deflate_state *s));
+int ZLIB_INTERNAL _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
+void ZLIB_INTERNAL _tr_flush_block OF((deflate_state *s, charf *buf,
+ ulg stored_len, int last));
+void ZLIB_INTERNAL _tr_flush_bits OF((deflate_state *s));
+void ZLIB_INTERNAL _tr_align OF((deflate_state *s));
+void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
+ ulg stored_len, int last));
+
+#define d_code(dist) \
+ ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
+/* Mapping from a distance to a distance code. dist is the distance - 1 and
+ * must not have side effects. _dist_code[256] and _dist_code[257] are never
+ * used.
+ */
+
+#ifndef ZLIB_DEBUG
+/* Inline versions of _tr_tally for speed: */
+
+#if defined(GEN_TREES_H) || !defined(STDC)
+ extern uch ZLIB_INTERNAL _length_code[];
+ extern uch ZLIB_INTERNAL _dist_code[];
+#else
+ extern const uch ZLIB_INTERNAL _length_code[];
+ extern const uch ZLIB_INTERNAL _dist_code[];
+#endif
+
+# define _tr_tally_lit(s, c, flush) \
+ { uch cc = (c); \
+ s->d_buf[s->last_lit] = 0; \
+ s->l_buf[s->last_lit++] = cc; \
+ s->dyn_ltree[cc].Freq++; \
+ flush = (s->last_lit == s->lit_bufsize-1); \
+ }
+# define _tr_tally_dist(s, distance, length, flush) \
+ { uch len = (uch)(length); \
+ ush dist = (ush)(distance); \
+ s->d_buf[s->last_lit] = dist; \
+ s->l_buf[s->last_lit++] = len; \
+ dist--; \
+ s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
+ s->dyn_dtree[d_code(dist)].Freq++; \
+ flush = (s->last_lit == s->lit_bufsize-1); \
+ }
+#else
+# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
+# define _tr_tally_dist(s, distance, length, flush) \
+ flush = _tr_tally(s, distance, length)
+#endif
+
+#endif /* DEFLATE_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/README.examples b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/README.examples
new file mode 100644
index 000000000..56a31714e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/README.examples
@@ -0,0 +1,49 @@
+This directory contains examples of the use of zlib and other relevant
+programs and documentation.
+
+enough.c
+ calculation and justification of ENOUGH parameter in inftrees.h
+ - calculates the maximum table space used in inflate tree
+ construction over all possible Huffman codes
+
+fitblk.c
+ compress just enough input to nearly fill a requested output size
+ - zlib isn't designed to do this, but fitblk does it anyway
+
+gun.c
+ uncompress a gzip file
+ - illustrates the use of inflateBack() for high speed file-to-file
+ decompression using call-back functions
+ - is approximately twice as fast as gzip -d
+ - also provides Unix uncompress functionality, again twice as fast
+
+gzappend.c
+ append to a gzip file
+ - illustrates the use of the Z_BLOCK flush parameter for inflate()
+ - illustrates the use of deflatePrime() to start at any bit
+
+gzjoin.c
+ join gzip files without recalculating the crc or recompressing
+ - illustrates the use of the Z_BLOCK flush parameter for inflate()
+ - illustrates the use of crc32_combine()
+
+gzlog.c
+gzlog.h
+ efficiently and robustly maintain a message log file in gzip format
+ - illustrates use of raw deflate, Z_PARTIAL_FLUSH, deflatePrime(),
+ and deflateSetDictionary()
+ - illustrates use of a gzip header extra field
+
+zlib_how.html
+ painfully comprehensive description of zpipe.c (see below)
+ - describes in excruciating detail the use of deflate() and inflate()
+
+zpipe.c
+ reads and writes zlib streams from stdin to stdout
+ - illustrates the proper use of deflate() and inflate()
+ - deeply commented in zlib_how.html (see above)
+
+zran.c
+ index a zlib or gzip stream and randomly access it
+ - illustrates the use of Z_BLOCK, inflatePrime(), and
+ inflateSetDictionary() to provide random access
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/enough.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/enough.c
new file mode 100644
index 000000000..b99114430
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/enough.c
@@ -0,0 +1,572 @@
+/* enough.c -- determine the maximum size of inflate's Huffman code tables over
+ * all possible valid and complete Huffman codes, subject to a length limit.
+ * Copyright (C) 2007, 2008, 2012 Mark Adler
+ * Version 1.4 18 August 2012 Mark Adler
+ */
+
+/* Version history:
+ 1.0 3 Jan 2007 First version (derived from codecount.c version 1.4)
+ 1.1 4 Jan 2007 Use faster incremental table usage computation
+ Prune examine() search on previously visited states
+ 1.2 5 Jan 2007 Comments clean up
+ As inflate does, decrease root for short codes
+ Refuse cases where inflate would increase root
+ 1.3 17 Feb 2008 Add argument for initial root table size
+ Fix bug for initial root table size == max - 1
+ Use a macro to compute the history index
+ 1.4 18 Aug 2012 Avoid shifts more than bits in type (caused endless loop!)
+ Clean up comparisons of different types
+ Clean up code indentation
+ */
+
+/*
+ Examine all possible Huffman codes for a given number of symbols and a
+ maximum code length in bits to determine the maximum table size for zilb's
+ inflate. Only complete Huffman codes are counted.
+
+ Two codes are considered distinct if the vectors of the number of codes per
+ length are not identical. So permutations of the symbol assignments result
+ in the same code for the counting, as do permutations of the assignments of
+ the bit values to the codes (i.e. only canonical codes are counted).
+
+ We build a code from shorter to longer lengths, determining how many symbols
+ are coded at each length. At each step, we have how many symbols remain to
+ be coded, what the last code length used was, and how many bit patterns of
+ that length remain unused. Then we add one to the code length and double the
+ number of unused patterns to graduate to the next code length. We then
+ assign all portions of the remaining symbols to that code length that
+ preserve the properties of a correct and eventually complete code. Those
+ properties are: we cannot use more bit patterns than are available; and when
+ all the symbols are used, there are exactly zero possible bit patterns
+ remaining.
+
+ The inflate Huffman decoding algorithm uses two-level lookup tables for
+ speed. There is a single first-level table to decode codes up to root bits
+ in length (root == 9 in the current inflate implementation). The table
+ has 1 << root entries and is indexed by the next root bits of input. Codes
+ shorter than root bits have replicated table entries, so that the correct
+ entry is pointed to regardless of the bits that follow the short code. If
+ the code is longer than root bits, then the table entry points to a second-
+ level table. The size of that table is determined by the longest code with
+ that root-bit prefix. If that longest code has length len, then the table
+ has size 1 << (len - root), to index the remaining bits in that set of
+ codes. Each subsequent root-bit prefix then has its own sub-table. The
+ total number of table entries required by the code is calculated
+ incrementally as the number of codes at each bit length is populated. When
+ all of the codes are shorter than root bits, then root is reduced to the
+ longest code length, resulting in a single, smaller, one-level table.
+
+ The inflate algorithm also provides for small values of root (relative to
+ the log2 of the number of symbols), where the shortest code has more bits
+ than root. In that case, root is increased to the length of the shortest
+ code. This program, by design, does not handle that case, so it is verified
+ that the number of symbols is less than 2^(root + 1).
+
+ In order to speed up the examination (by about ten orders of magnitude for
+ the default arguments), the intermediate states in the build-up of a code
+ are remembered and previously visited branches are pruned. The memory
+ required for this will increase rapidly with the total number of symbols and
+ the maximum code length in bits. However this is a very small price to pay
+ for the vast speedup.
+
+ First, all of the possible Huffman codes are counted, and reachable
+ intermediate states are noted by a non-zero count in a saved-results array.
+ Second, the intermediate states that lead to (root + 1) bit or longer codes
+ are used to look at all sub-codes from those junctures for their inflate
+ memory usage. (The amount of memory used is not affected by the number of
+ codes of root bits or less in length.) Third, the visited states in the
+ construction of those sub-codes and the associated calculation of the table
+ size is recalled in order to avoid recalculating from the same juncture.
+ Beginning the code examination at (root + 1) bit codes, which is enabled by
+ identifying the reachable nodes, accounts for about six of the orders of
+ magnitude of improvement for the default arguments. About another four
+ orders of magnitude come from not revisiting previous states. Out of
+ approximately 2x10^16 possible Huffman codes, only about 2x10^6 sub-codes
+ need to be examined to cover all of the possible table memory usage cases
+ for the default arguments of 286 symbols limited to 15-bit codes.
+
+ Note that an unsigned long long type is used for counting. It is quite easy
+ to exceed the capacity of an eight-byte integer with a large number of
+ symbols and a large maximum code length, so multiple-precision arithmetic
+ would need to replace the unsigned long long arithmetic in that case. This
+ program will abort if an overflow occurs. The big_t type identifies where
+ the counting takes place.
+
+ An unsigned long long type is also used for calculating the number of
+ possible codes remaining at the maximum length. This limits the maximum
+ code length to the number of bits in a long long minus the number of bits
+ needed to represent the symbols in a flat code. The code_t type identifies
+ where the bit pattern counting takes place.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#define local static
+
+/* special data types */
+typedef unsigned long long big_t; /* type for code counting */
+typedef unsigned long long code_t; /* type for bit pattern counting */
+struct tab { /* type for been here check */
+ size_t len; /* length of bit vector in char's */
+ char *vec; /* allocated bit vector */
+};
+
+/* The array for saving results, num[], is indexed with this triplet:
+
+ syms: number of symbols remaining to code
+ left: number of available bit patterns at length len
+ len: number of bits in the codes currently being assigned
+
+ Those indices are constrained thusly when saving results:
+
+ syms: 3..totsym (totsym == total symbols to code)
+ left: 2..syms - 1, but only the evens (so syms == 8 -> 2, 4, 6)
+ len: 1..max - 1 (max == maximum code length in bits)
+
+ syms == 2 is not saved since that immediately leads to a single code. left
+ must be even, since it represents the number of available bit patterns at
+ the current length, which is double the number at the previous length.
+ left ends at syms-1 since left == syms immediately results in a single code.
+ (left > sym is not allowed since that would result in an incomplete code.)
+ len is less than max, since the code completes immediately when len == max.
+
+ The offset into the array is calculated for the three indices with the
+ first one (syms) being outermost, and the last one (len) being innermost.
+ We build the array with length max-1 lists for the len index, with syms-3
+ of those for each symbol. There are totsym-2 of those, with each one
+ varying in length as a function of sym. See the calculation of index in
+ count() for the index, and the calculation of size in main() for the size
+ of the array.
+
+ For the deflate example of 286 symbols limited to 15-bit codes, the array
+ has 284,284 entries, taking up 2.17 MB for an 8-byte big_t. More than
+ half of the space allocated for saved results is actually used -- not all
+ possible triplets are reached in the generation of valid Huffman codes.
+ */
+
+/* The array for tracking visited states, done[], is itself indexed identically
+ to the num[] array as described above for the (syms, left, len) triplet.
+ Each element in the array is further indexed by the (mem, rem) doublet,
+ where mem is the amount of inflate table space used so far, and rem is the
+ remaining unused entries in the current inflate sub-table. Each indexed
+ element is simply one bit indicating whether the state has been visited or
+ not. Since the ranges for mem and rem are not known a priori, each bit
+ vector is of a variable size, and grows as needed to accommodate the visited
+ states. mem and rem are used to calculate a single index in a triangular
+ array. Since the range of mem is expected in the default case to be about
+ ten times larger than the range of rem, the array is skewed to reduce the
+ memory usage, with eight times the range for mem than for rem. See the
+ calculations for offset and bit in beenhere() for the details.
+
+ For the deflate example of 286 symbols limited to 15-bit codes, the bit
+ vectors grow to total approximately 21 MB, in addition to the 4.3 MB done[]
+ array itself.
+ */
+
+/* Globals to avoid propagating constants or constant pointers recursively */
+local int max; /* maximum allowed bit length for the codes */
+local int root; /* size of base code table in bits */
+local int large; /* largest code table so far */
+local size_t size; /* number of elements in num and done */
+local int *code; /* number of symbols assigned to each bit length */
+local big_t *num; /* saved results array for code counting */
+local struct tab *done; /* states already evaluated array */
+
+/* Index function for num[] and done[] */
+#define INDEX(i,j,k) (((size_t)((i-1)>>1)*((i-2)>>1)+(j>>1)-1)*(max-1)+k-1)
+
+/* Free allocated space. Uses globals code, num, and done. */
+local void cleanup(void)
+{
+ size_t n;
+
+ if (done != NULL) {
+ for (n = 0; n < size; n++)
+ if (done[n].len)
+ free(done[n].vec);
+ free(done);
+ }
+ if (num != NULL)
+ free(num);
+ if (code != NULL)
+ free(code);
+}
+
+/* Return the number of possible Huffman codes using bit patterns of lengths
+ len through max inclusive, coding syms symbols, with left bit patterns of
+ length len unused -- return -1 if there is an overflow in the counting.
+ Keep a record of previous results in num to prevent repeating the same
+ calculation. Uses the globals max and num. */
+local big_t count(int syms, int len, int left)
+{
+ big_t sum; /* number of possible codes from this juncture */
+ big_t got; /* value returned from count() */
+ int least; /* least number of syms to use at this juncture */
+ int most; /* most number of syms to use at this juncture */
+ int use; /* number of bit patterns to use in next call */
+ size_t index; /* index of this case in *num */
+
+ /* see if only one possible code */
+ if (syms == left)
+ return 1;
+
+ /* note and verify the expected state */
+ assert(syms > left && left > 0 && len < max);
+
+ /* see if we've done this one already */
+ index = INDEX(syms, left, len);
+ got = num[index];
+ if (got)
+ return got; /* we have -- return the saved result */
+
+ /* we need to use at least this many bit patterns so that the code won't be
+ incomplete at the next length (more bit patterns than symbols) */
+ least = (left << 1) - syms;
+ if (least < 0)
+ least = 0;
+
+ /* we can use at most this many bit patterns, lest there not be enough
+ available for the remaining symbols at the maximum length (if there were
+ no limit to the code length, this would become: most = left - 1) */
+ most = (((code_t)left << (max - len)) - syms) /
+ (((code_t)1 << (max - len)) - 1);
+
+ /* count all possible codes from this juncture and add them up */
+ sum = 0;
+ for (use = least; use <= most; use++) {
+ got = count(syms - use, len + 1, (left - use) << 1);
+ sum += got;
+ if (got == (big_t)0 - 1 || sum < got) /* overflow */
+ return (big_t)0 - 1;
+ }
+
+ /* verify that all recursive calls are productive */
+ assert(sum != 0);
+
+ /* save the result and return it */
+ num[index] = sum;
+ return sum;
+}
+
+/* Return true if we've been here before, set to true if not. Set a bit in a
+ bit vector to indicate visiting this state. Each (syms,len,left) state
+ has a variable size bit vector indexed by (mem,rem). The bit vector is
+ lengthened if needed to allow setting the (mem,rem) bit. */
+local int beenhere(int syms, int len, int left, int mem, int rem)
+{
+ size_t index; /* index for this state's bit vector */
+ size_t offset; /* offset in this state's bit vector */
+ int bit; /* mask for this state's bit */
+ size_t length; /* length of the bit vector in bytes */
+ char *vector; /* new or enlarged bit vector */
+
+ /* point to vector for (syms,left,len), bit in vector for (mem,rem) */
+ index = INDEX(syms, left, len);
+ mem -= 1 << root;
+ offset = (mem >> 3) + rem;
+ offset = ((offset * (offset + 1)) >> 1) + rem;
+ bit = 1 << (mem & 7);
+
+ /* see if we've been here */
+ length = done[index].len;
+ if (offset < length && (done[index].vec[offset] & bit) != 0)
+ return 1; /* done this! */
+
+ /* we haven't been here before -- set the bit to show we have now */
+
+ /* see if we need to lengthen the vector in order to set the bit */
+ if (length <= offset) {
+ /* if we have one already, enlarge it, zero out the appended space */
+ if (length) {
+ do {
+ length <<= 1;
+ } while (length <= offset);
+ vector = realloc(done[index].vec, length);
+ if (vector != NULL)
+ memset(vector + done[index].len, 0, length - done[index].len);
+ }
+
+ /* otherwise we need to make a new vector and zero it out */
+ else {
+ length = 1 << (len - root);
+ while (length <= offset)
+ length <<= 1;
+ vector = calloc(length, sizeof(char));
+ }
+
+ /* in either case, bail if we can't get the memory */
+ if (vector == NULL) {
+ fputs("abort: unable to allocate enough memory\n", stderr);
+ cleanup();
+ exit(1);
+ }
+
+ /* install the new vector */
+ done[index].len = length;
+ done[index].vec = vector;
+ }
+
+ /* set the bit */
+ done[index].vec[offset] |= bit;
+ return 0;
+}
+
+/* Examine all possible codes from the given node (syms, len, left). Compute
+ the amount of memory required to build inflate's decoding tables, where the
+ number of code structures used so far is mem, and the number remaining in
+ the current sub-table is rem. Uses the globals max, code, root, large, and
+ done. */
+local void examine(int syms, int len, int left, int mem, int rem)
+{
+ int least; /* least number of syms to use at this juncture */
+ int most; /* most number of syms to use at this juncture */
+ int use; /* number of bit patterns to use in next call */
+
+ /* see if we have a complete code */
+ if (syms == left) {
+ /* set the last code entry */
+ code[len] = left;
+
+ /* complete computation of memory used by this code */
+ while (rem < left) {
+ left -= rem;
+ rem = 1 << (len - root);
+ mem += rem;
+ }
+ assert(rem == left);
+
+ /* if this is a new maximum, show the entries used and the sub-code */
+ if (mem > large) {
+ large = mem;
+ printf("max %d: ", mem);
+ for (use = root + 1; use <= max; use++)
+ if (code[use])
+ printf("%d[%d] ", code[use], use);
+ putchar('\n');
+ fflush(stdout);
+ }
+
+ /* remove entries as we drop back down in the recursion */
+ code[len] = 0;
+ return;
+ }
+
+ /* prune the tree if we can */
+ if (beenhere(syms, len, left, mem, rem))
+ return;
+
+ /* we need to use at least this many bit patterns so that the code won't be
+ incomplete at the next length (more bit patterns than symbols) */
+ least = (left << 1) - syms;
+ if (least < 0)
+ least = 0;
+
+ /* we can use at most this many bit patterns, lest there not be enough
+ available for the remaining symbols at the maximum length (if there were
+ no limit to the code length, this would become: most = left - 1) */
+ most = (((code_t)left << (max - len)) - syms) /
+ (((code_t)1 << (max - len)) - 1);
+
+ /* occupy least table spaces, creating new sub-tables as needed */
+ use = least;
+ while (rem < use) {
+ use -= rem;
+ rem = 1 << (len - root);
+ mem += rem;
+ }
+ rem -= use;
+
+ /* examine codes from here, updating table space as we go */
+ for (use = least; use <= most; use++) {
+ code[len] = use;
+ examine(syms - use, len + 1, (left - use) << 1,
+ mem + (rem ? 1 << (len - root) : 0), rem << 1);
+ if (rem == 0) {
+ rem = 1 << (len - root);
+ mem += rem;
+ }
+ rem--;
+ }
+
+ /* remove entries as we drop back down in the recursion */
+ code[len] = 0;
+}
+
+/* Look at all sub-codes starting with root + 1 bits. Look at only the valid
+ intermediate code states (syms, left, len). For each completed code,
+ calculate the amount of memory required by inflate to build the decoding
+ tables. Find the maximum amount of memory required and show the code that
+ requires that maximum. Uses the globals max, root, and num. */
+local void enough(int syms)
+{
+ int n; /* number of remaing symbols for this node */
+ int left; /* number of unused bit patterns at this length */
+ size_t index; /* index of this case in *num */
+
+ /* clear code */
+ for (n = 0; n <= max; n++)
+ code[n] = 0;
+
+ /* look at all (root + 1) bit and longer codes */
+ large = 1 << root; /* base table */
+ if (root < max) /* otherwise, there's only a base table */
+ for (n = 3; n <= syms; n++)
+ for (left = 2; left < n; left += 2)
+ {
+ /* look at all reachable (root + 1) bit nodes, and the
+ resulting codes (complete at root + 2 or more) */
+ index = INDEX(n, left, root + 1);
+ if (root + 1 < max && num[index]) /* reachable node */
+ examine(n, root + 1, left, 1 << root, 0);
+
+ /* also look at root bit codes with completions at root + 1
+ bits (not saved in num, since complete), just in case */
+ if (num[index - 1] && n <= left << 1)
+ examine((n - left) << 1, root + 1, (n - left) << 1,
+ 1 << root, 0);
+ }
+
+ /* done */
+ printf("done: maximum of %d table entries\n", large);
+}
+
+/*
+ Examine and show the total number of possible Huffman codes for a given
+ maximum number of symbols, initial root table size, and maximum code length
+ in bits -- those are the command arguments in that order. The default
+ values are 286, 9, and 15 respectively, for the deflate literal/length code.
+ The possible codes are counted for each number of coded symbols from two to
+ the maximum. The counts for each of those and the total number of codes are
+ shown. The maximum number of inflate table entires is then calculated
+ across all possible codes. Each new maximum number of table entries and the
+ associated sub-code (starting at root + 1 == 10 bits) is shown.
+
+ To count and examine Huffman codes that are not length-limited, provide a
+ maximum length equal to the number of symbols minus one.
+
+ For the deflate literal/length code, use "enough". For the deflate distance
+ code, use "enough 30 6".
+
+ This uses the %llu printf format to print big_t numbers, which assumes that
+ big_t is an unsigned long long. If the big_t type is changed (for example
+ to a multiple precision type), the method of printing will also need to be
+ updated.
+ */
+int main(int argc, char **argv)
+{
+ int syms; /* total number of symbols to code */
+ int n; /* number of symbols to code for this run */
+ big_t got; /* return value of count() */
+ big_t sum; /* accumulated number of codes over n */
+ code_t word; /* for counting bits in code_t */
+
+ /* set up globals for cleanup() */
+ code = NULL;
+ num = NULL;
+ done = NULL;
+
+ /* get arguments -- default to the deflate literal/length code */
+ syms = 286;
+ root = 9;
+ max = 15;
+ if (argc > 1) {
+ syms = atoi(argv[1]);
+ if (argc > 2) {
+ root = atoi(argv[2]);
+ if (argc > 3)
+ max = atoi(argv[3]);
+ }
+ }
+ if (argc > 4 || syms < 2 || root < 1 || max < 1) {
+ fputs("invalid arguments, need: [sym >= 2 [root >= 1 [max >= 1]]]\n",
+ stderr);
+ return 1;
+ }
+
+ /* if not restricting the code length, the longest is syms - 1 */
+ if (max > syms - 1)
+ max = syms - 1;
+
+ /* determine the number of bits in a code_t */
+ for (n = 0, word = 1; word; n++, word <<= 1)
+ ;
+
+ /* make sure that the calculation of most will not overflow */
+ if (max > n || (code_t)(syms - 2) >= (((code_t)0 - 1) >> (max - 1))) {
+ fputs("abort: code length too long for internal types\n", stderr);
+ return 1;
+ }
+
+ /* reject impossible code requests */
+ if ((code_t)(syms - 1) > ((code_t)1 << max) - 1) {
+ fprintf(stderr, "%d symbols cannot be coded in %d bits\n",
+ syms, max);
+ return 1;
+ }
+
+ /* allocate code vector */
+ code = calloc(max + 1, sizeof(int));
+ if (code == NULL) {
+ fputs("abort: unable to allocate enough memory\n", stderr);
+ return 1;
+ }
+
+ /* determine size of saved results array, checking for overflows,
+ allocate and clear the array (set all to zero with calloc()) */
+ if (syms == 2) /* iff max == 1 */
+ num = NULL; /* won't be saving any results */
+ else {
+ size = syms >> 1;
+ if (size > ((size_t)0 - 1) / (n = (syms - 1) >> 1) ||
+ (size *= n, size > ((size_t)0 - 1) / (n = max - 1)) ||
+ (size *= n, size > ((size_t)0 - 1) / sizeof(big_t)) ||
+ (num = calloc(size, sizeof(big_t))) == NULL) {
+ fputs("abort: unable to allocate enough memory\n", stderr);
+ cleanup();
+ return 1;
+ }
+ }
+
+ /* count possible codes for all numbers of symbols, add up counts */
+ sum = 0;
+ for (n = 2; n <= syms; n++) {
+ got = count(n, 1, 2);
+ sum += got;
+ if (got == (big_t)0 - 1 || sum < got) { /* overflow */
+ fputs("abort: can't count that high!\n", stderr);
+ cleanup();
+ return 1;
+ }
+ printf("%llu %d-codes\n", got, n);
+ }
+ printf("%llu total codes for 2 to %d symbols", sum, syms);
+ if (max < syms - 1)
+ printf(" (%d-bit length limit)\n", max);
+ else
+ puts(" (no length limit)");
+
+ /* allocate and clear done array for beenhere() */
+ if (syms == 2)
+ done = NULL;
+ else if (size > ((size_t)0 - 1) / sizeof(struct tab) ||
+ (done = calloc(size, sizeof(struct tab))) == NULL) {
+ fputs("abort: unable to allocate enough memory\n", stderr);
+ cleanup();
+ return 1;
+ }
+
+ /* find and show maximum inflate table usage */
+ if (root > max) /* reduce root to max length */
+ root = max;
+ if ((code_t)syms < ((code_t)1 << (root + 1)))
+ enough(syms);
+ else
+ puts("cannot handle minimum code lengths > root");
+
+ /* done */
+ cleanup();
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/fitblk.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/fitblk.c
new file mode 100644
index 000000000..c61de5c99
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/fitblk.c
@@ -0,0 +1,233 @@
+/* fitblk.c: example of fitting compressed output to a specified size
+ Not copyrighted -- provided to the public domain
+ Version 1.1 25 November 2004 Mark Adler */
+
+/* Version history:
+ 1.0 24 Nov 2004 First version
+ 1.1 25 Nov 2004 Change deflateInit2() to deflateInit()
+ Use fixed-size, stack-allocated raw buffers
+ Simplify code moving compression to subroutines
+ Use assert() for internal errors
+ Add detailed description of approach
+ */
+
+/* Approach to just fitting a requested compressed size:
+
+ fitblk performs three compression passes on a portion of the input
+ data in order to determine how much of that input will compress to
+ nearly the requested output block size. The first pass generates
+ enough deflate blocks to produce output to fill the requested
+ output size plus a specfied excess amount (see the EXCESS define
+ below). The last deflate block may go quite a bit past that, but
+ is discarded. The second pass decompresses and recompresses just
+ the compressed data that fit in the requested plus excess sized
+ buffer. The deflate process is terminated after that amount of
+ input, which is less than the amount consumed on the first pass.
+ The last deflate block of the result will be of a comparable size
+ to the final product, so that the header for that deflate block and
+ the compression ratio for that block will be about the same as in
+ the final product. The third compression pass decompresses the
+ result of the second step, but only the compressed data up to the
+ requested size minus an amount to allow the compressed stream to
+ complete (see the MARGIN define below). That will result in a
+ final compressed stream whose length is less than or equal to the
+ requested size. Assuming sufficient input and a requested size
+ greater than a few hundred bytes, the shortfall will typically be
+ less than ten bytes.
+
+ If the input is short enough that the first compression completes
+ before filling the requested output size, then that compressed
+ stream is return with no recompression.
+
+ EXCESS is chosen to be just greater than the shortfall seen in a
+ two pass approach similar to the above. That shortfall is due to
+ the last deflate block compressing more efficiently with a smaller
+ header on the second pass. EXCESS is set to be large enough so
+ that there is enough uncompressed data for the second pass to fill
+ out the requested size, and small enough so that the final deflate
+ block of the second pass will be close in size to the final deflate
+ block of the third and final pass. MARGIN is chosen to be just
+ large enough to assure that the final compression has enough room
+ to complete in all cases.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include "zlib.h"
+
+#define local static
+
+/* print nastygram and leave */
+local void quit(char *why)
+{
+ fprintf(stderr, "fitblk abort: %s\n", why);
+ exit(1);
+}
+
+#define RAWLEN 4096 /* intermediate uncompressed buffer size */
+
+/* compress from file to def until provided buffer is full or end of
+ input reached; return last deflate() return value, or Z_ERRNO if
+ there was read error on the file */
+local int partcompress(FILE *in, z_streamp def)
+{
+ int ret, flush;
+ unsigned char raw[RAWLEN];
+
+ flush = Z_NO_FLUSH;
+ do {
+ def->avail_in = fread(raw, 1, RAWLEN, in);
+ if (ferror(in))
+ return Z_ERRNO;
+ def->next_in = raw;
+ if (feof(in))
+ flush = Z_FINISH;
+ ret = deflate(def, flush);
+ assert(ret != Z_STREAM_ERROR);
+ } while (def->avail_out != 0 && flush == Z_NO_FLUSH);
+ return ret;
+}
+
+/* recompress from inf's input to def's output; the input for inf and
+ the output for def are set in those structures before calling;
+ return last deflate() return value, or Z_MEM_ERROR if inflate()
+ was not able to allocate enough memory when it needed to */
+local int recompress(z_streamp inf, z_streamp def)
+{
+ int ret, flush;
+ unsigned char raw[RAWLEN];
+
+ flush = Z_NO_FLUSH;
+ do {
+ /* decompress */
+ inf->avail_out = RAWLEN;
+ inf->next_out = raw;
+ ret = inflate(inf, Z_NO_FLUSH);
+ assert(ret != Z_STREAM_ERROR && ret != Z_DATA_ERROR &&
+ ret != Z_NEED_DICT);
+ if (ret == Z_MEM_ERROR)
+ return ret;
+
+ /* compress what was decompresed until done or no room */
+ def->avail_in = RAWLEN - inf->avail_out;
+ def->next_in = raw;
+ if (inf->avail_out != 0)
+ flush = Z_FINISH;
+ ret = deflate(def, flush);
+ assert(ret != Z_STREAM_ERROR);
+ } while (ret != Z_STREAM_END && def->avail_out != 0);
+ return ret;
+}
+
+#define EXCESS 256 /* empirically determined stream overage */
+#define MARGIN 8 /* amount to back off for completion */
+
+/* compress from stdin to fixed-size block on stdout */
+int main(int argc, char **argv)
+{
+ int ret; /* return code */
+ unsigned size; /* requested fixed output block size */
+ unsigned have; /* bytes written by deflate() call */
+ unsigned char *blk; /* intermediate and final stream */
+ unsigned char *tmp; /* close to desired size stream */
+ z_stream def, inf; /* zlib deflate and inflate states */
+
+ /* get requested output size */
+ if (argc != 2)
+ quit("need one argument: size of output block");
+ ret = strtol(argv[1], argv + 1, 10);
+ if (argv[1][0] != 0)
+ quit("argument must be a number");
+ if (ret < 8) /* 8 is minimum zlib stream size */
+ quit("need positive size of 8 or greater");
+ size = (unsigned)ret;
+
+ /* allocate memory for buffers and compression engine */
+ blk = malloc(size + EXCESS);
+ def.zalloc = Z_NULL;
+ def.zfree = Z_NULL;
+ def.opaque = Z_NULL;
+ ret = deflateInit(&def, Z_DEFAULT_COMPRESSION);
+ if (ret != Z_OK || blk == NULL)
+ quit("out of memory");
+
+ /* compress from stdin until output full, or no more input */
+ def.avail_out = size + EXCESS;
+ def.next_out = blk;
+ ret = partcompress(stdin, &def);
+ if (ret == Z_ERRNO)
+ quit("error reading input");
+
+ /* if it all fit, then size was undersubscribed -- done! */
+ if (ret == Z_STREAM_END && def.avail_out >= EXCESS) {
+ /* write block to stdout */
+ have = size + EXCESS - def.avail_out;
+ if (fwrite(blk, 1, have, stdout) != have || ferror(stdout))
+ quit("error writing output");
+
+ /* clean up and print results to stderr */
+ ret = deflateEnd(&def);
+ assert(ret != Z_STREAM_ERROR);
+ free(blk);
+ fprintf(stderr,
+ "%u bytes unused out of %u requested (all input)\n",
+ size - have, size);
+ return 0;
+ }
+
+ /* it didn't all fit -- set up for recompression */
+ inf.zalloc = Z_NULL;
+ inf.zfree = Z_NULL;
+ inf.opaque = Z_NULL;
+ inf.avail_in = 0;
+ inf.next_in = Z_NULL;
+ ret = inflateInit(&inf);
+ tmp = malloc(size + EXCESS);
+ if (ret != Z_OK || tmp == NULL)
+ quit("out of memory");
+ ret = deflateReset(&def);
+ assert(ret != Z_STREAM_ERROR);
+
+ /* do first recompression close to the right amount */
+ inf.avail_in = size + EXCESS;
+ inf.next_in = blk;
+ def.avail_out = size + EXCESS;
+ def.next_out = tmp;
+ ret = recompress(&inf, &def);
+ if (ret == Z_MEM_ERROR)
+ quit("out of memory");
+
+ /* set up for next reocmpression */
+ ret = inflateReset(&inf);
+ assert(ret != Z_STREAM_ERROR);
+ ret = deflateReset(&def);
+ assert(ret != Z_STREAM_ERROR);
+
+ /* do second and final recompression (third compression) */
+ inf.avail_in = size - MARGIN; /* assure stream will complete */
+ inf.next_in = tmp;
+ def.avail_out = size;
+ def.next_out = blk;
+ ret = recompress(&inf, &def);
+ if (ret == Z_MEM_ERROR)
+ quit("out of memory");
+ assert(ret == Z_STREAM_END); /* otherwise MARGIN too small */
+
+ /* done -- write block to stdout */
+ have = size - def.avail_out;
+ if (fwrite(blk, 1, have, stdout) != have || ferror(stdout))
+ quit("error writing output");
+
+ /* clean up and print results to stderr */
+ free(tmp);
+ ret = inflateEnd(&inf);
+ assert(ret != Z_STREAM_ERROR);
+ ret = deflateEnd(&def);
+ assert(ret != Z_STREAM_ERROR);
+ free(blk);
+ fprintf(stderr,
+ "%u bytes unused out of %u requested (%lu input)\n",
+ size - have, size, def.total_in);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gun.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gun.c
new file mode 100644
index 000000000..be44fa51f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gun.c
@@ -0,0 +1,702 @@
+/* gun.c -- simple gunzip to give an example of the use of inflateBack()
+ * Copyright (C) 2003, 2005, 2008, 2010, 2012 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ Version 1.7 12 August 2012 Mark Adler */
+
+/* Version history:
+ 1.0 16 Feb 2003 First version for testing of inflateBack()
+ 1.1 21 Feb 2005 Decompress concatenated gzip streams
+ Remove use of "this" variable (C++ keyword)
+ Fix return value for in()
+ Improve allocation failure checking
+ Add typecasting for void * structures
+ Add -h option for command version and usage
+ Add a bunch of comments
+ 1.2 20 Mar 2005 Add Unix compress (LZW) decompression
+ Copy file attributes from input file to output file
+ 1.3 12 Jun 2005 Add casts for error messages [Oberhumer]
+ 1.4 8 Dec 2006 LZW decompression speed improvements
+ 1.5 9 Feb 2008 Avoid warning in latest version of gcc
+ 1.6 17 Jan 2010 Avoid signed/unsigned comparison warnings
+ 1.7 12 Aug 2012 Update for z_const usage in zlib 1.2.8
+ */
+
+/*
+ gun [ -t ] [ name ... ]
+
+ decompresses the data in the named gzip files. If no arguments are given,
+ gun will decompress from stdin to stdout. The names must end in .gz, -gz,
+ .z, -z, _z, or .Z. The uncompressed data will be written to a file name
+ with the suffix stripped. On success, the original file is deleted. On
+ failure, the output file is deleted. For most failures, the command will
+ continue to process the remaining names on the command line. A memory
+ allocation failure will abort the command. If -t is specified, then the
+ listed files or stdin will be tested as gzip files for integrity (without
+ checking for a proper suffix), no output will be written, and no files
+ will be deleted.
+
+ Like gzip, gun allows concatenated gzip streams and will decompress them,
+ writing all of the uncompressed data to the output. Unlike gzip, gun allows
+ an empty file on input, and will produce no error writing an empty output
+ file.
+
+ gun will also decompress files made by Unix compress, which uses LZW
+ compression. These files are automatically detected by virtue of their
+ magic header bytes. Since the end of Unix compress stream is marked by the
+ end-of-file, they cannot be concantenated. If a Unix compress stream is
+ encountered in an input file, it is the last stream in that file.
+
+ Like gunzip and uncompress, the file attributes of the original compressed
+ file are maintained in the final uncompressed file, to the extent that the
+ user permissions allow it.
+
+ On my Mac OS X PowerPC G4, gun is almost twice as fast as gunzip (version
+ 1.2.4) is on the same file, when gun is linked with zlib 1.2.2. Also the
+ LZW decompression provided by gun is about twice as fast as the standard
+ Unix uncompress command.
+ */
+
+/* external functions and related types and constants */
+#include <stdio.h> /* fprintf() */
+#include <stdlib.h> /* malloc(), free() */
+#include <string.h> /* strerror(), strcmp(), strlen(), memcpy() */
+#include <errno.h> /* errno */
+#include <fcntl.h> /* open() */
+#include <unistd.h> /* read(), write(), close(), chown(), unlink() */
+#include <sys/types.h>
+#include <sys/stat.h> /* stat(), chmod() */
+#include <utime.h> /* utime() */
+#include "zlib.h" /* inflateBackInit(), inflateBack(), */
+ /* inflateBackEnd(), crc32() */
+
+/* function declaration */
+#define local static
+
+/* buffer constants */
+#define SIZE 32768U /* input and output buffer sizes */
+#define PIECE 16384 /* limits i/o chunks for 16-bit int case */
+
+/* structure for infback() to pass to input function in() -- it maintains the
+ input file and a buffer of size SIZE */
+struct ind {
+ int infile;
+ unsigned char *inbuf;
+};
+
+/* Load input buffer, assumed to be empty, and return bytes loaded and a
+ pointer to them. read() is called until the buffer is full, or until it
+ returns end-of-file or error. Return 0 on error. */
+local unsigned in(void *in_desc, z_const unsigned char **buf)
+{
+ int ret;
+ unsigned len;
+ unsigned char *next;
+ struct ind *me = (struct ind *)in_desc;
+
+ next = me->inbuf;
+ *buf = next;
+ len = 0;
+ do {
+ ret = PIECE;
+ if ((unsigned)ret > SIZE - len)
+ ret = (int)(SIZE - len);
+ ret = (int)read(me->infile, next, ret);
+ if (ret == -1) {
+ len = 0;
+ break;
+ }
+ next += ret;
+ len += ret;
+ } while (ret != 0 && len < SIZE);
+ return len;
+}
+
+/* structure for infback() to pass to output function out() -- it maintains the
+ output file, a running CRC-32 check on the output and the total number of
+ bytes output, both for checking against the gzip trailer. (The length in
+ the gzip trailer is stored modulo 2^32, so it's ok if a long is 32 bits and
+ the output is greater than 4 GB.) */
+struct outd {
+ int outfile;
+ int check; /* true if checking crc and total */
+ unsigned long crc;
+ unsigned long total;
+};
+
+/* Write output buffer and update the CRC-32 and total bytes written. write()
+ is called until all of the output is written or an error is encountered.
+ On success out() returns 0. For a write failure, out() returns 1. If the
+ output file descriptor is -1, then nothing is written.
+ */
+local int out(void *out_desc, unsigned char *buf, unsigned len)
+{
+ int ret;
+ struct outd *me = (struct outd *)out_desc;
+
+ if (me->check) {
+ me->crc = crc32(me->crc, buf, len);
+ me->total += len;
+ }
+ if (me->outfile != -1)
+ do {
+ ret = PIECE;
+ if ((unsigned)ret > len)
+ ret = (int)len;
+ ret = (int)write(me->outfile, buf, ret);
+ if (ret == -1)
+ return 1;
+ buf += ret;
+ len -= ret;
+ } while (len != 0);
+ return 0;
+}
+
+/* next input byte macro for use inside lunpipe() and gunpipe() */
+#define NEXT() (have ? 0 : (have = in(indp, &next)), \
+ last = have ? (have--, (int)(*next++)) : -1)
+
+/* memory for gunpipe() and lunpipe() --
+ the first 256 entries of prefix[] and suffix[] are never used, could
+ have offset the index, but it's faster to waste the memory */
+unsigned char inbuf[SIZE]; /* input buffer */
+unsigned char outbuf[SIZE]; /* output buffer */
+unsigned short prefix[65536]; /* index to LZW prefix string */
+unsigned char suffix[65536]; /* one-character LZW suffix */
+unsigned char match[65280 + 2]; /* buffer for reversed match or gzip
+ 32K sliding window */
+
+/* throw out what's left in the current bits byte buffer (this is a vestigial
+ aspect of the compressed data format derived from an implementation that
+ made use of a special VAX machine instruction!) */
+#define FLUSHCODE() \
+ do { \
+ left = 0; \
+ rem = 0; \
+ if (chunk > have) { \
+ chunk -= have; \
+ have = 0; \
+ if (NEXT() == -1) \
+ break; \
+ chunk--; \
+ if (chunk > have) { \
+ chunk = have = 0; \
+ break; \
+ } \
+ } \
+ have -= chunk; \
+ next += chunk; \
+ chunk = 0; \
+ } while (0)
+
+/* Decompress a compress (LZW) file from indp to outfile. The compress magic
+ header (two bytes) has already been read and verified. There are have bytes
+ of buffered input at next. strm is used for passing error information back
+ to gunpipe().
+
+ lunpipe() will return Z_OK on success, Z_BUF_ERROR for an unexpected end of
+ file, read error, or write error (a write error indicated by strm->next_in
+ not equal to Z_NULL), or Z_DATA_ERROR for invalid input.
+ */
+local int lunpipe(unsigned have, z_const unsigned char *next, struct ind *indp,
+ int outfile, z_stream *strm)
+{
+ int last; /* last byte read by NEXT(), or -1 if EOF */
+ unsigned chunk; /* bytes left in current chunk */
+ int left; /* bits left in rem */
+ unsigned rem; /* unused bits from input */
+ int bits; /* current bits per code */
+ unsigned code; /* code, table traversal index */
+ unsigned mask; /* mask for current bits codes */
+ int max; /* maximum bits per code for this stream */
+ unsigned flags; /* compress flags, then block compress flag */
+ unsigned end; /* last valid entry in prefix/suffix tables */
+ unsigned temp; /* current code */
+ unsigned prev; /* previous code */
+ unsigned final; /* last character written for previous code */
+ unsigned stack; /* next position for reversed string */
+ unsigned outcnt; /* bytes in output buffer */
+ struct outd outd; /* output structure */
+ unsigned char *p;
+
+ /* set up output */
+ outd.outfile = outfile;
+ outd.check = 0;
+
+ /* process remainder of compress header -- a flags byte */
+ flags = NEXT();
+ if (last == -1)
+ return Z_BUF_ERROR;
+ if (flags & 0x60) {
+ strm->msg = (char *)"unknown lzw flags set";
+ return Z_DATA_ERROR;
+ }
+ max = flags & 0x1f;
+ if (max < 9 || max > 16) {
+ strm->msg = (char *)"lzw bits out of range";
+ return Z_DATA_ERROR;
+ }
+ if (max == 9) /* 9 doesn't really mean 9 */
+ max = 10;
+ flags &= 0x80; /* true if block compress */
+
+ /* clear table */
+ bits = 9;
+ mask = 0x1ff;
+ end = flags ? 256 : 255;
+
+ /* set up: get first 9-bit code, which is the first decompressed byte, but
+ don't create a table entry until the next code */
+ if (NEXT() == -1) /* no compressed data is ok */
+ return Z_OK;
+ final = prev = (unsigned)last; /* low 8 bits of code */
+ if (NEXT() == -1) /* missing a bit */
+ return Z_BUF_ERROR;
+ if (last & 1) { /* code must be < 256 */
+ strm->msg = (char *)"invalid lzw code";
+ return Z_DATA_ERROR;
+ }
+ rem = (unsigned)last >> 1; /* remaining 7 bits */
+ left = 7;
+ chunk = bits - 2; /* 7 bytes left in this chunk */
+ outbuf[0] = (unsigned char)final; /* write first decompressed byte */
+ outcnt = 1;
+
+ /* decode codes */
+ stack = 0;
+ for (;;) {
+ /* if the table will be full after this, increment the code size */
+ if (end >= mask && bits < max) {
+ FLUSHCODE();
+ bits++;
+ mask <<= 1;
+ mask++;
+ }
+
+ /* get a code of length bits */
+ if (chunk == 0) /* decrement chunk modulo bits */
+ chunk = bits;
+ code = rem; /* low bits of code */
+ if (NEXT() == -1) { /* EOF is end of compressed data */
+ /* write remaining buffered output */
+ if (outcnt && out(&outd, outbuf, outcnt)) {
+ strm->next_in = outbuf; /* signal write error */
+ return Z_BUF_ERROR;
+ }
+ return Z_OK;
+ }
+ code += (unsigned)last << left; /* middle (or high) bits of code */
+ left += 8;
+ chunk--;
+ if (bits > left) { /* need more bits */
+ if (NEXT() == -1) /* can't end in middle of code */
+ return Z_BUF_ERROR;
+ code += (unsigned)last << left; /* high bits of code */
+ left += 8;
+ chunk--;
+ }
+ code &= mask; /* mask to current code length */
+ left -= bits; /* number of unused bits */
+ rem = (unsigned)last >> (8 - left); /* unused bits from last byte */
+
+ /* process clear code (256) */
+ if (code == 256 && flags) {
+ FLUSHCODE();
+ bits = 9; /* initialize bits and mask */
+ mask = 0x1ff;
+ end = 255; /* empty table */
+ continue; /* get next code */
+ }
+
+ /* special code to reuse last match */
+ temp = code; /* save the current code */
+ if (code > end) {
+ /* Be picky on the allowed code here, and make sure that the code
+ we drop through (prev) will be a valid index so that random
+ input does not cause an exception. The code != end + 1 check is
+ empirically derived, and not checked in the original uncompress
+ code. If this ever causes a problem, that check could be safely
+ removed. Leaving this check in greatly improves gun's ability
+ to detect random or corrupted input after a compress header.
+ In any case, the prev > end check must be retained. */
+ if (code != end + 1 || prev > end) {
+ strm->msg = (char *)"invalid lzw code";
+ return Z_DATA_ERROR;
+ }
+ match[stack++] = (unsigned char)final;
+ code = prev;
+ }
+
+ /* walk through linked list to generate output in reverse order */
+ p = match + stack;
+ while (code >= 256) {
+ *p++ = suffix[code];
+ code = prefix[code];
+ }
+ stack = p - match;
+ match[stack++] = (unsigned char)code;
+ final = code;
+
+ /* link new table entry */
+ if (end < mask) {
+ end++;
+ prefix[end] = (unsigned short)prev;
+ suffix[end] = (unsigned char)final;
+ }
+
+ /* set previous code for next iteration */
+ prev = temp;
+
+ /* write output in forward order */
+ while (stack > SIZE - outcnt) {
+ while (outcnt < SIZE)
+ outbuf[outcnt++] = match[--stack];
+ if (out(&outd, outbuf, outcnt)) {
+ strm->next_in = outbuf; /* signal write error */
+ return Z_BUF_ERROR;
+ }
+ outcnt = 0;
+ }
+ p = match + stack;
+ do {
+ outbuf[outcnt++] = *--p;
+ } while (p > match);
+ stack = 0;
+
+ /* loop for next code with final and prev as the last match, rem and
+ left provide the first 0..7 bits of the next code, end is the last
+ valid table entry */
+ }
+}
+
+/* Decompress a gzip file from infile to outfile. strm is assumed to have been
+ successfully initialized with inflateBackInit(). The input file may consist
+ of a series of gzip streams, in which case all of them will be decompressed
+ to the output file. If outfile is -1, then the gzip stream(s) integrity is
+ checked and nothing is written.
+
+ The return value is a zlib error code: Z_MEM_ERROR if out of memory,
+ Z_DATA_ERROR if the header or the compressed data is invalid, or if the
+ trailer CRC-32 check or length doesn't match, Z_BUF_ERROR if the input ends
+ prematurely or a write error occurs, or Z_ERRNO if junk (not a another gzip
+ stream) follows a valid gzip stream.
+ */
+local int gunpipe(z_stream *strm, int infile, int outfile)
+{
+ int ret, first, last;
+ unsigned have, flags, len;
+ z_const unsigned char *next = NULL;
+ struct ind ind, *indp;
+ struct outd outd;
+
+ /* setup input buffer */
+ ind.infile = infile;
+ ind.inbuf = inbuf;
+ indp = &ind;
+
+ /* decompress concatenated gzip streams */
+ have = 0; /* no input data read in yet */
+ first = 1; /* looking for first gzip header */
+ strm->next_in = Z_NULL; /* so Z_BUF_ERROR means EOF */
+ for (;;) {
+ /* look for the two magic header bytes for a gzip stream */
+ if (NEXT() == -1) {
+ ret = Z_OK;
+ break; /* empty gzip stream is ok */
+ }
+ if (last != 31 || (NEXT() != 139 && last != 157)) {
+ strm->msg = (char *)"incorrect header check";
+ ret = first ? Z_DATA_ERROR : Z_ERRNO;
+ break; /* not a gzip or compress header */
+ }
+ first = 0; /* next non-header is junk */
+
+ /* process a compress (LZW) file -- can't be concatenated after this */
+ if (last == 157) {
+ ret = lunpipe(have, next, indp, outfile, strm);
+ break;
+ }
+
+ /* process remainder of gzip header */
+ ret = Z_BUF_ERROR;
+ if (NEXT() != 8) { /* only deflate method allowed */
+ if (last == -1) break;
+ strm->msg = (char *)"unknown compression method";
+ ret = Z_DATA_ERROR;
+ break;
+ }
+ flags = NEXT(); /* header flags */
+ NEXT(); /* discard mod time, xflgs, os */
+ NEXT();
+ NEXT();
+ NEXT();
+ NEXT();
+ NEXT();
+ if (last == -1) break;
+ if (flags & 0xe0) {
+ strm->msg = (char *)"unknown header flags set";
+ ret = Z_DATA_ERROR;
+ break;
+ }
+ if (flags & 4) { /* extra field */
+ len = NEXT();
+ len += (unsigned)(NEXT()) << 8;
+ if (last == -1) break;
+ while (len > have) {
+ len -= have;
+ have = 0;
+ if (NEXT() == -1) break;
+ len--;
+ }
+ if (last == -1) break;
+ have -= len;
+ next += len;
+ }
+ if (flags & 8) /* file name */
+ while (NEXT() != 0 && last != -1)
+ ;
+ if (flags & 16) /* comment */
+ while (NEXT() != 0 && last != -1)
+ ;
+ if (flags & 2) { /* header crc */
+ NEXT();
+ NEXT();
+ }
+ if (last == -1) break;
+
+ /* set up output */
+ outd.outfile = outfile;
+ outd.check = 1;
+ outd.crc = crc32(0L, Z_NULL, 0);
+ outd.total = 0;
+
+ /* decompress data to output */
+ strm->next_in = next;
+ strm->avail_in = have;
+ ret = inflateBack(strm, in, indp, out, &outd);
+ if (ret != Z_STREAM_END) break;
+ next = strm->next_in;
+ have = strm->avail_in;
+ strm->next_in = Z_NULL; /* so Z_BUF_ERROR means EOF */
+
+ /* check trailer */
+ ret = Z_BUF_ERROR;
+ if (NEXT() != (int)(outd.crc & 0xff) ||
+ NEXT() != (int)((outd.crc >> 8) & 0xff) ||
+ NEXT() != (int)((outd.crc >> 16) & 0xff) ||
+ NEXT() != (int)((outd.crc >> 24) & 0xff)) {
+ /* crc error */
+ if (last != -1) {
+ strm->msg = (char *)"incorrect data check";
+ ret = Z_DATA_ERROR;
+ }
+ break;
+ }
+ if (NEXT() != (int)(outd.total & 0xff) ||
+ NEXT() != (int)((outd.total >> 8) & 0xff) ||
+ NEXT() != (int)((outd.total >> 16) & 0xff) ||
+ NEXT() != (int)((outd.total >> 24) & 0xff)) {
+ /* length error */
+ if (last != -1) {
+ strm->msg = (char *)"incorrect length check";
+ ret = Z_DATA_ERROR;
+ }
+ break;
+ }
+
+ /* go back and look for another gzip stream */
+ }
+
+ /* clean up and return */
+ return ret;
+}
+
+/* Copy file attributes, from -> to, as best we can. This is best effort, so
+ no errors are reported. The mode bits, including suid, sgid, and the sticky
+ bit are copied (if allowed), the owner's user id and group id are copied
+ (again if allowed), and the access and modify times are copied. */
+local void copymeta(char *from, char *to)
+{
+ struct stat was;
+ struct utimbuf when;
+
+ /* get all of from's Unix meta data, return if not a regular file */
+ if (stat(from, &was) != 0 || (was.st_mode & S_IFMT) != S_IFREG)
+ return;
+
+ /* set to's mode bits, ignore errors */
+ (void)chmod(to, was.st_mode & 07777);
+
+ /* copy owner's user and group, ignore errors */
+ (void)chown(to, was.st_uid, was.st_gid);
+
+ /* copy access and modify times, ignore errors */
+ when.actime = was.st_atime;
+ when.modtime = was.st_mtime;
+ (void)utime(to, &when);
+}
+
+/* Decompress the file inname to the file outnname, of if test is true, just
+ decompress without writing and check the gzip trailer for integrity. If
+ inname is NULL or an empty string, read from stdin. If outname is NULL or
+ an empty string, write to stdout. strm is a pre-initialized inflateBack
+ structure. When appropriate, copy the file attributes from inname to
+ outname.
+
+ gunzip() returns 1 if there is an out-of-memory error or an unexpected
+ return code from gunpipe(). Otherwise it returns 0.
+ */
+local int gunzip(z_stream *strm, char *inname, char *outname, int test)
+{
+ int ret;
+ int infile, outfile;
+
+ /* open files */
+ if (inname == NULL || *inname == 0) {
+ inname = "-";
+ infile = 0; /* stdin */
+ }
+ else {
+ infile = open(inname, O_RDONLY, 0);
+ if (infile == -1) {
+ fprintf(stderr, "gun cannot open %s\n", inname);
+ return 0;
+ }
+ }
+ if (test)
+ outfile = -1;
+ else if (outname == NULL || *outname == 0) {
+ outname = "-";
+ outfile = 1; /* stdout */
+ }
+ else {
+ outfile = open(outname, O_CREAT | O_TRUNC | O_WRONLY, 0666);
+ if (outfile == -1) {
+ close(infile);
+ fprintf(stderr, "gun cannot create %s\n", outname);
+ return 0;
+ }
+ }
+ errno = 0;
+
+ /* decompress */
+ ret = gunpipe(strm, infile, outfile);
+ if (outfile > 2) close(outfile);
+ if (infile > 2) close(infile);
+
+ /* interpret result */
+ switch (ret) {
+ case Z_OK:
+ case Z_ERRNO:
+ if (infile > 2 && outfile > 2) {
+ copymeta(inname, outname); /* copy attributes */
+ unlink(inname);
+ }
+ if (ret == Z_ERRNO)
+ fprintf(stderr, "gun warning: trailing garbage ignored in %s\n",
+ inname);
+ break;
+ case Z_DATA_ERROR:
+ if (outfile > 2) unlink(outname);
+ fprintf(stderr, "gun data error on %s: %s\n", inname, strm->msg);
+ break;
+ case Z_MEM_ERROR:
+ if (outfile > 2) unlink(outname);
+ fprintf(stderr, "gun out of memory error--aborting\n");
+ return 1;
+ case Z_BUF_ERROR:
+ if (outfile > 2) unlink(outname);
+ if (strm->next_in != Z_NULL) {
+ fprintf(stderr, "gun write error on %s: %s\n",
+ outname, strerror(errno));
+ }
+ else if (errno) {
+ fprintf(stderr, "gun read error on %s: %s\n",
+ inname, strerror(errno));
+ }
+ else {
+ fprintf(stderr, "gun unexpected end of file on %s\n",
+ inname);
+ }
+ break;
+ default:
+ if (outfile > 2) unlink(outname);
+ fprintf(stderr, "gun internal error--aborting\n");
+ return 1;
+ }
+ return 0;
+}
+
+/* Process the gun command line arguments. See the command syntax near the
+ beginning of this source file. */
+int main(int argc, char **argv)
+{
+ int ret, len, test;
+ char *outname;
+ unsigned char *window;
+ z_stream strm;
+
+ /* initialize inflateBack state for repeated use */
+ window = match; /* reuse LZW match buffer */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ ret = inflateBackInit(&strm, 15, window);
+ if (ret != Z_OK) {
+ fprintf(stderr, "gun out of memory error--aborting\n");
+ return 1;
+ }
+
+ /* decompress each file to the same name with the suffix removed */
+ argc--;
+ argv++;
+ test = 0;
+ if (argc && strcmp(*argv, "-h") == 0) {
+ fprintf(stderr, "gun 1.6 (17 Jan 2010)\n");
+ fprintf(stderr, "Copyright (C) 2003-2010 Mark Adler\n");
+ fprintf(stderr, "usage: gun [-t] [file1.gz [file2.Z ...]]\n");
+ return 0;
+ }
+ if (argc && strcmp(*argv, "-t") == 0) {
+ test = 1;
+ argc--;
+ argv++;
+ }
+ if (argc)
+ do {
+ if (test)
+ outname = NULL;
+ else {
+ len = (int)strlen(*argv);
+ if (strcmp(*argv + len - 3, ".gz") == 0 ||
+ strcmp(*argv + len - 3, "-gz") == 0)
+ len -= 3;
+ else if (strcmp(*argv + len - 2, ".z") == 0 ||
+ strcmp(*argv + len - 2, "-z") == 0 ||
+ strcmp(*argv + len - 2, "_z") == 0 ||
+ strcmp(*argv + len - 2, ".Z") == 0)
+ len -= 2;
+ else {
+ fprintf(stderr, "gun error: no gz type on %s--skipping\n",
+ *argv);
+ continue;
+ }
+ outname = malloc(len + 1);
+ if (outname == NULL) {
+ fprintf(stderr, "gun out of memory error--aborting\n");
+ ret = 1;
+ break;
+ }
+ memcpy(outname, *argv, len);
+ outname[len] = 0;
+ }
+ ret = gunzip(&strm, *argv, outname, test);
+ if (outname != NULL) free(outname);
+ if (ret) break;
+ } while (argv++, --argc);
+ else
+ ret = gunzip(&strm, NULL, NULL, test);
+
+ /* clean up */
+ inflateBackEnd(&strm);
+ return ret;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzappend.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzappend.c
new file mode 100644
index 000000000..662dec379
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzappend.c
@@ -0,0 +1,504 @@
+/* gzappend -- command to append to a gzip file
+
+ Copyright (C) 2003, 2012 Mark Adler, all rights reserved
+ version 1.2, 11 Oct 2012
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Mark Adler madler@alumni.caltech.edu
+ */
+
+/*
+ * Change history:
+ *
+ * 1.0 19 Oct 2003 - First version
+ * 1.1 4 Nov 2003 - Expand and clarify some comments and notes
+ * - Add version and copyright to help
+ * - Send help to stdout instead of stderr
+ * - Add some preemptive typecasts
+ * - Add L to constants in lseek() calls
+ * - Remove some debugging information in error messages
+ * - Use new data_type definition for zlib 1.2.1
+ * - Simplfy and unify file operations
+ * - Finish off gzip file in gztack()
+ * - Use deflatePrime() instead of adding empty blocks
+ * - Keep gzip file clean on appended file read errors
+ * - Use in-place rotate instead of auxiliary buffer
+ * (Why you ask? Because it was fun to write!)
+ * 1.2 11 Oct 2012 - Fix for proper z_const usage
+ * - Check for input buffer malloc failure
+ */
+
+/*
+ gzappend takes a gzip file and appends to it, compressing files from the
+ command line or data from stdin. The gzip file is written to directly, to
+ avoid copying that file, in case it's large. Note that this results in the
+ unfriendly behavior that if gzappend fails, the gzip file is corrupted.
+
+ This program was written to illustrate the use of the new Z_BLOCK option of
+ zlib 1.2.x's inflate() function. This option returns from inflate() at each
+ block boundary to facilitate locating and modifying the last block bit at
+ the start of the final deflate block. Also whether using Z_BLOCK or not,
+ another required feature of zlib 1.2.x is that inflate() now provides the
+ number of unusued bits in the last input byte used. gzappend will not work
+ with versions of zlib earlier than 1.2.1.
+
+ gzappend first decompresses the gzip file internally, discarding all but
+ the last 32K of uncompressed data, and noting the location of the last block
+ bit and the number of unused bits in the last byte of the compressed data.
+ The gzip trailer containing the CRC-32 and length of the uncompressed data
+ is verified. This trailer will be later overwritten.
+
+ Then the last block bit is cleared by seeking back in the file and rewriting
+ the byte that contains it. Seeking forward, the last byte of the compressed
+ data is saved along with the number of unused bits to initialize deflate.
+
+ A deflate process is initialized, using the last 32K of the uncompressed
+ data from the gzip file to initialize the dictionary. If the total
+ uncompressed data was less than 32K, then all of it is used to initialize
+ the dictionary. The deflate output bit buffer is also initialized with the
+ last bits from the original deflate stream. From here on, the data to
+ append is simply compressed using deflate, and written to the gzip file.
+ When that is complete, the new CRC-32 and uncompressed length are written
+ as the trailer of the gzip file.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include "zlib.h"
+
+#define local static
+#define LGCHUNK 14
+#define CHUNK (1U << LGCHUNK)
+#define DSIZE 32768U
+
+/* print an error message and terminate with extreme prejudice */
+local void bye(char *msg1, char *msg2)
+{
+ fprintf(stderr, "gzappend error: %s%s\n", msg1, msg2);
+ exit(1);
+}
+
+/* return the greatest common divisor of a and b using Euclid's algorithm,
+ modified to be fast when one argument much greater than the other, and
+ coded to avoid unnecessary swapping */
+local unsigned gcd(unsigned a, unsigned b)
+{
+ unsigned c;
+
+ while (a && b)
+ if (a > b) {
+ c = b;
+ while (a - c >= c)
+ c <<= 1;
+ a -= c;
+ }
+ else {
+ c = a;
+ while (b - c >= c)
+ c <<= 1;
+ b -= c;
+ }
+ return a + b;
+}
+
+/* rotate list[0..len-1] left by rot positions, in place */
+local void rotate(unsigned char *list, unsigned len, unsigned rot)
+{
+ unsigned char tmp;
+ unsigned cycles;
+ unsigned char *start, *last, *to, *from;
+
+ /* normalize rot and handle degenerate cases */
+ if (len < 2) return;
+ if (rot >= len) rot %= len;
+ if (rot == 0) return;
+
+ /* pointer to last entry in list */
+ last = list + (len - 1);
+
+ /* do simple left shift by one */
+ if (rot == 1) {
+ tmp = *list;
+ memcpy(list, list + 1, len - 1);
+ *last = tmp;
+ return;
+ }
+
+ /* do simple right shift by one */
+ if (rot == len - 1) {
+ tmp = *last;
+ memmove(list + 1, list, len - 1);
+ *list = tmp;
+ return;
+ }
+
+ /* otherwise do rotate as a set of cycles in place */
+ cycles = gcd(len, rot); /* number of cycles */
+ do {
+ start = from = list + cycles; /* start index is arbitrary */
+ tmp = *from; /* save entry to be overwritten */
+ for (;;) {
+ to = from; /* next step in cycle */
+ from += rot; /* go right rot positions */
+ if (from > last) from -= len; /* (pointer better not wrap) */
+ if (from == start) break; /* all but one shifted */
+ *to = *from; /* shift left */
+ }
+ *to = tmp; /* complete the circle */
+ } while (--cycles);
+}
+
+/* structure for gzip file read operations */
+typedef struct {
+ int fd; /* file descriptor */
+ int size; /* 1 << size is bytes in buf */
+ unsigned left; /* bytes available at next */
+ unsigned char *buf; /* buffer */
+ z_const unsigned char *next; /* next byte in buffer */
+ char *name; /* file name for error messages */
+} file;
+
+/* reload buffer */
+local int readin(file *in)
+{
+ int len;
+
+ len = read(in->fd, in->buf, 1 << in->size);
+ if (len == -1) bye("error reading ", in->name);
+ in->left = (unsigned)len;
+ in->next = in->buf;
+ return len;
+}
+
+/* read from file in, exit if end-of-file */
+local int readmore(file *in)
+{
+ if (readin(in) == 0) bye("unexpected end of ", in->name);
+ return 0;
+}
+
+#define read1(in) (in->left == 0 ? readmore(in) : 0, \
+ in->left--, *(in->next)++)
+
+/* skip over n bytes of in */
+local void skip(file *in, unsigned n)
+{
+ unsigned bypass;
+
+ if (n > in->left) {
+ n -= in->left;
+ bypass = n & ~((1U << in->size) - 1);
+ if (bypass) {
+ if (lseek(in->fd, (off_t)bypass, SEEK_CUR) == -1)
+ bye("seeking ", in->name);
+ n -= bypass;
+ }
+ readmore(in);
+ if (n > in->left)
+ bye("unexpected end of ", in->name);
+ }
+ in->left -= n;
+ in->next += n;
+}
+
+/* read a four-byte unsigned integer, little-endian, from in */
+unsigned long read4(file *in)
+{
+ unsigned long val;
+
+ val = read1(in);
+ val += (unsigned)read1(in) << 8;
+ val += (unsigned long)read1(in) << 16;
+ val += (unsigned long)read1(in) << 24;
+ return val;
+}
+
+/* skip over gzip header */
+local void gzheader(file *in)
+{
+ int flags;
+ unsigned n;
+
+ if (read1(in) != 31 || read1(in) != 139) bye(in->name, " not a gzip file");
+ if (read1(in) != 8) bye("unknown compression method in", in->name);
+ flags = read1(in);
+ if (flags & 0xe0) bye("unknown header flags set in", in->name);
+ skip(in, 6);
+ if (flags & 4) {
+ n = read1(in);
+ n += (unsigned)(read1(in)) << 8;
+ skip(in, n);
+ }
+ if (flags & 8) while (read1(in) != 0) ;
+ if (flags & 16) while (read1(in) != 0) ;
+ if (flags & 2) skip(in, 2);
+}
+
+/* decompress gzip file "name", return strm with a deflate stream ready to
+ continue compression of the data in the gzip file, and return a file
+ descriptor pointing to where to write the compressed data -- the deflate
+ stream is initialized to compress using level "level" */
+local int gzscan(char *name, z_stream *strm, int level)
+{
+ int ret, lastbit, left, full;
+ unsigned have;
+ unsigned long crc, tot;
+ unsigned char *window;
+ off_t lastoff, end;
+ file gz;
+
+ /* open gzip file */
+ gz.name = name;
+ gz.fd = open(name, O_RDWR, 0);
+ if (gz.fd == -1) bye("cannot open ", name);
+ gz.buf = malloc(CHUNK);
+ if (gz.buf == NULL) bye("out of memory", "");
+ gz.size = LGCHUNK;
+ gz.left = 0;
+
+ /* skip gzip header */
+ gzheader(&gz);
+
+ /* prepare to decompress */
+ window = malloc(DSIZE);
+ if (window == NULL) bye("out of memory", "");
+ strm->zalloc = Z_NULL;
+ strm->zfree = Z_NULL;
+ strm->opaque = Z_NULL;
+ ret = inflateInit2(strm, -15);
+ if (ret != Z_OK) bye("out of memory", " or library mismatch");
+
+ /* decompress the deflate stream, saving append information */
+ lastbit = 0;
+ lastoff = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;
+ left = 0;
+ strm->avail_in = gz.left;
+ strm->next_in = gz.next;
+ crc = crc32(0L, Z_NULL, 0);
+ have = full = 0;
+ do {
+ /* if needed, get more input */
+ if (strm->avail_in == 0) {
+ readmore(&gz);
+ strm->avail_in = gz.left;
+ strm->next_in = gz.next;
+ }
+
+ /* set up output to next available section of sliding window */
+ strm->avail_out = DSIZE - have;
+ strm->next_out = window + have;
+
+ /* inflate and check for errors */
+ ret = inflate(strm, Z_BLOCK);
+ if (ret == Z_STREAM_ERROR) bye("internal stream error!", "");
+ if (ret == Z_MEM_ERROR) bye("out of memory", "");
+ if (ret == Z_DATA_ERROR)
+ bye("invalid compressed data--format violated in", name);
+
+ /* update crc and sliding window pointer */
+ crc = crc32(crc, window + have, DSIZE - have - strm->avail_out);
+ if (strm->avail_out)
+ have = DSIZE - strm->avail_out;
+ else {
+ have = 0;
+ full = 1;
+ }
+
+ /* process end of block */
+ if (strm->data_type & 128) {
+ if (strm->data_type & 64)
+ left = strm->data_type & 0x1f;
+ else {
+ lastbit = strm->data_type & 0x1f;
+ lastoff = lseek(gz.fd, 0L, SEEK_CUR) - strm->avail_in;
+ }
+ }
+ } while (ret != Z_STREAM_END);
+ inflateEnd(strm);
+ gz.left = strm->avail_in;
+ gz.next = strm->next_in;
+
+ /* save the location of the end of the compressed data */
+ end = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;
+
+ /* check gzip trailer and save total for deflate */
+ if (crc != read4(&gz))
+ bye("invalid compressed data--crc mismatch in ", name);
+ tot = strm->total_out;
+ if ((tot & 0xffffffffUL) != read4(&gz))
+ bye("invalid compressed data--length mismatch in", name);
+
+ /* if not at end of file, warn */
+ if (gz.left || readin(&gz))
+ fprintf(stderr,
+ "gzappend warning: junk at end of gzip file overwritten\n");
+
+ /* clear last block bit */
+ lseek(gz.fd, lastoff - (lastbit != 0), SEEK_SET);
+ if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);
+ *gz.buf = (unsigned char)(*gz.buf ^ (1 << ((8 - lastbit) & 7)));
+ lseek(gz.fd, -1L, SEEK_CUR);
+ if (write(gz.fd, gz.buf, 1) != 1) bye("writing after seek to ", name);
+
+ /* if window wrapped, build dictionary from window by rotating */
+ if (full) {
+ rotate(window, DSIZE, have);
+ have = DSIZE;
+ }
+
+ /* set up deflate stream with window, crc, total_in, and leftover bits */
+ ret = deflateInit2(strm, level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY);
+ if (ret != Z_OK) bye("out of memory", "");
+ deflateSetDictionary(strm, window, have);
+ strm->adler = crc;
+ strm->total_in = tot;
+ if (left) {
+ lseek(gz.fd, --end, SEEK_SET);
+ if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);
+ deflatePrime(strm, 8 - left, *gz.buf);
+ }
+ lseek(gz.fd, end, SEEK_SET);
+
+ /* clean up and return */
+ free(window);
+ free(gz.buf);
+ return gz.fd;
+}
+
+/* append file "name" to gzip file gd using deflate stream strm -- if last
+ is true, then finish off the deflate stream at the end */
+local void gztack(char *name, int gd, z_stream *strm, int last)
+{
+ int fd, len, ret;
+ unsigned left;
+ unsigned char *in, *out;
+
+ /* open file to compress and append */
+ fd = 0;
+ if (name != NULL) {
+ fd = open(name, O_RDONLY, 0);
+ if (fd == -1)
+ fprintf(stderr, "gzappend warning: %s not found, skipping ...\n",
+ name);
+ }
+
+ /* allocate buffers */
+ in = malloc(CHUNK);
+ out = malloc(CHUNK);
+ if (in == NULL || out == NULL) bye("out of memory", "");
+
+ /* compress input file and append to gzip file */
+ do {
+ /* get more input */
+ len = read(fd, in, CHUNK);
+ if (len == -1) {
+ fprintf(stderr,
+ "gzappend warning: error reading %s, skipping rest ...\n",
+ name);
+ len = 0;
+ }
+ strm->avail_in = (unsigned)len;
+ strm->next_in = in;
+ if (len) strm->adler = crc32(strm->adler, in, (unsigned)len);
+
+ /* compress and write all available output */
+ do {
+ strm->avail_out = CHUNK;
+ strm->next_out = out;
+ ret = deflate(strm, last && len == 0 ? Z_FINISH : Z_NO_FLUSH);
+ left = CHUNK - strm->avail_out;
+ while (left) {
+ len = write(gd, out + CHUNK - strm->avail_out - left, left);
+ if (len == -1) bye("writing gzip file", "");
+ left -= (unsigned)len;
+ }
+ } while (strm->avail_out == 0 && ret != Z_STREAM_END);
+ } while (len != 0);
+
+ /* write trailer after last entry */
+ if (last) {
+ deflateEnd(strm);
+ out[0] = (unsigned char)(strm->adler);
+ out[1] = (unsigned char)(strm->adler >> 8);
+ out[2] = (unsigned char)(strm->adler >> 16);
+ out[3] = (unsigned char)(strm->adler >> 24);
+ out[4] = (unsigned char)(strm->total_in);
+ out[5] = (unsigned char)(strm->total_in >> 8);
+ out[6] = (unsigned char)(strm->total_in >> 16);
+ out[7] = (unsigned char)(strm->total_in >> 24);
+ len = 8;
+ do {
+ ret = write(gd, out + 8 - len, len);
+ if (ret == -1) bye("writing gzip file", "");
+ len -= ret;
+ } while (len);
+ close(gd);
+ }
+
+ /* clean up and return */
+ free(out);
+ free(in);
+ if (fd > 0) close(fd);
+}
+
+/* process the compression level option if present, scan the gzip file, and
+ append the specified files, or append the data from stdin if no other file
+ names are provided on the command line -- the gzip file must be writable
+ and seekable */
+int main(int argc, char **argv)
+{
+ int gd, level;
+ z_stream strm;
+
+ /* ignore command name */
+ argc--; argv++;
+
+ /* provide usage if no arguments */
+ if (*argv == NULL) {
+ printf(
+ "gzappend 1.2 (11 Oct 2012) Copyright (C) 2003, 2012 Mark Adler\n"
+ );
+ printf(
+ "usage: gzappend [-level] file.gz [ addthis [ andthis ... ]]\n");
+ return 0;
+ }
+
+ /* set compression level */
+ level = Z_DEFAULT_COMPRESSION;
+ if (argv[0][0] == '-') {
+ if (argv[0][1] < '0' || argv[0][1] > '9' || argv[0][2] != 0)
+ bye("invalid compression level", "");
+ level = argv[0][1] - '0';
+ if (*++argv == NULL) bye("no gzip file name after options", "");
+ }
+
+ /* prepare to append to gzip file */
+ gd = gzscan(*argv++, &strm, level);
+
+ /* append files on command line, or from stdin if none */
+ if (*argv == NULL)
+ gztack(NULL, gd, &strm, 1);
+ else
+ do {
+ gztack(*argv, gd, &strm, argv[1] == NULL);
+ } while (*++argv != NULL);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzjoin.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzjoin.c
new file mode 100644
index 000000000..89e809844
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzjoin.c
@@ -0,0 +1,449 @@
+/* gzjoin -- command to join gzip files into one gzip file
+
+ Copyright (C) 2004, 2005, 2012 Mark Adler, all rights reserved
+ version 1.2, 14 Aug 2012
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Mark Adler madler@alumni.caltech.edu
+ */
+
+/*
+ * Change history:
+ *
+ * 1.0 11 Dec 2004 - First version
+ * 1.1 12 Jun 2005 - Changed ssize_t to long for portability
+ * 1.2 14 Aug 2012 - Clean up for z_const usage
+ */
+
+/*
+ gzjoin takes one or more gzip files on the command line and writes out a
+ single gzip file that will uncompress to the concatenation of the
+ uncompressed data from the individual gzip files. gzjoin does this without
+ having to recompress any of the data and without having to calculate a new
+ crc32 for the concatenated uncompressed data. gzjoin does however have to
+ decompress all of the input data in order to find the bits in the compressed
+ data that need to be modified to concatenate the streams.
+
+ gzjoin does not do an integrity check on the input gzip files other than
+ checking the gzip header and decompressing the compressed data. They are
+ otherwise assumed to be complete and correct.
+
+ Each joint between gzip files removes at least 18 bytes of previous trailer
+ and subsequent header, and inserts an average of about three bytes to the
+ compressed data in order to connect the streams. The output gzip file
+ has a minimal ten-byte gzip header with no file name or modification time.
+
+ This program was written to illustrate the use of the Z_BLOCK option of
+ inflate() and the crc32_combine() function. gzjoin will not compile with
+ versions of zlib earlier than 1.2.3.
+ */
+
+#include <stdio.h> /* fputs(), fprintf(), fwrite(), putc() */
+#include <stdlib.h> /* exit(), malloc(), free() */
+#include <fcntl.h> /* open() */
+#include <unistd.h> /* close(), read(), lseek() */
+#include "zlib.h"
+ /* crc32(), crc32_combine(), inflateInit2(), inflate(), inflateEnd() */
+
+#define local static
+
+/* exit with an error (return a value to allow use in an expression) */
+local int bail(char *why1, char *why2)
+{
+ fprintf(stderr, "gzjoin error: %s%s, output incomplete\n", why1, why2);
+ exit(1);
+ return 0;
+}
+
+/* -- simple buffered file input with access to the buffer -- */
+
+#define CHUNK 32768 /* must be a power of two and fit in unsigned */
+
+/* bin buffered input file type */
+typedef struct {
+ char *name; /* name of file for error messages */
+ int fd; /* file descriptor */
+ unsigned left; /* bytes remaining at next */
+ unsigned char *next; /* next byte to read */
+ unsigned char *buf; /* allocated buffer of length CHUNK */
+} bin;
+
+/* close a buffered file and free allocated memory */
+local void bclose(bin *in)
+{
+ if (in != NULL) {
+ if (in->fd != -1)
+ close(in->fd);
+ if (in->buf != NULL)
+ free(in->buf);
+ free(in);
+ }
+}
+
+/* open a buffered file for input, return a pointer to type bin, or NULL on
+ failure */
+local bin *bopen(char *name)
+{
+ bin *in;
+
+ in = malloc(sizeof(bin));
+ if (in == NULL)
+ return NULL;
+ in->buf = malloc(CHUNK);
+ in->fd = open(name, O_RDONLY, 0);
+ if (in->buf == NULL || in->fd == -1) {
+ bclose(in);
+ return NULL;
+ }
+ in->left = 0;
+ in->next = in->buf;
+ in->name = name;
+ return in;
+}
+
+/* load buffer from file, return -1 on read error, 0 or 1 on success, with
+ 1 indicating that end-of-file was reached */
+local int bload(bin *in)
+{
+ long len;
+
+ if (in == NULL)
+ return -1;
+ if (in->left != 0)
+ return 0;
+ in->next = in->buf;
+ do {
+ len = (long)read(in->fd, in->buf + in->left, CHUNK - in->left);
+ if (len < 0)
+ return -1;
+ in->left += (unsigned)len;
+ } while (len != 0 && in->left < CHUNK);
+ return len == 0 ? 1 : 0;
+}
+
+/* get a byte from the file, bail if end of file */
+#define bget(in) (in->left ? 0 : bload(in), \
+ in->left ? (in->left--, *(in->next)++) : \
+ bail("unexpected end of file on ", in->name))
+
+/* get a four-byte little-endian unsigned integer from file */
+local unsigned long bget4(bin *in)
+{
+ unsigned long val;
+
+ val = bget(in);
+ val += (unsigned long)(bget(in)) << 8;
+ val += (unsigned long)(bget(in)) << 16;
+ val += (unsigned long)(bget(in)) << 24;
+ return val;
+}
+
+/* skip bytes in file */
+local void bskip(bin *in, unsigned skip)
+{
+ /* check pointer */
+ if (in == NULL)
+ return;
+
+ /* easy case -- skip bytes in buffer */
+ if (skip <= in->left) {
+ in->left -= skip;
+ in->next += skip;
+ return;
+ }
+
+ /* skip what's in buffer, discard buffer contents */
+ skip -= in->left;
+ in->left = 0;
+
+ /* seek past multiples of CHUNK bytes */
+ if (skip > CHUNK) {
+ unsigned left;
+
+ left = skip & (CHUNK - 1);
+ if (left == 0) {
+ /* exact number of chunks: seek all the way minus one byte to check
+ for end-of-file with a read */
+ lseek(in->fd, skip - 1, SEEK_CUR);
+ if (read(in->fd, in->buf, 1) != 1)
+ bail("unexpected end of file on ", in->name);
+ return;
+ }
+
+ /* skip the integral chunks, update skip with remainder */
+ lseek(in->fd, skip - left, SEEK_CUR);
+ skip = left;
+ }
+
+ /* read more input and skip remainder */
+ bload(in);
+ if (skip > in->left)
+ bail("unexpected end of file on ", in->name);
+ in->left -= skip;
+ in->next += skip;
+}
+
+/* -- end of buffered input functions -- */
+
+/* skip the gzip header from file in */
+local void gzhead(bin *in)
+{
+ int flags;
+
+ /* verify gzip magic header and compression method */
+ if (bget(in) != 0x1f || bget(in) != 0x8b || bget(in) != 8)
+ bail(in->name, " is not a valid gzip file");
+
+ /* get and verify flags */
+ flags = bget(in);
+ if ((flags & 0xe0) != 0)
+ bail("unknown reserved bits set in ", in->name);
+
+ /* skip modification time, extra flags, and os */
+ bskip(in, 6);
+
+ /* skip extra field if present */
+ if (flags & 4) {
+ unsigned len;
+
+ len = bget(in);
+ len += (unsigned)(bget(in)) << 8;
+ bskip(in, len);
+ }
+
+ /* skip file name if present */
+ if (flags & 8)
+ while (bget(in) != 0)
+ ;
+
+ /* skip comment if present */
+ if (flags & 16)
+ while (bget(in) != 0)
+ ;
+
+ /* skip header crc if present */
+ if (flags & 2)
+ bskip(in, 2);
+}
+
+/* write a four-byte little-endian unsigned integer to out */
+local void put4(unsigned long val, FILE *out)
+{
+ putc(val & 0xff, out);
+ putc((val >> 8) & 0xff, out);
+ putc((val >> 16) & 0xff, out);
+ putc((val >> 24) & 0xff, out);
+}
+
+/* Load up zlib stream from buffered input, bail if end of file */
+local void zpull(z_streamp strm, bin *in)
+{
+ if (in->left == 0)
+ bload(in);
+ if (in->left == 0)
+ bail("unexpected end of file on ", in->name);
+ strm->avail_in = in->left;
+ strm->next_in = in->next;
+}
+
+/* Write header for gzip file to out and initialize trailer. */
+local void gzinit(unsigned long *crc, unsigned long *tot, FILE *out)
+{
+ fwrite("\x1f\x8b\x08\0\0\0\0\0\0\xff", 1, 10, out);
+ *crc = crc32(0L, Z_NULL, 0);
+ *tot = 0;
+}
+
+/* Copy the compressed data from name, zeroing the last block bit of the last
+ block if clr is true, and adding empty blocks as needed to get to a byte
+ boundary. If clr is false, then the last block becomes the last block of
+ the output, and the gzip trailer is written. crc and tot maintains the
+ crc and length (modulo 2^32) of the output for the trailer. The resulting
+ gzip file is written to out. gzinit() must be called before the first call
+ of gzcopy() to write the gzip header and to initialize crc and tot. */
+local void gzcopy(char *name, int clr, unsigned long *crc, unsigned long *tot,
+ FILE *out)
+{
+ int ret; /* return value from zlib functions */
+ int pos; /* where the "last block" bit is in byte */
+ int last; /* true if processing the last block */
+ bin *in; /* buffered input file */
+ unsigned char *start; /* start of compressed data in buffer */
+ unsigned char *junk; /* buffer for uncompressed data -- discarded */
+ z_off_t len; /* length of uncompressed data (support > 4 GB) */
+ z_stream strm; /* zlib inflate stream */
+
+ /* open gzip file and skip header */
+ in = bopen(name);
+ if (in == NULL)
+ bail("could not open ", name);
+ gzhead(in);
+
+ /* allocate buffer for uncompressed data and initialize raw inflate
+ stream */
+ junk = malloc(CHUNK);
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, -15);
+ if (junk == NULL || ret != Z_OK)
+ bail("out of memory", "");
+
+ /* inflate and copy compressed data, clear last-block bit if requested */
+ len = 0;
+ zpull(&strm, in);
+ start = in->next;
+ last = start[0] & 1;
+ if (last && clr)
+ start[0] &= ~1;
+ strm.avail_out = 0;
+ for (;;) {
+ /* if input used and output done, write used input and get more */
+ if (strm.avail_in == 0 && strm.avail_out != 0) {
+ fwrite(start, 1, strm.next_in - start, out);
+ start = in->buf;
+ in->left = 0;
+ zpull(&strm, in);
+ }
+
+ /* decompress -- return early when end-of-block reached */
+ strm.avail_out = CHUNK;
+ strm.next_out = junk;
+ ret = inflate(&strm, Z_BLOCK);
+ switch (ret) {
+ case Z_MEM_ERROR:
+ bail("out of memory", "");
+ case Z_DATA_ERROR:
+ bail("invalid compressed data in ", in->name);
+ }
+
+ /* update length of uncompressed data */
+ len += CHUNK - strm.avail_out;
+
+ /* check for block boundary (only get this when block copied out) */
+ if (strm.data_type & 128) {
+ /* if that was the last block, then done */
+ if (last)
+ break;
+
+ /* number of unused bits in last byte */
+ pos = strm.data_type & 7;
+
+ /* find the next last-block bit */
+ if (pos != 0) {
+ /* next last-block bit is in last used byte */
+ pos = 0x100 >> pos;
+ last = strm.next_in[-1] & pos;
+ if (last && clr)
+ in->buf[strm.next_in - in->buf - 1] &= ~pos;
+ }
+ else {
+ /* next last-block bit is in next unused byte */
+ if (strm.avail_in == 0) {
+ /* don't have that byte yet -- get it */
+ fwrite(start, 1, strm.next_in - start, out);
+ start = in->buf;
+ in->left = 0;
+ zpull(&strm, in);
+ }
+ last = strm.next_in[0] & 1;
+ if (last && clr)
+ in->buf[strm.next_in - in->buf] &= ~1;
+ }
+ }
+ }
+
+ /* update buffer with unused input */
+ in->left = strm.avail_in;
+ in->next = in->buf + (strm.next_in - in->buf);
+
+ /* copy used input, write empty blocks to get to byte boundary */
+ pos = strm.data_type & 7;
+ fwrite(start, 1, in->next - start - 1, out);
+ last = in->next[-1];
+ if (pos == 0 || !clr)
+ /* already at byte boundary, or last file: write last byte */
+ putc(last, out);
+ else {
+ /* append empty blocks to last byte */
+ last &= ((0x100 >> pos) - 1); /* assure unused bits are zero */
+ if (pos & 1) {
+ /* odd -- append an empty stored block */
+ putc(last, out);
+ if (pos == 1)
+ putc(0, out); /* two more bits in block header */
+ fwrite("\0\0\xff\xff", 1, 4, out);
+ }
+ else {
+ /* even -- append 1, 2, or 3 empty fixed blocks */
+ switch (pos) {
+ case 6:
+ putc(last | 8, out);
+ last = 0;
+ case 4:
+ putc(last | 0x20, out);
+ last = 0;
+ case 2:
+ putc(last | 0x80, out);
+ putc(0, out);
+ }
+ }
+ }
+
+ /* update crc and tot */
+ *crc = crc32_combine(*crc, bget4(in), len);
+ *tot += (unsigned long)len;
+
+ /* clean up */
+ inflateEnd(&strm);
+ free(junk);
+ bclose(in);
+
+ /* write trailer if this is the last gzip file */
+ if (!clr) {
+ put4(*crc, out);
+ put4(*tot, out);
+ }
+}
+
+/* join the gzip files on the command line, write result to stdout */
+int main(int argc, char **argv)
+{
+ unsigned long crc, tot; /* running crc and total uncompressed length */
+
+ /* skip command name */
+ argc--;
+ argv++;
+
+ /* show usage if no arguments */
+ if (argc == 0) {
+ fputs("gzjoin usage: gzjoin f1.gz [f2.gz [f3.gz ...]] > fjoin.gz\n",
+ stderr);
+ return 0;
+ }
+
+ /* join gzip files on command line and write to stdout */
+ gzinit(&crc, &tot, stdout);
+ while (argc--)
+ gzcopy(*argv++, argc, &crc, &tot, stdout);
+
+ /* done */
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.c
new file mode 100644
index 000000000..b8c29274e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.c
@@ -0,0 +1,1059 @@
+/*
+ * gzlog.c
+ * Copyright (C) 2004, 2008, 2012, 2016 Mark Adler, all rights reserved
+ * For conditions of distribution and use, see copyright notice in gzlog.h
+ * version 2.2, 14 Aug 2012
+ */
+
+/*
+ gzlog provides a mechanism for frequently appending short strings to a gzip
+ file that is efficient both in execution time and compression ratio. The
+ strategy is to write the short strings in an uncompressed form to the end of
+ the gzip file, only compressing when the amount of uncompressed data has
+ reached a given threshold.
+
+ gzlog also provides protection against interruptions in the process due to
+ system crashes. The status of the operation is recorded in an extra field
+ in the gzip file, and is only updated once the gzip file is brought to a
+ valid state. The last data to be appended or compressed is saved in an
+ auxiliary file, so that if the operation is interrupted, it can be completed
+ the next time an append operation is attempted.
+
+ gzlog maintains another auxiliary file with the last 32K of data from the
+ compressed portion, which is preloaded for the compression of the subsequent
+ data. This minimizes the impact to the compression ratio of appending.
+ */
+
+/*
+ Operations Concept:
+
+ Files (log name "foo"):
+ foo.gz -- gzip file with the complete log
+ foo.add -- last message to append or last data to compress
+ foo.dict -- dictionary of the last 32K of data for next compression
+ foo.temp -- temporary dictionary file for compression after this one
+ foo.lock -- lock file for reading and writing the other files
+ foo.repairs -- log file for log file recovery operations (not compressed)
+
+ gzip file structure:
+ - fixed-length (no file name) header with extra field (see below)
+ - compressed data ending initially with empty stored block
+ - uncompressed data filling out originally empty stored block and
+ subsequent stored blocks as needed (16K max each)
+ - gzip trailer
+ - no junk at end (no other gzip streams)
+
+ When appending data, the information in the first three items above plus the
+ foo.add file are sufficient to recover an interrupted append operation. The
+ extra field has the necessary information to restore the start of the last
+ stored block and determine where to append the data in the foo.add file, as
+ well as the crc and length of the gzip data before the append operation.
+
+ The foo.add file is created before the gzip file is marked for append, and
+ deleted after the gzip file is marked as complete. So if the append
+ operation is interrupted, the data to add will still be there. If due to
+ some external force, the foo.add file gets deleted between when the append
+ operation was interrupted and when recovery is attempted, the gzip file will
+ still be restored, but without the appended data.
+
+ When compressing data, the information in the first two items above plus the
+ foo.add file are sufficient to recover an interrupted compress operation.
+ The extra field has the necessary information to find the end of the
+ compressed data, and contains both the crc and length of just the compressed
+ data and of the complete set of data including the contents of the foo.add
+ file.
+
+ Again, the foo.add file is maintained during the compress operation in case
+ of an interruption. If in the unlikely event the foo.add file with the data
+ to be compressed is missing due to some external force, a gzip file with
+ just the previous compressed data will be reconstructed. In this case, all
+ of the data that was to be compressed is lost (approximately one megabyte).
+ This will not occur if all that happened was an interruption of the compress
+ operation.
+
+ The third state that is marked is the replacement of the old dictionary with
+ the new dictionary after a compress operation. Once compression is
+ complete, the gzip file is marked as being in the replace state. This
+ completes the gzip file, so an interrupt after being so marked does not
+ result in recompression. Then the dictionary file is replaced, and the gzip
+ file is marked as completed. This state prevents the possibility of
+ restarting compression with the wrong dictionary file.
+
+ All three operations are wrapped by a lock/unlock procedure. In order to
+ gain exclusive access to the log files, first a foo.lock file must be
+ exclusively created. When all operations are complete, the lock is
+ released by deleting the foo.lock file. If when attempting to create the
+ lock file, it already exists and the modify time of the lock file is more
+ than five minutes old (set by the PATIENCE define below), then the old
+ lock file is considered stale and deleted, and the exclusive creation of
+ the lock file is retried. To assure that there are no false assessments
+ of the staleness of the lock file, the operations periodically touch the
+ lock file to update the modified date.
+
+ Following is the definition of the extra field with all of the information
+ required to enable the above append and compress operations and their
+ recovery if interrupted. Multi-byte values are stored little endian
+ (consistent with the gzip format). File pointers are eight bytes long.
+ The crc's and lengths for the gzip trailer are four bytes long. (Note that
+ the length at the end of a gzip file is used for error checking only, and
+ for large files is actually the length modulo 2^32.) The stored block
+ length is two bytes long. The gzip extra field two-byte identification is
+ "ap" for append. It is assumed that writing the extra field to the file is
+ an "atomic" operation. That is, either all of the extra field is written
+ to the file, or none of it is, if the operation is interrupted right at the
+ point of updating the extra field. This is a reasonable assumption, since
+ the extra field is within the first 52 bytes of the file, which is smaller
+ than any expected block size for a mass storage device (usually 512 bytes or
+ larger).
+
+ Extra field (35 bytes):
+ - Pointer to first stored block length -- this points to the two-byte length
+ of the first stored block, which is followed by the two-byte, one's
+ complement of that length. The stored block length is preceded by the
+ three-bit header of the stored block, which is the actual start of the
+ stored block in the deflate format. See the bit offset field below.
+ - Pointer to the last stored block length. This is the same as above, but
+ for the last stored block of the uncompressed data in the gzip file.
+ Initially this is the same as the first stored block length pointer.
+ When the stored block gets to 16K (see the MAX_STORE define), then a new
+ stored block as added, at which point the last stored block length pointer
+ is different from the first stored block length pointer. When they are
+ different, the first bit of the last stored block header is eight bits, or
+ one byte back from the block length.
+ - Compressed data crc and length. This is the crc and length of the data
+ that is in the compressed portion of the deflate stream. These are used
+ only in the event that the foo.add file containing the data to compress is
+ lost after a compress operation is interrupted.
+ - Total data crc and length. This is the crc and length of all of the data
+ stored in the gzip file, compressed and uncompressed. It is used to
+ reconstruct the gzip trailer when compressing, as well as when recovering
+ interrupted operations.
+ - Final stored block length. This is used to quickly find where to append,
+ and allows the restoration of the original final stored block state when
+ an append operation is interrupted.
+ - First stored block start as the number of bits back from the final stored
+ block first length byte. This value is in the range of 3..10, and is
+ stored as the low three bits of the final byte of the extra field after
+ subtracting three (0..7). This allows the last-block bit of the stored
+ block header to be updated when a new stored block is added, for the case
+ when the first stored block and the last stored block are the same. (When
+ they are different, the numbers of bits back is known to be eight.) This
+ also allows for new compressed data to be appended to the old compressed
+ data in the compress operation, overwriting the previous first stored
+ block, or for the compressed data to be terminated and a valid gzip file
+ reconstructed on the off chance that a compression operation was
+ interrupted and the data to compress in the foo.add file was deleted.
+ - The operation in process. This is the next two bits in the last byte (the
+ bits under the mask 0x18). The are interpreted as 0: nothing in process,
+ 1: append in process, 2: compress in process, 3: replace in process.
+ - The top three bits of the last byte in the extra field are reserved and
+ are currently set to zero.
+
+ Main procedure:
+ - Exclusively create the foo.lock file using the O_CREAT and O_EXCL modes of
+ the system open() call. If the modify time of an existing lock file is
+ more than PATIENCE seconds old, then the lock file is deleted and the
+ exclusive create is retried.
+ - Load the extra field from the foo.gz file, and see if an operation was in
+ progress but not completed. If so, apply the recovery procedure below.
+ - Perform the append procedure with the provided data.
+ - If the uncompressed data in the foo.gz file is 1MB or more, apply the
+ compress procedure.
+ - Delete the foo.lock file.
+
+ Append procedure:
+ - Put what to append in the foo.add file so that the operation can be
+ restarted if this procedure is interrupted.
+ - Mark the foo.gz extra field with the append operation in progress.
+ + Restore the original last-block bit and stored block length of the last
+ stored block from the information in the extra field, in case a previous
+ append operation was interrupted.
+ - Append the provided data to the last stored block, creating new stored
+ blocks as needed and updating the stored blocks last-block bits and
+ lengths.
+ - Update the crc and length with the new data, and write the gzip trailer.
+ - Write over the extra field (with a single write operation) with the new
+ pointers, lengths, and crc's, and mark the gzip file as not in process.
+ Though there is still a foo.add file, it will be ignored since nothing
+ is in process. If a foo.add file is leftover from a previously
+ completed operation, it is truncated when writing new data to it.
+ - Delete the foo.add file.
+
+ Compress and replace procedures:
+ - Read all of the uncompressed data in the stored blocks in foo.gz and write
+ it to foo.add. Also write foo.temp with the last 32K of that data to
+ provide a dictionary for the next invocation of this procedure.
+ - Rewrite the extra field marking foo.gz with a compression in process.
+ * If there is no data provided to compress (due to a missing foo.add file
+ when recovering), reconstruct and truncate the foo.gz file to contain
+ only the previous compressed data and proceed to the step after the next
+ one. Otherwise ...
+ - Compress the data with the dictionary in foo.dict, and write to the
+ foo.gz file starting at the bit immediately following the last previously
+ compressed block. If there is no foo.dict, proceed anyway with the
+ compression at slightly reduced efficiency. (For the foo.dict file to be
+ missing requires some external failure beyond simply the interruption of
+ a compress operation.) During this process, the foo.lock file is
+ periodically touched to assure that that file is not considered stale by
+ another process before we're done. The deflation is terminated with a
+ non-last empty static block (10 bits long), that is then located and
+ written over by a last-bit-set empty stored block.
+ - Append the crc and length of the data in the gzip file (previously
+ calculated during the append operations).
+ - Write over the extra field with the updated stored block offsets, bits
+ back, crc's, and lengths, and mark foo.gz as in process for a replacement
+ of the dictionary.
+ @ Delete the foo.add file.
+ - Replace foo.dict with foo.temp.
+ - Write over the extra field, marking foo.gz as complete.
+
+ Recovery procedure:
+ - If not a replace recovery, read in the foo.add file, and provide that data
+ to the appropriate recovery below. If there is no foo.add file, provide
+ a zero data length to the recovery. In that case, the append recovery
+ restores the foo.gz to the previous compressed + uncompressed data state.
+ For the the compress recovery, a missing foo.add file results in foo.gz
+ being restored to the previous compressed-only data state.
+ - Append recovery:
+ - Pick up append at + step above
+ - Compress recovery:
+ - Pick up compress at * step above
+ - Replace recovery:
+ - Pick up compress at @ step above
+ - Log the repair with a date stamp in foo.repairs
+ */
+
+#include <sys/types.h>
+#include <stdio.h> /* rename, fopen, fprintf, fclose */
+#include <stdlib.h> /* malloc, free */
+#include <string.h> /* strlen, strrchr, strcpy, strncpy, strcmp */
+#include <fcntl.h> /* open */
+#include <unistd.h> /* lseek, read, write, close, unlink, sleep, */
+ /* ftruncate, fsync */
+#include <errno.h> /* errno */
+#include <time.h> /* time, ctime */
+#include <sys/stat.h> /* stat */
+#include <sys/time.h> /* utimes */
+#include "zlib.h" /* crc32 */
+
+#include "gzlog.h" /* header for external access */
+
+#define local static
+typedef unsigned int uint;
+typedef unsigned long ulong;
+
+/* Macro for debugging to deterministically force recovery operations */
+#ifdef GZLOG_DEBUG
+ #include <setjmp.h> /* longjmp */
+ jmp_buf gzlog_jump; /* where to go back to */
+ int gzlog_bail = 0; /* which point to bail at (1..8) */
+ int gzlog_count = -1; /* number of times through to wait */
+# define BAIL(n) do { if (n == gzlog_bail && gzlog_count-- == 0) \
+ longjmp(gzlog_jump, gzlog_bail); } while (0)
+#else
+# define BAIL(n)
+#endif
+
+/* how old the lock file can be in seconds before considering it stale */
+#define PATIENCE 300
+
+/* maximum stored block size in Kbytes -- must be in 1..63 */
+#define MAX_STORE 16
+
+/* number of stored Kbytes to trigger compression (must be >= 32 to allow
+ dictionary construction, and <= 204 * MAX_STORE, in order for >> 10 to
+ discard the stored block headers contribution of five bytes each) */
+#define TRIGGER 1024
+
+/* size of a deflate dictionary (this cannot be changed) */
+#define DICT 32768U
+
+/* values for the operation (2 bits) */
+#define NO_OP 0
+#define APPEND_OP 1
+#define COMPRESS_OP 2
+#define REPLACE_OP 3
+
+/* macros to extract little-endian integers from an unsigned byte buffer */
+#define PULL2(p) ((p)[0]+((uint)((p)[1])<<8))
+#define PULL4(p) (PULL2(p)+((ulong)PULL2(p+2)<<16))
+#define PULL8(p) (PULL4(p)+((off_t)PULL4(p+4)<<32))
+
+/* macros to store integers into a byte buffer in little-endian order */
+#define PUT2(p,a) do {(p)[0]=a;(p)[1]=(a)>>8;} while(0)
+#define PUT4(p,a) do {PUT2(p,a);PUT2(p+2,a>>16);} while(0)
+#define PUT8(p,a) do {PUT4(p,a);PUT4(p+4,a>>32);} while(0)
+
+/* internal structure for log information */
+#define LOGID "\106\035\172" /* should be three non-zero characters */
+struct log {
+ char id[4]; /* contains LOGID to detect inadvertent overwrites */
+ int fd; /* file descriptor for .gz file, opened read/write */
+ char *path; /* allocated path, e.g. "/var/log/foo" or "foo" */
+ char *end; /* end of path, for appending suffices such as ".gz" */
+ off_t first; /* offset of first stored block first length byte */
+ int back; /* location of first block id in bits back from first */
+ uint stored; /* bytes currently in last stored block */
+ off_t last; /* offset of last stored block first length byte */
+ ulong ccrc; /* crc of compressed data */
+ ulong clen; /* length (modulo 2^32) of compressed data */
+ ulong tcrc; /* crc of total data */
+ ulong tlen; /* length (modulo 2^32) of total data */
+ time_t lock; /* last modify time of our lock file */
+};
+
+/* gzip header for gzlog */
+local unsigned char log_gzhead[] = {
+ 0x1f, 0x8b, /* magic gzip id */
+ 8, /* compression method is deflate */
+ 4, /* there is an extra field (no file name) */
+ 0, 0, 0, 0, /* no modification time provided */
+ 0, 0xff, /* no extra flags, no OS specified */
+ 39, 0, 'a', 'p', 35, 0 /* extra field with "ap" subfield */
+ /* 35 is EXTRA, 39 is EXTRA + 4 */
+};
+
+#define HEAD sizeof(log_gzhead) /* should be 16 */
+
+/* initial gzip extra field content (52 == HEAD + EXTRA + 1) */
+local unsigned char log_gzext[] = {
+ 52, 0, 0, 0, 0, 0, 0, 0, /* offset of first stored block length */
+ 52, 0, 0, 0, 0, 0, 0, 0, /* offset of last stored block length */
+ 0, 0, 0, 0, 0, 0, 0, 0, /* compressed data crc and length */
+ 0, 0, 0, 0, 0, 0, 0, 0, /* total data crc and length */
+ 0, 0, /* final stored block data length */
+ 5 /* op is NO_OP, last bit 8 bits back */
+};
+
+#define EXTRA sizeof(log_gzext) /* should be 35 */
+
+/* initial gzip data and trailer */
+local unsigned char log_gzbody[] = {
+ 1, 0, 0, 0xff, 0xff, /* empty stored block (last) */
+ 0, 0, 0, 0, /* crc */
+ 0, 0, 0, 0 /* uncompressed length */
+};
+
+#define BODY sizeof(log_gzbody)
+
+/* Exclusively create foo.lock in order to negotiate exclusive access to the
+ foo.* files. If the modify time of an existing lock file is greater than
+ PATIENCE seconds in the past, then consider the lock file to have been
+ abandoned, delete it, and try the exclusive create again. Save the lock
+ file modify time for verification of ownership. Return 0 on success, or -1
+ on failure, usually due to an access restriction or invalid path. Note that
+ if stat() or unlink() fails, it may be due to another process noticing the
+ abandoned lock file a smidge sooner and deleting it, so those are not
+ flagged as an error. */
+local int log_lock(struct log *log)
+{
+ int fd;
+ struct stat st;
+
+ strcpy(log->end, ".lock");
+ while ((fd = open(log->path, O_CREAT | O_EXCL, 0644)) < 0) {
+ if (errno != EEXIST)
+ return -1;
+ if (stat(log->path, &st) == 0 && time(NULL) - st.st_mtime > PATIENCE) {
+ unlink(log->path);
+ continue;
+ }
+ sleep(2); /* relinquish the CPU for two seconds while waiting */
+ }
+ close(fd);
+ if (stat(log->path, &st) == 0)
+ log->lock = st.st_mtime;
+ return 0;
+}
+
+/* Update the modify time of the lock file to now, in order to prevent another
+ task from thinking that the lock is stale. Save the lock file modify time
+ for verification of ownership. */
+local void log_touch(struct log *log)
+{
+ struct stat st;
+
+ strcpy(log->end, ".lock");
+ utimes(log->path, NULL);
+ if (stat(log->path, &st) == 0)
+ log->lock = st.st_mtime;
+}
+
+/* Check the log file modify time against what is expected. Return true if
+ this is not our lock. If it is our lock, touch it to keep it. */
+local int log_check(struct log *log)
+{
+ struct stat st;
+
+ strcpy(log->end, ".lock");
+ if (stat(log->path, &st) || st.st_mtime != log->lock)
+ return 1;
+ log_touch(log);
+ return 0;
+}
+
+/* Unlock a previously acquired lock, but only if it's ours. */
+local void log_unlock(struct log *log)
+{
+ if (log_check(log))
+ return;
+ strcpy(log->end, ".lock");
+ unlink(log->path);
+ log->lock = 0;
+}
+
+/* Check the gzip header and read in the extra field, filling in the values in
+ the log structure. Return op on success or -1 if the gzip header was not as
+ expected. op is the current operation in progress last written to the extra
+ field. This assumes that the gzip file has already been opened, with the
+ file descriptor log->fd. */
+local int log_head(struct log *log)
+{
+ int op;
+ unsigned char buf[HEAD + EXTRA];
+
+ if (lseek(log->fd, 0, SEEK_SET) < 0 ||
+ read(log->fd, buf, HEAD + EXTRA) != HEAD + EXTRA ||
+ memcmp(buf, log_gzhead, HEAD)) {
+ return -1;
+ }
+ log->first = PULL8(buf + HEAD);
+ log->last = PULL8(buf + HEAD + 8);
+ log->ccrc = PULL4(buf + HEAD + 16);
+ log->clen = PULL4(buf + HEAD + 20);
+ log->tcrc = PULL4(buf + HEAD + 24);
+ log->tlen = PULL4(buf + HEAD + 28);
+ log->stored = PULL2(buf + HEAD + 32);
+ log->back = 3 + (buf[HEAD + 34] & 7);
+ op = (buf[HEAD + 34] >> 3) & 3;
+ return op;
+}
+
+/* Write over the extra field contents, marking the operation as op. Use fsync
+ to assure that the device is written to, and in the requested order. This
+ operation, and only this operation, is assumed to be atomic in order to
+ assure that the log is recoverable in the event of an interruption at any
+ point in the process. Return -1 if the write to foo.gz failed. */
+local int log_mark(struct log *log, int op)
+{
+ int ret;
+ unsigned char ext[EXTRA];
+
+ PUT8(ext, log->first);
+ PUT8(ext + 8, log->last);
+ PUT4(ext + 16, log->ccrc);
+ PUT4(ext + 20, log->clen);
+ PUT4(ext + 24, log->tcrc);
+ PUT4(ext + 28, log->tlen);
+ PUT2(ext + 32, log->stored);
+ ext[34] = log->back - 3 + (op << 3);
+ fsync(log->fd);
+ ret = lseek(log->fd, HEAD, SEEK_SET) < 0 ||
+ write(log->fd, ext, EXTRA) != EXTRA ? -1 : 0;
+ fsync(log->fd);
+ return ret;
+}
+
+/* Rewrite the last block header bits and subsequent zero bits to get to a byte
+ boundary, setting the last block bit if last is true, and then write the
+ remainder of the stored block header (length and one's complement). Leave
+ the file pointer after the end of the last stored block data. Return -1 if
+ there is a read or write failure on the foo.gz file */
+local int log_last(struct log *log, int last)
+{
+ int back, len, mask;
+ unsigned char buf[6];
+
+ /* determine the locations of the bytes and bits to modify */
+ back = log->last == log->first ? log->back : 8;
+ len = back > 8 ? 2 : 1; /* bytes back from log->last */
+ mask = 0x80 >> ((back - 1) & 7); /* mask for block last-bit */
+
+ /* get the byte to modify (one or two back) into buf[0] -- don't need to
+ read the byte if the last-bit is eight bits back, since in that case
+ the entire byte will be modified */
+ buf[0] = 0;
+ if (back != 8 && (lseek(log->fd, log->last - len, SEEK_SET) < 0 ||
+ read(log->fd, buf, 1) != 1))
+ return -1;
+
+ /* change the last-bit of the last stored block as requested -- note
+ that all bits above the last-bit are set to zero, per the type bits
+ of a stored block being 00 and per the convention that the bits to
+ bring the stream to a byte boundary are also zeros */
+ buf[1] = 0;
+ buf[2 - len] = (*buf & (mask - 1)) + (last ? mask : 0);
+
+ /* write the modified stored block header and lengths, move the file
+ pointer to after the last stored block data */
+ PUT2(buf + 2, log->stored);
+ PUT2(buf + 4, log->stored ^ 0xffff);
+ return lseek(log->fd, log->last - len, SEEK_SET) < 0 ||
+ write(log->fd, buf + 2 - len, len + 4) != len + 4 ||
+ lseek(log->fd, log->stored, SEEK_CUR) < 0 ? -1 : 0;
+}
+
+/* Append len bytes from data to the locked and open log file. len may be zero
+ if recovering and no .add file was found. In that case, the previous state
+ of the foo.gz file is restored. The data is appended uncompressed in
+ deflate stored blocks. Return -1 if there was an error reading or writing
+ the foo.gz file. */
+local int log_append(struct log *log, unsigned char *data, size_t len)
+{
+ uint put;
+ off_t end;
+ unsigned char buf[8];
+
+ /* set the last block last-bit and length, in case recovering an
+ interrupted append, then position the file pointer to append to the
+ block */
+ if (log_last(log, 1))
+ return -1;
+
+ /* append, adding stored blocks and updating the offset of the last stored
+ block as needed, and update the total crc and length */
+ while (len) {
+ /* append as much as we can to the last block */
+ put = (MAX_STORE << 10) - log->stored;
+ if (put > len)
+ put = (uint)len;
+ if (put) {
+ if (write(log->fd, data, put) != put)
+ return -1;
+ BAIL(1);
+ log->tcrc = crc32(log->tcrc, data, put);
+ log->tlen += put;
+ log->stored += put;
+ data += put;
+ len -= put;
+ }
+
+ /* if we need to, add a new empty stored block */
+ if (len) {
+ /* mark current block as not last */
+ if (log_last(log, 0))
+ return -1;
+
+ /* point to new, empty stored block */
+ log->last += 4 + log->stored + 1;
+ log->stored = 0;
+ }
+
+ /* mark last block as last, update its length */
+ if (log_last(log, 1))
+ return -1;
+ BAIL(2);
+ }
+
+ /* write the new crc and length trailer, and truncate just in case (could
+ be recovering from partial append with a missing foo.add file) */
+ PUT4(buf, log->tcrc);
+ PUT4(buf + 4, log->tlen);
+ if (write(log->fd, buf, 8) != 8 ||
+ (end = lseek(log->fd, 0, SEEK_CUR)) < 0 || ftruncate(log->fd, end))
+ return -1;
+
+ /* write the extra field, marking the log file as done, delete .add file */
+ if (log_mark(log, NO_OP))
+ return -1;
+ strcpy(log->end, ".add");
+ unlink(log->path); /* ignore error, since may not exist */
+ return 0;
+}
+
+/* Replace the foo.dict file with the foo.temp file. Also delete the foo.add
+ file, since the compress operation may have been interrupted before that was
+ done. Returns 1 if memory could not be allocated, or -1 if reading or
+ writing foo.gz fails, or if the rename fails for some reason other than
+ foo.temp not existing. foo.temp not existing is a permitted error, since
+ the replace operation may have been interrupted after the rename is done,
+ but before foo.gz is marked as complete. */
+local int log_replace(struct log *log)
+{
+ int ret;
+ char *dest;
+
+ /* delete foo.add file */
+ strcpy(log->end, ".add");
+ unlink(log->path); /* ignore error, since may not exist */
+ BAIL(3);
+
+ /* rename foo.name to foo.dict, replacing foo.dict if it exists */
+ strcpy(log->end, ".dict");
+ dest = malloc(strlen(log->path) + 1);
+ if (dest == NULL)
+ return -2;
+ strcpy(dest, log->path);
+ strcpy(log->end, ".temp");
+ ret = rename(log->path, dest);
+ free(dest);
+ if (ret && errno != ENOENT)
+ return -1;
+ BAIL(4);
+
+ /* mark the foo.gz file as done */
+ return log_mark(log, NO_OP);
+}
+
+/* Compress the len bytes at data and append the compressed data to the
+ foo.gz deflate data immediately after the previous compressed data. This
+ overwrites the previous uncompressed data, which was stored in foo.add
+ and is the data provided in data[0..len-1]. If this operation is
+ interrupted, it picks up at the start of this routine, with the foo.add
+ file read in again. If there is no data to compress (len == 0), then we
+ simply terminate the foo.gz file after the previously compressed data,
+ appending a final empty stored block and the gzip trailer. Return -1 if
+ reading or writing the log.gz file failed, or -2 if there was a memory
+ allocation failure. */
+local int log_compress(struct log *log, unsigned char *data, size_t len)
+{
+ int fd;
+ uint got, max;
+ ssize_t dict;
+ off_t end;
+ z_stream strm;
+ unsigned char buf[DICT];
+
+ /* compress and append compressed data */
+ if (len) {
+ /* set up for deflate, allocating memory */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ if (deflateInit2(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED, -15, 8,
+ Z_DEFAULT_STRATEGY) != Z_OK)
+ return -2;
+
+ /* read in dictionary (last 32K of data that was compressed) */
+ strcpy(log->end, ".dict");
+ fd = open(log->path, O_RDONLY, 0);
+ if (fd >= 0) {
+ dict = read(fd, buf, DICT);
+ close(fd);
+ if (dict < 0) {
+ deflateEnd(&strm);
+ return -1;
+ }
+ if (dict)
+ deflateSetDictionary(&strm, buf, (uint)dict);
+ }
+ log_touch(log);
+
+ /* prime deflate with last bits of previous block, position write
+ pointer to write those bits and overwrite what follows */
+ if (lseek(log->fd, log->first - (log->back > 8 ? 2 : 1),
+ SEEK_SET) < 0 ||
+ read(log->fd, buf, 1) != 1 || lseek(log->fd, -1, SEEK_CUR) < 0) {
+ deflateEnd(&strm);
+ return -1;
+ }
+ deflatePrime(&strm, (8 - log->back) & 7, *buf);
+
+ /* compress, finishing with a partial non-last empty static block */
+ strm.next_in = data;
+ max = (((uint)0 - 1) >> 1) + 1; /* in case int smaller than size_t */
+ do {
+ strm.avail_in = len > max ? max : (uint)len;
+ len -= strm.avail_in;
+ do {
+ strm.avail_out = DICT;
+ strm.next_out = buf;
+ deflate(&strm, len ? Z_NO_FLUSH : Z_PARTIAL_FLUSH);
+ got = DICT - strm.avail_out;
+ if (got && write(log->fd, buf, got) != got) {
+ deflateEnd(&strm);
+ return -1;
+ }
+ log_touch(log);
+ } while (strm.avail_out == 0);
+ } while (len);
+ deflateEnd(&strm);
+ BAIL(5);
+
+ /* find start of empty static block -- scanning backwards the first one
+ bit is the second bit of the block, if the last byte is zero, then
+ we know the byte before that has a one in the top bit, since an
+ empty static block is ten bits long */
+ if ((log->first = lseek(log->fd, -1, SEEK_CUR)) < 0 ||
+ read(log->fd, buf, 1) != 1)
+ return -1;
+ log->first++;
+ if (*buf) {
+ log->back = 1;
+ while ((*buf & ((uint)1 << (8 - log->back++))) == 0)
+ ; /* guaranteed to terminate, since *buf != 0 */
+ }
+ else
+ log->back = 10;
+
+ /* update compressed crc and length */
+ log->ccrc = log->tcrc;
+ log->clen = log->tlen;
+ }
+ else {
+ /* no data to compress -- fix up existing gzip stream */
+ log->tcrc = log->ccrc;
+ log->tlen = log->clen;
+ }
+
+ /* complete and truncate gzip stream */
+ log->last = log->first;
+ log->stored = 0;
+ PUT4(buf, log->tcrc);
+ PUT4(buf + 4, log->tlen);
+ if (log_last(log, 1) || write(log->fd, buf, 8) != 8 ||
+ (end = lseek(log->fd, 0, SEEK_CUR)) < 0 || ftruncate(log->fd, end))
+ return -1;
+ BAIL(6);
+
+ /* mark as being in the replace operation */
+ if (log_mark(log, REPLACE_OP))
+ return -1;
+
+ /* execute the replace operation and mark the file as done */
+ return log_replace(log);
+}
+
+/* log a repair record to the .repairs file */
+local void log_log(struct log *log, int op, char *record)
+{
+ time_t now;
+ FILE *rec;
+
+ now = time(NULL);
+ strcpy(log->end, ".repairs");
+ rec = fopen(log->path, "a");
+ if (rec == NULL)
+ return;
+ fprintf(rec, "%.24s %s recovery: %s\n", ctime(&now), op == APPEND_OP ?
+ "append" : (op == COMPRESS_OP ? "compress" : "replace"), record);
+ fclose(rec);
+ return;
+}
+
+/* Recover the interrupted operation op. First read foo.add for recovering an
+ append or compress operation. Return -1 if there was an error reading or
+ writing foo.gz or reading an existing foo.add, or -2 if there was a memory
+ allocation failure. */
+local int log_recover(struct log *log, int op)
+{
+ int fd, ret = 0;
+ unsigned char *data = NULL;
+ size_t len = 0;
+ struct stat st;
+
+ /* log recovery */
+ log_log(log, op, "start");
+
+ /* load foo.add file if expected and present */
+ if (op == APPEND_OP || op == COMPRESS_OP) {
+ strcpy(log->end, ".add");
+ if (stat(log->path, &st) == 0 && st.st_size) {
+ len = (size_t)(st.st_size);
+ if ((off_t)len != st.st_size ||
+ (data = malloc(st.st_size)) == NULL) {
+ log_log(log, op, "allocation failure");
+ return -2;
+ }
+ if ((fd = open(log->path, O_RDONLY, 0)) < 0) {
+ log_log(log, op, ".add file read failure");
+ return -1;
+ }
+ ret = (size_t)read(fd, data, len) != len;
+ close(fd);
+ if (ret) {
+ log_log(log, op, ".add file read failure");
+ return -1;
+ }
+ log_log(log, op, "loaded .add file");
+ }
+ else
+ log_log(log, op, "missing .add file!");
+ }
+
+ /* recover the interrupted operation */
+ switch (op) {
+ case APPEND_OP:
+ ret = log_append(log, data, len);
+ break;
+ case COMPRESS_OP:
+ ret = log_compress(log, data, len);
+ break;
+ case REPLACE_OP:
+ ret = log_replace(log);
+ }
+
+ /* log status */
+ log_log(log, op, ret ? "failure" : "complete");
+
+ /* clean up */
+ if (data != NULL)
+ free(data);
+ return ret;
+}
+
+/* Close the foo.gz file (if open) and release the lock. */
+local void log_close(struct log *log)
+{
+ if (log->fd >= 0)
+ close(log->fd);
+ log->fd = -1;
+ log_unlock(log);
+}
+
+/* Open foo.gz, verify the header, and load the extra field contents, after
+ first creating the foo.lock file to gain exclusive access to the foo.*
+ files. If foo.gz does not exist or is empty, then write the initial header,
+ extra, and body content of an empty foo.gz log file. If there is an error
+ creating the lock file due to access restrictions, or an error reading or
+ writing the foo.gz file, or if the foo.gz file is not a proper log file for
+ this object (e.g. not a gzip file or does not contain the expected extra
+ field), then return true. If there is an error, the lock is released.
+ Otherwise, the lock is left in place. */
+local int log_open(struct log *log)
+{
+ int op;
+
+ /* release open file resource if left over -- can occur if lock lost
+ between gzlog_open() and gzlog_write() */
+ if (log->fd >= 0)
+ close(log->fd);
+ log->fd = -1;
+
+ /* negotiate exclusive access */
+ if (log_lock(log) < 0)
+ return -1;
+
+ /* open the log file, foo.gz */
+ strcpy(log->end, ".gz");
+ log->fd = open(log->path, O_RDWR | O_CREAT, 0644);
+ if (log->fd < 0) {
+ log_close(log);
+ return -1;
+ }
+
+ /* if new, initialize foo.gz with an empty log, delete old dictionary */
+ if (lseek(log->fd, 0, SEEK_END) == 0) {
+ if (write(log->fd, log_gzhead, HEAD) != HEAD ||
+ write(log->fd, log_gzext, EXTRA) != EXTRA ||
+ write(log->fd, log_gzbody, BODY) != BODY) {
+ log_close(log);
+ return -1;
+ }
+ strcpy(log->end, ".dict");
+ unlink(log->path);
+ }
+
+ /* verify log file and load extra field information */
+ if ((op = log_head(log)) < 0) {
+ log_close(log);
+ return -1;
+ }
+
+ /* check for interrupted process and if so, recover */
+ if (op != NO_OP && log_recover(log, op)) {
+ log_close(log);
+ return -1;
+ }
+
+ /* touch the lock file to prevent another process from grabbing it */
+ log_touch(log);
+ return 0;
+}
+
+/* See gzlog.h for the description of the external methods below */
+gzlog *gzlog_open(char *path)
+{
+ size_t n;
+ struct log *log;
+
+ /* check arguments */
+ if (path == NULL || *path == 0)
+ return NULL;
+
+ /* allocate and initialize log structure */
+ log = malloc(sizeof(struct log));
+ if (log == NULL)
+ return NULL;
+ strcpy(log->id, LOGID);
+ log->fd = -1;
+
+ /* save path and end of path for name construction */
+ n = strlen(path);
+ log->path = malloc(n + 9); /* allow for ".repairs" */
+ if (log->path == NULL) {
+ free(log);
+ return NULL;
+ }
+ strcpy(log->path, path);
+ log->end = log->path + n;
+
+ /* gain exclusive access and verify log file -- may perform a
+ recovery operation if needed */
+ if (log_open(log)) {
+ free(log->path);
+ free(log);
+ return NULL;
+ }
+
+ /* return pointer to log structure */
+ return log;
+}
+
+/* gzlog_compress() return values:
+ 0: all good
+ -1: file i/o error (usually access issue)
+ -2: memory allocation failure
+ -3: invalid log pointer argument */
+int gzlog_compress(gzlog *logd)
+{
+ int fd, ret;
+ uint block;
+ size_t len, next;
+ unsigned char *data, buf[5];
+ struct log *log = logd;
+
+ /* check arguments */
+ if (log == NULL || strcmp(log->id, LOGID))
+ return -3;
+
+ /* see if we lost the lock -- if so get it again and reload the extra
+ field information (it probably changed), recover last operation if
+ necessary */
+ if (log_check(log) && log_open(log))
+ return -1;
+
+ /* create space for uncompressed data */
+ len = ((size_t)(log->last - log->first) & ~(((size_t)1 << 10) - 1)) +
+ log->stored;
+ if ((data = malloc(len)) == NULL)
+ return -2;
+
+ /* do statement here is just a cheap trick for error handling */
+ do {
+ /* read in the uncompressed data */
+ if (lseek(log->fd, log->first - 1, SEEK_SET) < 0)
+ break;
+ next = 0;
+ while (next < len) {
+ if (read(log->fd, buf, 5) != 5)
+ break;
+ block = PULL2(buf + 1);
+ if (next + block > len ||
+ read(log->fd, (char *)data + next, block) != block)
+ break;
+ next += block;
+ }
+ if (lseek(log->fd, 0, SEEK_CUR) != log->last + 4 + log->stored)
+ break;
+ log_touch(log);
+
+ /* write the uncompressed data to the .add file */
+ strcpy(log->end, ".add");
+ fd = open(log->path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd < 0)
+ break;
+ ret = (size_t)write(fd, data, len) != len;
+ if (ret | close(fd))
+ break;
+ log_touch(log);
+
+ /* write the dictionary for the next compress to the .temp file */
+ strcpy(log->end, ".temp");
+ fd = open(log->path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd < 0)
+ break;
+ next = DICT > len ? len : DICT;
+ ret = (size_t)write(fd, (char *)data + len - next, next) != next;
+ if (ret | close(fd))
+ break;
+ log_touch(log);
+
+ /* roll back to compressed data, mark the compress in progress */
+ log->last = log->first;
+ log->stored = 0;
+ if (log_mark(log, COMPRESS_OP))
+ break;
+ BAIL(7);
+
+ /* compress and append the data (clears mark) */
+ ret = log_compress(log, data, len);
+ free(data);
+ return ret;
+ } while (0);
+
+ /* broke out of do above on i/o error */
+ free(data);
+ return -1;
+}
+
+/* gzlog_write() return values:
+ 0: all good
+ -1: file i/o error (usually access issue)
+ -2: memory allocation failure
+ -3: invalid log pointer argument */
+int gzlog_write(gzlog *logd, void *data, size_t len)
+{
+ int fd, ret;
+ struct log *log = logd;
+
+ /* check arguments */
+ if (log == NULL || strcmp(log->id, LOGID))
+ return -3;
+ if (data == NULL || len <= 0)
+ return 0;
+
+ /* see if we lost the lock -- if so get it again and reload the extra
+ field information (it probably changed), recover last operation if
+ necessary */
+ if (log_check(log) && log_open(log))
+ return -1;
+
+ /* create and write .add file */
+ strcpy(log->end, ".add");
+ fd = open(log->path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd < 0)
+ return -1;
+ ret = (size_t)write(fd, data, len) != len;
+ if (ret | close(fd))
+ return -1;
+ log_touch(log);
+
+ /* mark log file with append in progress */
+ if (log_mark(log, APPEND_OP))
+ return -1;
+ BAIL(8);
+
+ /* append data (clears mark) */
+ if (log_append(log, data, len))
+ return -1;
+
+ /* check to see if it's time to compress -- if not, then done */
+ if (((log->last - log->first) >> 10) + (log->stored >> 10) < TRIGGER)
+ return 0;
+
+ /* time to compress */
+ return gzlog_compress(log);
+}
+
+/* gzlog_close() return values:
+ 0: ok
+ -3: invalid log pointer argument */
+int gzlog_close(gzlog *logd)
+{
+ struct log *log = logd;
+
+ /* check arguments */
+ if (log == NULL || strcmp(log->id, LOGID))
+ return -3;
+
+ /* close the log file and release the lock */
+ log_close(log);
+
+ /* free structure and return */
+ if (log->path != NULL)
+ free(log->path);
+ strcpy(log->id, "bad");
+ free(log);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.h
new file mode 100644
index 000000000..86f0cecba
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/gzlog.h
@@ -0,0 +1,91 @@
+/* gzlog.h
+ Copyright (C) 2004, 2008, 2012 Mark Adler, all rights reserved
+ version 2.2, 14 Aug 2012
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Mark Adler madler@alumni.caltech.edu
+ */
+
+/* Version History:
+ 1.0 26 Nov 2004 First version
+ 2.0 25 Apr 2008 Complete redesign for recovery of interrupted operations
+ Interface changed slightly in that now path is a prefix
+ Compression now occurs as needed during gzlog_write()
+ gzlog_write() now always leaves the log file as valid gzip
+ 2.1 8 Jul 2012 Fix argument checks in gzlog_compress() and gzlog_write()
+ 2.2 14 Aug 2012 Clean up signed comparisons
+ */
+
+/*
+ The gzlog object allows writing short messages to a gzipped log file,
+ opening the log file locked for small bursts, and then closing it. The log
+ object works by appending stored (uncompressed) data to the gzip file until
+ 1 MB has been accumulated. At that time, the stored data is compressed, and
+ replaces the uncompressed data in the file. The log file is truncated to
+ its new size at that time. After each write operation, the log file is a
+ valid gzip file that can decompressed to recover what was written.
+
+ The gzlog operations can be interupted at any point due to an application or
+ system crash, and the log file will be recovered the next time the log is
+ opened with gzlog_open().
+ */
+
+#ifndef GZLOG_H
+#define GZLOG_H
+
+/* gzlog object type */
+typedef void gzlog;
+
+/* Open a gzlog object, creating the log file if it does not exist. Return
+ NULL on error. Note that gzlog_open() could take a while to complete if it
+ has to wait to verify that a lock is stale (possibly for five minutes), or
+ if there is significant contention with other instantiations of this object
+ when locking the resource. path is the prefix of the file names created by
+ this object. If path is "foo", then the log file will be "foo.gz", and
+ other auxiliary files will be created and destroyed during the process:
+ "foo.dict" for a compression dictionary, "foo.temp" for a temporary (next)
+ dictionary, "foo.add" for data being added or compressed, "foo.lock" for the
+ lock file, and "foo.repairs" to log recovery operations performed due to
+ interrupted gzlog operations. A gzlog_open() followed by a gzlog_close()
+ will recover a previously interrupted operation, if any. */
+gzlog *gzlog_open(char *path);
+
+/* Write to a gzlog object. Return zero on success, -1 if there is a file i/o
+ error on any of the gzlog files (this should not happen if gzlog_open()
+ succeeded, unless the device has run out of space or leftover auxiliary
+ files have permissions or ownership that prevent their use), -2 if there is
+ a memory allocation failure, or -3 if the log argument is invalid (e.g. if
+ it was not created by gzlog_open()). This function will write data to the
+ file uncompressed, until 1 MB has been accumulated, at which time that data
+ will be compressed. The log file will be a valid gzip file upon successful
+ return. */
+int gzlog_write(gzlog *log, void *data, size_t len);
+
+/* Force compression of any uncompressed data in the log. This should be used
+ sparingly, if at all. The main application would be when a log file will
+ not be appended to again. If this is used to compress frequently while
+ appending, it will both significantly increase the execution time and
+ reduce the compression ratio. The return codes are the same as for
+ gzlog_write(). */
+int gzlog_compress(gzlog *log);
+
+/* Close a gzlog object. Return zero on success, -3 if the log argument is
+ invalid. The log object is freed, and so cannot be referenced again. */
+int gzlog_close(gzlog *log);
+
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zlib_how.html b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zlib_how.html
new file mode 100644
index 000000000..444ff1c9a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zlib_how.html
@@ -0,0 +1,545 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
+ "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>zlib Usage Example</title>
+<!-- Copyright (c) 2004, 2005 Mark Adler. -->
+</head>
+<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#00A000">
+<h2 align="center"> zlib Usage Example </h2>
+We often get questions about how the <tt>deflate()</tt> and <tt>inflate()</tt> functions should be used.
+Users wonder when they should provide more input, when they should use more output,
+what to do with a <tt>Z_BUF_ERROR</tt>, how to make sure the process terminates properly, and
+so on. So for those who have read <tt>zlib.h</tt> (a few times), and
+would like further edification, below is an annotated example in C of simple routines to compress and decompress
+from an input file to an output file using <tt>deflate()</tt> and <tt>inflate()</tt> respectively. The
+annotations are interspersed between lines of the code. So please read between the lines.
+We hope this helps explain some of the intricacies of <em>zlib</em>.
+<p>
+Without further adieu, here is the program <a href="zpipe.c"><tt>zpipe.c</tt></a>:
+<pre><b>
+/* zpipe.c: example of proper use of zlib's inflate() and deflate()
+ Not copyrighted -- provided to the public domain
+ Version 1.4 11 December 2005 Mark Adler */
+
+/* Version history:
+ 1.0 30 Oct 2004 First version
+ 1.1 8 Nov 2004 Add void casting for unused return values
+ Use switch statement for inflate() return values
+ 1.2 9 Nov 2004 Add assertions to document zlib guarantees
+ 1.3 6 Apr 2005 Remove incorrect assertion in inf()
+ 1.4 11 Dec 2005 Add hack to avoid MSDOS end-of-line conversions
+ Avoid some compiler warnings for input and output buffers
+ */
+</b></pre><!-- -->
+We now include the header files for the required definitions. From
+<tt>stdio.h</tt> we use <tt>fopen()</tt>, <tt>fread()</tt>, <tt>fwrite()</tt>,
+<tt>feof()</tt>, <tt>ferror()</tt>, and <tt>fclose()</tt> for file i/o, and
+<tt>fputs()</tt> for error messages. From <tt>string.h</tt> we use
+<tt>strcmp()</tt> for command line argument processing.
+From <tt>assert.h</tt> we use the <tt>assert()</tt> macro.
+From <tt>zlib.h</tt>
+we use the basic compression functions <tt>deflateInit()</tt>,
+<tt>deflate()</tt>, and <tt>deflateEnd()</tt>, and the basic decompression
+functions <tt>inflateInit()</tt>, <tt>inflate()</tt>, and
+<tt>inflateEnd()</tt>.
+<pre><b>
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;assert.h&gt;
+#include "zlib.h"
+</b></pre><!-- -->
+This is an ugly hack required to avoid corruption of the input and output data on
+Windows/MS-DOS systems. Without this, those systems would assume that the input and output
+files are text, and try to convert the end-of-line characters from one standard to
+another. That would corrupt binary data, and in particular would render the compressed data unusable.
+This sets the input and output to binary which suppresses the end-of-line conversions.
+<tt>SET_BINARY_MODE()</tt> will be used later on <tt>stdin</tt> and <tt>stdout</tt>, at the beginning of <tt>main()</tt>.
+<pre><b>
+#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
+# include &lt;fcntl.h&gt;
+# include &lt;io.h&gt;
+# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+</b></pre><!-- -->
+<tt>CHUNK</tt> is simply the buffer size for feeding data to and pulling data
+from the <em>zlib</em> routines. Larger buffer sizes would be more efficient,
+especially for <tt>inflate()</tt>. If the memory is available, buffers sizes
+on the order of 128K or 256K bytes should be used.
+<pre><b>
+#define CHUNK 16384
+</b></pre><!-- -->
+The <tt>def()</tt> routine compresses data from an input file to an output file. The output data
+will be in the <em>zlib</em> format, which is different from the <em>gzip</em> or <em>zip</em>
+formats. The <em>zlib</em> format has a very small header of only two bytes to identify it as
+a <em>zlib</em> stream and to provide decoding information, and a four-byte trailer with a fast
+check value to verify the integrity of the uncompressed data after decoding.
+<pre><b>
+/* Compress from file source to file dest until EOF on source.
+ def() returns Z_OK on success, Z_MEM_ERROR if memory could not be
+ allocated for processing, Z_STREAM_ERROR if an invalid compression
+ level is supplied, Z_VERSION_ERROR if the version of zlib.h and the
+ version of the library linked do not match, or Z_ERRNO if there is
+ an error reading or writing the files. */
+int def(FILE *source, FILE *dest, int level)
+{
+</b></pre>
+Here are the local variables for <tt>def()</tt>. <tt>ret</tt> will be used for <em>zlib</em>
+return codes. <tt>flush</tt> will keep track of the current flushing state for <tt>deflate()</tt>,
+which is either no flushing, or flush to completion after the end of the input file is reached.
+<tt>have</tt> is the amount of data returned from <tt>deflate()</tt>. The <tt>strm</tt> structure
+is used to pass information to and from the <em>zlib</em> routines, and to maintain the
+<tt>deflate()</tt> state. <tt>in</tt> and <tt>out</tt> are the input and output buffers for
+<tt>deflate()</tt>.
+<pre><b>
+ int ret, flush;
+ unsigned have;
+ z_stream strm;
+ unsigned char in[CHUNK];
+ unsigned char out[CHUNK];
+</b></pre><!-- -->
+The first thing we do is to initialize the <em>zlib</em> state for compression using
+<tt>deflateInit()</tt>. This must be done before the first use of <tt>deflate()</tt>.
+The <tt>zalloc</tt>, <tt>zfree</tt>, and <tt>opaque</tt> fields in the <tt>strm</tt>
+structure must be initialized before calling <tt>deflateInit()</tt>. Here they are
+set to the <em>zlib</em> constant <tt>Z_NULL</tt> to request that <em>zlib</em> use
+the default memory allocation routines. An application may also choose to provide
+custom memory allocation routines here. <tt>deflateInit()</tt> will allocate on the
+order of 256K bytes for the internal state.
+(See <a href="zlib_tech.html"><em>zlib Technical Details</em></a>.)
+<p>
+<tt>deflateInit()</tt> is called with a pointer to the structure to be initialized and
+the compression level, which is an integer in the range of -1 to 9. Lower compression
+levels result in faster execution, but less compression. Higher levels result in
+greater compression, but slower execution. The <em>zlib</em> constant Z_DEFAULT_COMPRESSION,
+equal to -1,
+provides a good compromise between compression and speed and is equivalent to level 6.
+Level 0 actually does no compression at all, and in fact expands the data slightly to produce
+the <em>zlib</em> format (it is not a byte-for-byte copy of the input).
+More advanced applications of <em>zlib</em>
+may use <tt>deflateInit2()</tt> here instead. Such an application may want to reduce how
+much memory will be used, at some price in compression. Or it may need to request a
+<em>gzip</em> header and trailer instead of a <em>zlib</em> header and trailer, or raw
+encoding with no header or trailer at all.
+<p>
+We must check the return value of <tt>deflateInit()</tt> against the <em>zlib</em> constant
+<tt>Z_OK</tt> to make sure that it was able to
+allocate memory for the internal state, and that the provided arguments were valid.
+<tt>deflateInit()</tt> will also check that the version of <em>zlib</em> that the <tt>zlib.h</tt>
+file came from matches the version of <em>zlib</em> actually linked with the program. This
+is especially important for environments in which <em>zlib</em> is a shared library.
+<p>
+Note that an application can initialize multiple, independent <em>zlib</em> streams, which can
+operate in parallel. The state information maintained in the structure allows the <em>zlib</em>
+routines to be reentrant.
+<pre><b>
+ /* allocate deflate state */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ ret = deflateInit(&amp;strm, level);
+ if (ret != Z_OK)
+ return ret;
+</b></pre><!-- -->
+With the pleasantries out of the way, now we can get down to business. The outer <tt>do</tt>-loop
+reads all of the input file and exits at the bottom of the loop once end-of-file is reached.
+This loop contains the only call of <tt>deflate()</tt>. So we must make sure that all of the
+input data has been processed and that all of the output data has been generated and consumed
+before we fall out of the loop at the bottom.
+<pre><b>
+ /* compress until end of file */
+ do {
+</b></pre>
+We start off by reading data from the input file. The number of bytes read is put directly
+into <tt>avail_in</tt>, and a pointer to those bytes is put into <tt>next_in</tt>. We also
+check to see if end-of-file on the input has been reached. If we are at the end of file, then <tt>flush</tt> is set to the
+<em>zlib</em> constant <tt>Z_FINISH</tt>, which is later passed to <tt>deflate()</tt> to
+indicate that this is the last chunk of input data to compress. We need to use <tt>feof()</tt>
+to check for end-of-file as opposed to seeing if fewer than <tt>CHUNK</tt> bytes have been read. The
+reason is that if the input file length is an exact multiple of <tt>CHUNK</tt>, we will miss
+the fact that we got to the end-of-file, and not know to tell <tt>deflate()</tt> to finish
+up the compressed stream. If we are not yet at the end of the input, then the <em>zlib</em>
+constant <tt>Z_NO_FLUSH</tt> will be passed to <tt>deflate</tt> to indicate that we are still
+in the middle of the uncompressed data.
+<p>
+If there is an error in reading from the input file, the process is aborted with
+<tt>deflateEnd()</tt> being called to free the allocated <em>zlib</em> state before returning
+the error. We wouldn't want a memory leak, now would we? <tt>deflateEnd()</tt> can be called
+at any time after the state has been initialized. Once that's done, <tt>deflateInit()</tt> (or
+<tt>deflateInit2()</tt>) would have to be called to start a new compression process. There is
+no point here in checking the <tt>deflateEnd()</tt> return code. The deallocation can't fail.
+<pre><b>
+ strm.avail_in = fread(in, 1, CHUNK, source);
+ if (ferror(source)) {
+ (void)deflateEnd(&amp;strm);
+ return Z_ERRNO;
+ }
+ flush = feof(source) ? Z_FINISH : Z_NO_FLUSH;
+ strm.next_in = in;
+</b></pre><!-- -->
+The inner <tt>do</tt>-loop passes our chunk of input data to <tt>deflate()</tt>, and then
+keeps calling <tt>deflate()</tt> until it is done producing output. Once there is no more
+new output, <tt>deflate()</tt> is guaranteed to have consumed all of the input, i.e.,
+<tt>avail_in</tt> will be zero.
+<pre><b>
+ /* run deflate() on input until output buffer not full, finish
+ compression if all of source has been read in */
+ do {
+</b></pre>
+Output space is provided to <tt>deflate()</tt> by setting <tt>avail_out</tt> to the number
+of available output bytes and <tt>next_out</tt> to a pointer to that space.
+<pre><b>
+ strm.avail_out = CHUNK;
+ strm.next_out = out;
+</b></pre>
+Now we call the compression engine itself, <tt>deflate()</tt>. It takes as many of the
+<tt>avail_in</tt> bytes at <tt>next_in</tt> as it can process, and writes as many as
+<tt>avail_out</tt> bytes to <tt>next_out</tt>. Those counters and pointers are then
+updated past the input data consumed and the output data written. It is the amount of
+output space available that may limit how much input is consumed.
+Hence the inner loop to make sure that
+all of the input is consumed by providing more output space each time. Since <tt>avail_in</tt>
+and <tt>next_in</tt> are updated by <tt>deflate()</tt>, we don't have to mess with those
+between <tt>deflate()</tt> calls until it's all used up.
+<p>
+The parameters to <tt>deflate()</tt> are a pointer to the <tt>strm</tt> structure containing
+the input and output information and the internal compression engine state, and a parameter
+indicating whether and how to flush data to the output. Normally <tt>deflate</tt> will consume
+several K bytes of input data before producing any output (except for the header), in order
+to accumulate statistics on the data for optimum compression. It will then put out a burst of
+compressed data, and proceed to consume more input before the next burst. Eventually,
+<tt>deflate()</tt>
+must be told to terminate the stream, complete the compression with provided input data, and
+write out the trailer check value. <tt>deflate()</tt> will continue to compress normally as long
+as the flush parameter is <tt>Z_NO_FLUSH</tt>. Once the <tt>Z_FINISH</tt> parameter is provided,
+<tt>deflate()</tt> will begin to complete the compressed output stream. However depending on how
+much output space is provided, <tt>deflate()</tt> may have to be called several times until it
+has provided the complete compressed stream, even after it has consumed all of the input. The flush
+parameter must continue to be <tt>Z_FINISH</tt> for those subsequent calls.
+<p>
+There are other values of the flush parameter that are used in more advanced applications. You can
+force <tt>deflate()</tt> to produce a burst of output that encodes all of the input data provided
+so far, even if it wouldn't have otherwise, for example to control data latency on a link with
+compressed data. You can also ask that <tt>deflate()</tt> do that as well as erase any history up to
+that point so that what follows can be decompressed independently, for example for random access
+applications. Both requests will degrade compression by an amount depending on how often such
+requests are made.
+<p>
+<tt>deflate()</tt> has a return value that can indicate errors, yet we do not check it here. Why
+not? Well, it turns out that <tt>deflate()</tt> can do no wrong here. Let's go through
+<tt>deflate()</tt>'s return values and dispense with them one by one. The possible values are
+<tt>Z_OK</tt>, <tt>Z_STREAM_END</tt>, <tt>Z_STREAM_ERROR</tt>, or <tt>Z_BUF_ERROR</tt>. <tt>Z_OK</tt>
+is, well, ok. <tt>Z_STREAM_END</tt> is also ok and will be returned for the last call of
+<tt>deflate()</tt>. This is already guaranteed by calling <tt>deflate()</tt> with <tt>Z_FINISH</tt>
+until it has no more output. <tt>Z_STREAM_ERROR</tt> is only possible if the stream is not
+initialized properly, but we did initialize it properly. There is no harm in checking for
+<tt>Z_STREAM_ERROR</tt> here, for example to check for the possibility that some
+other part of the application inadvertently clobbered the memory containing the <em>zlib</em> state.
+<tt>Z_BUF_ERROR</tt> will be explained further below, but
+suffice it to say that this is simply an indication that <tt>deflate()</tt> could not consume
+more input or produce more output. <tt>deflate()</tt> can be called again with more output space
+or more available input, which it will be in this code.
+<pre><b>
+ ret = deflate(&amp;strm, flush); /* no bad return value */
+ assert(ret != Z_STREAM_ERROR); /* state not clobbered */
+</b></pre>
+Now we compute how much output <tt>deflate()</tt> provided on the last call, which is the
+difference between how much space was provided before the call, and how much output space
+is still available after the call. Then that data, if any, is written to the output file.
+We can then reuse the output buffer for the next call of <tt>deflate()</tt>. Again if there
+is a file i/o error, we call <tt>deflateEnd()</tt> before returning to avoid a memory leak.
+<pre><b>
+ have = CHUNK - strm.avail_out;
+ if (fwrite(out, 1, have, dest) != have || ferror(dest)) {
+ (void)deflateEnd(&amp;strm);
+ return Z_ERRNO;
+ }
+</b></pre>
+The inner <tt>do</tt>-loop is repeated until the last <tt>deflate()</tt> call fails to fill the
+provided output buffer. Then we know that <tt>deflate()</tt> has done as much as it can with
+the provided input, and that all of that input has been consumed. We can then fall out of this
+loop and reuse the input buffer.
+<p>
+The way we tell that <tt>deflate()</tt> has no more output is by seeing that it did not fill
+the output buffer, leaving <tt>avail_out</tt> greater than zero. However suppose that
+<tt>deflate()</tt> has no more output, but just so happened to exactly fill the output buffer!
+<tt>avail_out</tt> is zero, and we can't tell that <tt>deflate()</tt> has done all it can.
+As far as we know, <tt>deflate()</tt>
+has more output for us. So we call it again. But now <tt>deflate()</tt> produces no output
+at all, and <tt>avail_out</tt> remains unchanged as <tt>CHUNK</tt>. That <tt>deflate()</tt> call
+wasn't able to do anything, either consume input or produce output, and so it returns
+<tt>Z_BUF_ERROR</tt>. (See, I told you I'd cover this later.) However this is not a problem at
+all. Now we finally have the desired indication that <tt>deflate()</tt> is really done,
+and so we drop out of the inner loop to provide more input to <tt>deflate()</tt>.
+<p>
+With <tt>flush</tt> set to <tt>Z_FINISH</tt>, this final set of <tt>deflate()</tt> calls will
+complete the output stream. Once that is done, subsequent calls of <tt>deflate()</tt> would return
+<tt>Z_STREAM_ERROR</tt> if the flush parameter is not <tt>Z_FINISH</tt>, and do no more processing
+until the state is reinitialized.
+<p>
+Some applications of <em>zlib</em> have two loops that call <tt>deflate()</tt>
+instead of the single inner loop we have here. The first loop would call
+without flushing and feed all of the data to <tt>deflate()</tt>. The second loop would call
+<tt>deflate()</tt> with no more
+data and the <tt>Z_FINISH</tt> parameter to complete the process. As you can see from this
+example, that can be avoided by simply keeping track of the current flush state.
+<pre><b>
+ } while (strm.avail_out == 0);
+ assert(strm.avail_in == 0); /* all input will be used */
+</b></pre><!-- -->
+Now we check to see if we have already processed all of the input file. That information was
+saved in the <tt>flush</tt> variable, so we see if that was set to <tt>Z_FINISH</tt>. If so,
+then we're done and we fall out of the outer loop. We're guaranteed to get <tt>Z_STREAM_END</tt>
+from the last <tt>deflate()</tt> call, since we ran it until the last chunk of input was
+consumed and all of the output was generated.
+<pre><b>
+ /* done when last data in file processed */
+ } while (flush != Z_FINISH);
+ assert(ret == Z_STREAM_END); /* stream will be complete */
+</b></pre><!-- -->
+The process is complete, but we still need to deallocate the state to avoid a memory leak
+(or rather more like a memory hemorrhage if you didn't do this). Then
+finally we can return with a happy return value.
+<pre><b>
+ /* clean up and return */
+ (void)deflateEnd(&amp;strm);
+ return Z_OK;
+}
+</b></pre><!-- -->
+Now we do the same thing for decompression in the <tt>inf()</tt> routine. <tt>inf()</tt>
+decompresses what is hopefully a valid <em>zlib</em> stream from the input file and writes the
+uncompressed data to the output file. Much of the discussion above for <tt>def()</tt>
+applies to <tt>inf()</tt> as well, so the discussion here will focus on the differences between
+the two.
+<pre><b>
+/* Decompress from file source to file dest until stream ends or EOF.
+ inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be
+ allocated for processing, Z_DATA_ERROR if the deflate data is
+ invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and
+ the version of the library linked do not match, or Z_ERRNO if there
+ is an error reading or writing the files. */
+int inf(FILE *source, FILE *dest)
+{
+</b></pre>
+The local variables have the same functionality as they do for <tt>def()</tt>. The
+only difference is that there is no <tt>flush</tt> variable, since <tt>inflate()</tt>
+can tell from the <em>zlib</em> stream itself when the stream is complete.
+<pre><b>
+ int ret;
+ unsigned have;
+ z_stream strm;
+ unsigned char in[CHUNK];
+ unsigned char out[CHUNK];
+</b></pre><!-- -->
+The initialization of the state is the same, except that there is no compression level,
+of course, and two more elements of the structure are initialized. <tt>avail_in</tt>
+and <tt>next_in</tt> must be initialized before calling <tt>inflateInit()</tt>. This
+is because the application has the option to provide the start of the zlib stream in
+order for <tt>inflateInit()</tt> to have access to information about the compression
+method to aid in memory allocation. In the current implementation of <em>zlib</em>
+(up through versions 1.2.x), the method-dependent memory allocations are deferred to the first call of
+<tt>inflate()</tt> anyway. However those fields must be initialized since later versions
+of <em>zlib</em> that provide more compression methods may take advantage of this interface.
+In any case, no decompression is performed by <tt>inflateInit()</tt>, so the
+<tt>avail_out</tt> and <tt>next_out</tt> fields do not need to be initialized before calling.
+<p>
+Here <tt>avail_in</tt> is set to zero and <tt>next_in</tt> is set to <tt>Z_NULL</tt> to
+indicate that no input data is being provided.
+<pre><b>
+ /* allocate inflate state */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit(&amp;strm);
+ if (ret != Z_OK)
+ return ret;
+</b></pre><!-- -->
+The outer <tt>do</tt>-loop decompresses input until <tt>inflate()</tt> indicates
+that it has reached the end of the compressed data and has produced all of the uncompressed
+output. This is in contrast to <tt>def()</tt> which processes all of the input file.
+If end-of-file is reached before the compressed data self-terminates, then the compressed
+data is incomplete and an error is returned.
+<pre><b>
+ /* decompress until deflate stream ends or end of file */
+ do {
+</b></pre>
+We read input data and set the <tt>strm</tt> structure accordingly. If we've reached the
+end of the input file, then we leave the outer loop and report an error, since the
+compressed data is incomplete. Note that we may read more data than is eventually consumed
+by <tt>inflate()</tt>, if the input file continues past the <em>zlib</em> stream.
+For applications where <em>zlib</em> streams are embedded in other data, this routine would
+need to be modified to return the unused data, or at least indicate how much of the input
+data was not used, so the application would know where to pick up after the <em>zlib</em> stream.
+<pre><b>
+ strm.avail_in = fread(in, 1, CHUNK, source);
+ if (ferror(source)) {
+ (void)inflateEnd(&amp;strm);
+ return Z_ERRNO;
+ }
+ if (strm.avail_in == 0)
+ break;
+ strm.next_in = in;
+</b></pre><!-- -->
+The inner <tt>do</tt>-loop has the same function it did in <tt>def()</tt>, which is to
+keep calling <tt>inflate()</tt> until has generated all of the output it can with the
+provided input.
+<pre><b>
+ /* run inflate() on input until output buffer not full */
+ do {
+</b></pre>
+Just like in <tt>def()</tt>, the same output space is provided for each call of <tt>inflate()</tt>.
+<pre><b>
+ strm.avail_out = CHUNK;
+ strm.next_out = out;
+</b></pre>
+Now we run the decompression engine itself. There is no need to adjust the flush parameter, since
+the <em>zlib</em> format is self-terminating. The main difference here is that there are
+return values that we need to pay attention to. <tt>Z_DATA_ERROR</tt>
+indicates that <tt>inflate()</tt> detected an error in the <em>zlib</em> compressed data format,
+which means that either the data is not a <em>zlib</em> stream to begin with, or that the data was
+corrupted somewhere along the way since it was compressed. The other error to be processed is
+<tt>Z_MEM_ERROR</tt>, which can occur since memory allocation is deferred until <tt>inflate()</tt>
+needs it, unlike <tt>deflate()</tt>, whose memory is allocated at the start by <tt>deflateInit()</tt>.
+<p>
+Advanced applications may use
+<tt>deflateSetDictionary()</tt> to prime <tt>deflate()</tt> with a set of likely data to improve the
+first 32K or so of compression. This is noted in the <em>zlib</em> header, so <tt>inflate()</tt>
+requests that that dictionary be provided before it can start to decompress. Without the dictionary,
+correct decompression is not possible. For this routine, we have no idea what the dictionary is,
+so the <tt>Z_NEED_DICT</tt> indication is converted to a <tt>Z_DATA_ERROR</tt>.
+<p>
+<tt>inflate()</tt> can also return <tt>Z_STREAM_ERROR</tt>, which should not be possible here,
+but could be checked for as noted above for <tt>def()</tt>. <tt>Z_BUF_ERROR</tt> does not need to be
+checked for here, for the same reasons noted for <tt>def()</tt>. <tt>Z_STREAM_END</tt> will be
+checked for later.
+<pre><b>
+ ret = inflate(&amp;strm, Z_NO_FLUSH);
+ assert(ret != Z_STREAM_ERROR); /* state not clobbered */
+ switch (ret) {
+ case Z_NEED_DICT:
+ ret = Z_DATA_ERROR; /* and fall through */
+ case Z_DATA_ERROR:
+ case Z_MEM_ERROR:
+ (void)inflateEnd(&amp;strm);
+ return ret;
+ }
+</b></pre>
+The output of <tt>inflate()</tt> is handled identically to that of <tt>deflate()</tt>.
+<pre><b>
+ have = CHUNK - strm.avail_out;
+ if (fwrite(out, 1, have, dest) != have || ferror(dest)) {
+ (void)inflateEnd(&amp;strm);
+ return Z_ERRNO;
+ }
+</b></pre>
+The inner <tt>do</tt>-loop ends when <tt>inflate()</tt> has no more output as indicated
+by not filling the output buffer, just as for <tt>deflate()</tt>. In this case, we cannot
+assert that <tt>strm.avail_in</tt> will be zero, since the deflate stream may end before the file
+does.
+<pre><b>
+ } while (strm.avail_out == 0);
+</b></pre><!-- -->
+The outer <tt>do</tt>-loop ends when <tt>inflate()</tt> reports that it has reached the
+end of the input <em>zlib</em> stream, has completed the decompression and integrity
+check, and has provided all of the output. This is indicated by the <tt>inflate()</tt>
+return value <tt>Z_STREAM_END</tt>. The inner loop is guaranteed to leave <tt>ret</tt>
+equal to <tt>Z_STREAM_END</tt> if the last chunk of the input file read contained the end
+of the <em>zlib</em> stream. So if the return value is not <tt>Z_STREAM_END</tt>, the
+loop continues to read more input.
+<pre><b>
+ /* done when inflate() says it's done */
+ } while (ret != Z_STREAM_END);
+</b></pre><!-- -->
+At this point, decompression successfully completed, or we broke out of the loop due to no
+more data being available from the input file. If the last <tt>inflate()</tt> return value
+is not <tt>Z_STREAM_END</tt>, then the <em>zlib</em> stream was incomplete and a data error
+is returned. Otherwise, we return with a happy return value. Of course, <tt>inflateEnd()</tt>
+is called first to avoid a memory leak.
+<pre><b>
+ /* clean up and return */
+ (void)inflateEnd(&amp;strm);
+ return ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR;
+}
+</b></pre><!-- -->
+That ends the routines that directly use <em>zlib</em>. The following routines make this
+a command-line program by running data through the above routines from <tt>stdin</tt> to
+<tt>stdout</tt>, and handling any errors reported by <tt>def()</tt> or <tt>inf()</tt>.
+<p>
+<tt>zerr()</tt> is used to interpret the possible error codes from <tt>def()</tt>
+and <tt>inf()</tt>, as detailed in their comments above, and print out an error message.
+Note that these are only a subset of the possible return values from <tt>deflate()</tt>
+and <tt>inflate()</tt>.
+<pre><b>
+/* report a zlib or i/o error */
+void zerr(int ret)
+{
+ fputs("zpipe: ", stderr);
+ switch (ret) {
+ case Z_ERRNO:
+ if (ferror(stdin))
+ fputs("error reading stdin\n", stderr);
+ if (ferror(stdout))
+ fputs("error writing stdout\n", stderr);
+ break;
+ case Z_STREAM_ERROR:
+ fputs("invalid compression level\n", stderr);
+ break;
+ case Z_DATA_ERROR:
+ fputs("invalid or incomplete deflate data\n", stderr);
+ break;
+ case Z_MEM_ERROR:
+ fputs("out of memory\n", stderr);
+ break;
+ case Z_VERSION_ERROR:
+ fputs("zlib version mismatch!\n", stderr);
+ }
+}
+</b></pre><!-- -->
+Here is the <tt>main()</tt> routine used to test <tt>def()</tt> and <tt>inf()</tt>. The
+<tt>zpipe</tt> command is simply a compression pipe from <tt>stdin</tt> to <tt>stdout</tt>, if
+no arguments are given, or it is a decompression pipe if <tt>zpipe -d</tt> is used. If any other
+arguments are provided, no compression or decompression is performed. Instead a usage
+message is displayed. Examples are <tt>zpipe < foo.txt > foo.txt.z</tt> to compress, and
+<tt>zpipe -d < foo.txt.z > foo.txt</tt> to decompress.
+<pre><b>
+/* compress or decompress from stdin to stdout */
+int main(int argc, char **argv)
+{
+ int ret;
+
+ /* avoid end-of-line conversions */
+ SET_BINARY_MODE(stdin);
+ SET_BINARY_MODE(stdout);
+
+ /* do compression if no arguments */
+ if (argc == 1) {
+ ret = def(stdin, stdout, Z_DEFAULT_COMPRESSION);
+ if (ret != Z_OK)
+ zerr(ret);
+ return ret;
+ }
+
+ /* do decompression if -d specified */
+ else if (argc == 2 &amp;&amp; strcmp(argv[1], "-d") == 0) {
+ ret = inf(stdin, stdout);
+ if (ret != Z_OK)
+ zerr(ret);
+ return ret;
+ }
+
+ /* otherwise, report usage */
+ else {
+ fputs("zpipe usage: zpipe [-d] &lt; source &gt; dest\n", stderr);
+ return 1;
+ }
+}
+</b></pre>
+<hr>
+<i>Copyright (c) 2004, 2005 by Mark Adler<br>Last modified 11 December 2005</i>
+</body>
+</html>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zpipe.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zpipe.c
new file mode 100644
index 000000000..83535d169
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zpipe.c
@@ -0,0 +1,205 @@
+/* zpipe.c: example of proper use of zlib's inflate() and deflate()
+ Not copyrighted -- provided to the public domain
+ Version 1.4 11 December 2005 Mark Adler */
+
+/* Version history:
+ 1.0 30 Oct 2004 First version
+ 1.1 8 Nov 2004 Add void casting for unused return values
+ Use switch statement for inflate() return values
+ 1.2 9 Nov 2004 Add assertions to document zlib guarantees
+ 1.3 6 Apr 2005 Remove incorrect assertion in inf()
+ 1.4 11 Dec 2005 Add hack to avoid MSDOS end-of-line conversions
+ Avoid some compiler warnings for input and output buffers
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#include "zlib.h"
+
+#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
+# include <fcntl.h>
+# include <io.h>
+# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+
+#define CHUNK 16384
+
+/* Compress from file source to file dest until EOF on source.
+ def() returns Z_OK on success, Z_MEM_ERROR if memory could not be
+ allocated for processing, Z_STREAM_ERROR if an invalid compression
+ level is supplied, Z_VERSION_ERROR if the version of zlib.h and the
+ version of the library linked do not match, or Z_ERRNO if there is
+ an error reading or writing the files. */
+int def(FILE *source, FILE *dest, int level)
+{
+ int ret, flush;
+ unsigned have;
+ z_stream strm;
+ unsigned char in[CHUNK];
+ unsigned char out[CHUNK];
+
+ /* allocate deflate state */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ ret = deflateInit(&strm, level);
+ if (ret != Z_OK)
+ return ret;
+
+ /* compress until end of file */
+ do {
+ strm.avail_in = fread(in, 1, CHUNK, source);
+ if (ferror(source)) {
+ (void)deflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ flush = feof(source) ? Z_FINISH : Z_NO_FLUSH;
+ strm.next_in = in;
+
+ /* run deflate() on input until output buffer not full, finish
+ compression if all of source has been read in */
+ do {
+ strm.avail_out = CHUNK;
+ strm.next_out = out;
+ ret = deflate(&strm, flush); /* no bad return value */
+ assert(ret != Z_STREAM_ERROR); /* state not clobbered */
+ have = CHUNK - strm.avail_out;
+ if (fwrite(out, 1, have, dest) != have || ferror(dest)) {
+ (void)deflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ } while (strm.avail_out == 0);
+ assert(strm.avail_in == 0); /* all input will be used */
+
+ /* done when last data in file processed */
+ } while (flush != Z_FINISH);
+ assert(ret == Z_STREAM_END); /* stream will be complete */
+
+ /* clean up and return */
+ (void)deflateEnd(&strm);
+ return Z_OK;
+}
+
+/* Decompress from file source to file dest until stream ends or EOF.
+ inf() returns Z_OK on success, Z_MEM_ERROR if memory could not be
+ allocated for processing, Z_DATA_ERROR if the deflate data is
+ invalid or incomplete, Z_VERSION_ERROR if the version of zlib.h and
+ the version of the library linked do not match, or Z_ERRNO if there
+ is an error reading or writing the files. */
+int inf(FILE *source, FILE *dest)
+{
+ int ret;
+ unsigned have;
+ z_stream strm;
+ unsigned char in[CHUNK];
+ unsigned char out[CHUNK];
+
+ /* allocate inflate state */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit(&strm);
+ if (ret != Z_OK)
+ return ret;
+
+ /* decompress until deflate stream ends or end of file */
+ do {
+ strm.avail_in = fread(in, 1, CHUNK, source);
+ if (ferror(source)) {
+ (void)inflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ if (strm.avail_in == 0)
+ break;
+ strm.next_in = in;
+
+ /* run inflate() on input until output buffer not full */
+ do {
+ strm.avail_out = CHUNK;
+ strm.next_out = out;
+ ret = inflate(&strm, Z_NO_FLUSH);
+ assert(ret != Z_STREAM_ERROR); /* state not clobbered */
+ switch (ret) {
+ case Z_NEED_DICT:
+ ret = Z_DATA_ERROR; /* and fall through */
+ case Z_DATA_ERROR:
+ case Z_MEM_ERROR:
+ (void)inflateEnd(&strm);
+ return ret;
+ }
+ have = CHUNK - strm.avail_out;
+ if (fwrite(out, 1, have, dest) != have || ferror(dest)) {
+ (void)inflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ } while (strm.avail_out == 0);
+
+ /* done when inflate() says it's done */
+ } while (ret != Z_STREAM_END);
+
+ /* clean up and return */
+ (void)inflateEnd(&strm);
+ return ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR;
+}
+
+/* report a zlib or i/o error */
+void zerr(int ret)
+{
+ fputs("zpipe: ", stderr);
+ switch (ret) {
+ case Z_ERRNO:
+ if (ferror(stdin))
+ fputs("error reading stdin\n", stderr);
+ if (ferror(stdout))
+ fputs("error writing stdout\n", stderr);
+ break;
+ case Z_STREAM_ERROR:
+ fputs("invalid compression level\n", stderr);
+ break;
+ case Z_DATA_ERROR:
+ fputs("invalid or incomplete deflate data\n", stderr);
+ break;
+ case Z_MEM_ERROR:
+ fputs("out of memory\n", stderr);
+ break;
+ case Z_VERSION_ERROR:
+ fputs("zlib version mismatch!\n", stderr);
+ }
+}
+
+/* compress or decompress from stdin to stdout */
+int main(int argc, char **argv)
+{
+ int ret;
+
+ /* avoid end-of-line conversions */
+ SET_BINARY_MODE(stdin);
+ SET_BINARY_MODE(stdout);
+
+ /* do compression if no arguments */
+ if (argc == 1) {
+ ret = def(stdin, stdout, Z_DEFAULT_COMPRESSION);
+ if (ret != Z_OK)
+ zerr(ret);
+ return ret;
+ }
+
+ /* do decompression if -d specified */
+ else if (argc == 2 && strcmp(argv[1], "-d") == 0) {
+ ret = inf(stdin, stdout);
+ if (ret != Z_OK)
+ zerr(ret);
+ return ret;
+ }
+
+ /* otherwise, report usage */
+ else {
+ fputs("zpipe usage: zpipe [-d] < source > dest\n", stderr);
+ return 1;
+ }
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zran.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zran.c
new file mode 100644
index 000000000..4fec6594a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/examples/zran.c
@@ -0,0 +1,409 @@
+/* zran.c -- example of zlib/gzip stream indexing and random access
+ * Copyright (C) 2005, 2012 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ Version 1.1 29 Sep 2012 Mark Adler */
+
+/* Version History:
+ 1.0 29 May 2005 First version
+ 1.1 29 Sep 2012 Fix memory reallocation error
+ */
+
+/* Illustrate the use of Z_BLOCK, inflatePrime(), and inflateSetDictionary()
+ for random access of a compressed file. A file containing a zlib or gzip
+ stream is provided on the command line. The compressed stream is decoded in
+ its entirety, and an index built with access points about every SPAN bytes
+ in the uncompressed output. The compressed file is left open, and can then
+ be read randomly, having to decompress on the average SPAN/2 uncompressed
+ bytes before getting to the desired block of data.
+
+ An access point can be created at the start of any deflate block, by saving
+ the starting file offset and bit of that block, and the 32K bytes of
+ uncompressed data that precede that block. Also the uncompressed offset of
+ that block is saved to provide a referece for locating a desired starting
+ point in the uncompressed stream. build_index() works by decompressing the
+ input zlib or gzip stream a block at a time, and at the end of each block
+ deciding if enough uncompressed data has gone by to justify the creation of
+ a new access point. If so, that point is saved in a data structure that
+ grows as needed to accommodate the points.
+
+ To use the index, an offset in the uncompressed data is provided, for which
+ the latest access point at or preceding that offset is located in the index.
+ The input file is positioned to the specified location in the index, and if
+ necessary the first few bits of the compressed data is read from the file.
+ inflate is initialized with those bits and the 32K of uncompressed data, and
+ the decompression then proceeds until the desired offset in the file is
+ reached. Then the decompression continues to read the desired uncompressed
+ data from the file.
+
+ Another approach would be to generate the index on demand. In that case,
+ requests for random access reads from the compressed data would try to use
+ the index, but if a read far enough past the end of the index is required,
+ then further index entries would be generated and added.
+
+ There is some fair bit of overhead to starting inflation for the random
+ access, mainly copying the 32K byte dictionary. So if small pieces of the
+ file are being accessed, it would make sense to implement a cache to hold
+ some lookahead and avoid many calls to extract() for small lengths.
+
+ Another way to build an index would be to use inflateCopy(). That would
+ not be constrained to have access points at block boundaries, but requires
+ more memory per access point, and also cannot be saved to file due to the
+ use of pointers in the state. The approach here allows for storage of the
+ index in a file.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "zlib.h"
+
+#define local static
+
+#define SPAN 1048576L /* desired distance between access points */
+#define WINSIZE 32768U /* sliding window size */
+#define CHUNK 16384 /* file input buffer size */
+
+/* access point entry */
+struct point {
+ off_t out; /* corresponding offset in uncompressed data */
+ off_t in; /* offset in input file of first full byte */
+ int bits; /* number of bits (1-7) from byte at in - 1, or 0 */
+ unsigned char window[WINSIZE]; /* preceding 32K of uncompressed data */
+};
+
+/* access point list */
+struct access {
+ int have; /* number of list entries filled in */
+ int size; /* number of list entries allocated */
+ struct point *list; /* allocated list */
+};
+
+/* Deallocate an index built by build_index() */
+local void free_index(struct access *index)
+{
+ if (index != NULL) {
+ free(index->list);
+ free(index);
+ }
+}
+
+/* Add an entry to the access point list. If out of memory, deallocate the
+ existing list and return NULL. */
+local struct access *addpoint(struct access *index, int bits,
+ off_t in, off_t out, unsigned left, unsigned char *window)
+{
+ struct point *next;
+
+ /* if list is empty, create it (start with eight points) */
+ if (index == NULL) {
+ index = malloc(sizeof(struct access));
+ if (index == NULL) return NULL;
+ index->list = malloc(sizeof(struct point) << 3);
+ if (index->list == NULL) {
+ free(index);
+ return NULL;
+ }
+ index->size = 8;
+ index->have = 0;
+ }
+
+ /* if list is full, make it bigger */
+ else if (index->have == index->size) {
+ index->size <<= 1;
+ next = realloc(index->list, sizeof(struct point) * index->size);
+ if (next == NULL) {
+ free_index(index);
+ return NULL;
+ }
+ index->list = next;
+ }
+
+ /* fill in entry and increment how many we have */
+ next = index->list + index->have;
+ next->bits = bits;
+ next->in = in;
+ next->out = out;
+ if (left)
+ memcpy(next->window, window + WINSIZE - left, left);
+ if (left < WINSIZE)
+ memcpy(next->window + left, window, WINSIZE - left);
+ index->have++;
+
+ /* return list, possibly reallocated */
+ return index;
+}
+
+/* Make one entire pass through the compressed stream and build an index, with
+ access points about every span bytes of uncompressed output -- span is
+ chosen to balance the speed of random access against the memory requirements
+ of the list, about 32K bytes per access point. Note that data after the end
+ of the first zlib or gzip stream in the file is ignored. build_index()
+ returns the number of access points on success (>= 1), Z_MEM_ERROR for out
+ of memory, Z_DATA_ERROR for an error in the input file, or Z_ERRNO for a
+ file read error. On success, *built points to the resulting index. */
+local int build_index(FILE *in, off_t span, struct access **built)
+{
+ int ret;
+ off_t totin, totout; /* our own total counters to avoid 4GB limit */
+ off_t last; /* totout value of last access point */
+ struct access *index; /* access points being generated */
+ z_stream strm;
+ unsigned char input[CHUNK];
+ unsigned char window[WINSIZE];
+
+ /* initialize inflate */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, 47); /* automatic zlib or gzip decoding */
+ if (ret != Z_OK)
+ return ret;
+
+ /* inflate the input, maintain a sliding window, and build an index -- this
+ also validates the integrity of the compressed data using the check
+ information at the end of the gzip or zlib stream */
+ totin = totout = last = 0;
+ index = NULL; /* will be allocated by first addpoint() */
+ strm.avail_out = 0;
+ do {
+ /* get some compressed data from input file */
+ strm.avail_in = fread(input, 1, CHUNK, in);
+ if (ferror(in)) {
+ ret = Z_ERRNO;
+ goto build_index_error;
+ }
+ if (strm.avail_in == 0) {
+ ret = Z_DATA_ERROR;
+ goto build_index_error;
+ }
+ strm.next_in = input;
+
+ /* process all of that, or until end of stream */
+ do {
+ /* reset sliding window if necessary */
+ if (strm.avail_out == 0) {
+ strm.avail_out = WINSIZE;
+ strm.next_out = window;
+ }
+
+ /* inflate until out of input, output, or at end of block --
+ update the total input and output counters */
+ totin += strm.avail_in;
+ totout += strm.avail_out;
+ ret = inflate(&strm, Z_BLOCK); /* return at end of block */
+ totin -= strm.avail_in;
+ totout -= strm.avail_out;
+ if (ret == Z_NEED_DICT)
+ ret = Z_DATA_ERROR;
+ if (ret == Z_MEM_ERROR || ret == Z_DATA_ERROR)
+ goto build_index_error;
+ if (ret == Z_STREAM_END)
+ break;
+
+ /* if at end of block, consider adding an index entry (note that if
+ data_type indicates an end-of-block, then all of the
+ uncompressed data from that block has been delivered, and none
+ of the compressed data after that block has been consumed,
+ except for up to seven bits) -- the totout == 0 provides an
+ entry point after the zlib or gzip header, and assures that the
+ index always has at least one access point; we avoid creating an
+ access point after the last block by checking bit 6 of data_type
+ */
+ if ((strm.data_type & 128) && !(strm.data_type & 64) &&
+ (totout == 0 || totout - last > span)) {
+ index = addpoint(index, strm.data_type & 7, totin,
+ totout, strm.avail_out, window);
+ if (index == NULL) {
+ ret = Z_MEM_ERROR;
+ goto build_index_error;
+ }
+ last = totout;
+ }
+ } while (strm.avail_in != 0);
+ } while (ret != Z_STREAM_END);
+
+ /* clean up and return index (release unused entries in list) */
+ (void)inflateEnd(&strm);
+ index->list = realloc(index->list, sizeof(struct point) * index->have);
+ index->size = index->have;
+ *built = index;
+ return index->size;
+
+ /* return error */
+ build_index_error:
+ (void)inflateEnd(&strm);
+ if (index != NULL)
+ free_index(index);
+ return ret;
+}
+
+/* Use the index to read len bytes from offset into buf, return bytes read or
+ negative for error (Z_DATA_ERROR or Z_MEM_ERROR). If data is requested past
+ the end of the uncompressed data, then extract() will return a value less
+ than len, indicating how much as actually read into buf. This function
+ should not return a data error unless the file was modified since the index
+ was generated. extract() may also return Z_ERRNO if there is an error on
+ reading or seeking the input file. */
+local int extract(FILE *in, struct access *index, off_t offset,
+ unsigned char *buf, int len)
+{
+ int ret, skip;
+ z_stream strm;
+ struct point *here;
+ unsigned char input[CHUNK];
+ unsigned char discard[WINSIZE];
+
+ /* proceed only if something reasonable to do */
+ if (len < 0)
+ return 0;
+
+ /* find where in stream to start */
+ here = index->list;
+ ret = index->have;
+ while (--ret && here[1].out <= offset)
+ here++;
+
+ /* initialize file and inflate state to start there */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, -15); /* raw inflate */
+ if (ret != Z_OK)
+ return ret;
+ ret = fseeko(in, here->in - (here->bits ? 1 : 0), SEEK_SET);
+ if (ret == -1)
+ goto extract_ret;
+ if (here->bits) {
+ ret = getc(in);
+ if (ret == -1) {
+ ret = ferror(in) ? Z_ERRNO : Z_DATA_ERROR;
+ goto extract_ret;
+ }
+ (void)inflatePrime(&strm, here->bits, ret >> (8 - here->bits));
+ }
+ (void)inflateSetDictionary(&strm, here->window, WINSIZE);
+
+ /* skip uncompressed bytes until offset reached, then satisfy request */
+ offset -= here->out;
+ strm.avail_in = 0;
+ skip = 1; /* while skipping to offset */
+ do {
+ /* define where to put uncompressed data, and how much */
+ if (offset == 0 && skip) { /* at offset now */
+ strm.avail_out = len;
+ strm.next_out = buf;
+ skip = 0; /* only do this once */
+ }
+ if (offset > WINSIZE) { /* skip WINSIZE bytes */
+ strm.avail_out = WINSIZE;
+ strm.next_out = discard;
+ offset -= WINSIZE;
+ }
+ else if (offset != 0) { /* last skip */
+ strm.avail_out = (unsigned)offset;
+ strm.next_out = discard;
+ offset = 0;
+ }
+
+ /* uncompress until avail_out filled, or end of stream */
+ do {
+ if (strm.avail_in == 0) {
+ strm.avail_in = fread(input, 1, CHUNK, in);
+ if (ferror(in)) {
+ ret = Z_ERRNO;
+ goto extract_ret;
+ }
+ if (strm.avail_in == 0) {
+ ret = Z_DATA_ERROR;
+ goto extract_ret;
+ }
+ strm.next_in = input;
+ }
+ ret = inflate(&strm, Z_NO_FLUSH); /* normal inflate */
+ if (ret == Z_NEED_DICT)
+ ret = Z_DATA_ERROR;
+ if (ret == Z_MEM_ERROR || ret == Z_DATA_ERROR)
+ goto extract_ret;
+ if (ret == Z_STREAM_END)
+ break;
+ } while (strm.avail_out != 0);
+
+ /* if reach end of stream, then don't keep trying to get more */
+ if (ret == Z_STREAM_END)
+ break;
+
+ /* do until offset reached and requested data read, or stream ends */
+ } while (skip);
+
+ /* compute number of uncompressed bytes read after offset */
+ ret = skip ? 0 : len - strm.avail_out;
+
+ /* clean up and return bytes read or error */
+ extract_ret:
+ (void)inflateEnd(&strm);
+ return ret;
+}
+
+/* Demonstrate the use of build_index() and extract() by processing the file
+ provided on the command line, and the extracting 16K from about 2/3rds of
+ the way through the uncompressed output, and writing that to stdout. */
+int main(int argc, char **argv)
+{
+ int len;
+ off_t offset;
+ FILE *in;
+ struct access *index = NULL;
+ unsigned char buf[CHUNK];
+
+ /* open input file */
+ if (argc != 2) {
+ fprintf(stderr, "usage: zran file.gz\n");
+ return 1;
+ }
+ in = fopen(argv[1], "rb");
+ if (in == NULL) {
+ fprintf(stderr, "zran: could not open %s for reading\n", argv[1]);
+ return 1;
+ }
+
+ /* build index */
+ len = build_index(in, SPAN, &index);
+ if (len < 0) {
+ fclose(in);
+ switch (len) {
+ case Z_MEM_ERROR:
+ fprintf(stderr, "zran: out of memory\n");
+ break;
+ case Z_DATA_ERROR:
+ fprintf(stderr, "zran: compressed data error in %s\n", argv[1]);
+ break;
+ case Z_ERRNO:
+ fprintf(stderr, "zran: read error on %s\n", argv[1]);
+ break;
+ default:
+ fprintf(stderr, "zran: error %d while building index\n", len);
+ }
+ return 1;
+ }
+ fprintf(stderr, "zran: built index with %d access points\n", len);
+
+ /* use index by reading some bytes from an arbitrary offset */
+ offset = (index->list[index->have - 1].out << 1) / 3;
+ len = extract(in, index, offset, buf, CHUNK);
+ if (len < 0)
+ fprintf(stderr, "zran: extraction failed: %s error\n",
+ len == Z_MEM_ERROR ? "out of memory" : "input corrupted");
+ else {
+ fwrite(buf, 1, len, stdout);
+ fprintf(stderr, "zran: extracted %d bytes at %llu\n", len, offset);
+ }
+
+ /* clean up and exit */
+ free_index(index);
+ fclose(in);
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzclose.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzclose.c
new file mode 100644
index 000000000..caeb99a31
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzclose.c
@@ -0,0 +1,25 @@
+/* gzclose.c -- zlib gzclose() function
+ * Copyright (C) 2004, 2010 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "gzguts.h"
+
+/* gzclose() is in a separate file so that it is linked in only if it is used.
+ That way the other gzclose functions can be used instead to avoid linking in
+ unneeded compression or decompression routines. */
+int ZEXPORT gzclose(file)
+ gzFile file;
+{
+#ifndef NO_GZCOMPRESS
+ gz_statep state;
+
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+
+ return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
+#else
+ return gzclose_r(file);
+#endif
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzguts.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzguts.h
new file mode 100644
index 000000000..990a4d251
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzguts.h
@@ -0,0 +1,218 @@
+/* gzguts.h -- zlib internal header definitions for gz* operations
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#ifdef _LARGEFILE64_SOURCE
+# ifndef _LARGEFILE_SOURCE
+# define _LARGEFILE_SOURCE 1
+# endif
+# ifdef _FILE_OFFSET_BITS
+# undef _FILE_OFFSET_BITS
+# endif
+#endif
+
+#ifdef HAVE_HIDDEN
+# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
+#else
+# define ZLIB_INTERNAL
+#endif
+
+#include <stdio.h>
+#include "zlib.h"
+#ifdef STDC
+# include <string.h>
+# include <stdlib.h>
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_SOURCE
+# define _POSIX_SOURCE
+#endif
+#include <fcntl.h>
+
+#ifdef _WIN32
+# include <stddef.h>
+#endif
+
+#if defined(__TURBOC__) || defined(_MSC_VER) || defined(_WIN32)
+# include <io.h>
+#endif
+
+#if defined(_WIN32) || defined(__CYGWIN__)
+# define WIDECHAR
+#endif
+
+#ifdef WINAPI_FAMILY
+# define open _open
+# define read _read
+# define write _write
+# define close _close
+#endif
+
+#ifdef NO_DEFLATE /* for compatibility with old definition */
+# define NO_GZCOMPRESS
+#endif
+
+#if defined(STDC99) || (defined(__TURBOC__) && __TURBOC__ >= 0x550)
+# ifndef HAVE_VSNPRINTF
+# define HAVE_VSNPRINTF
+# endif
+#endif
+
+#if defined(__CYGWIN__)
+# ifndef HAVE_VSNPRINTF
+# define HAVE_VSNPRINTF
+# endif
+#endif
+
+#if defined(MSDOS) && defined(__BORLANDC__) && (BORLANDC > 0x410)
+# ifndef HAVE_VSNPRINTF
+# define HAVE_VSNPRINTF
+# endif
+#endif
+
+#ifndef HAVE_VSNPRINTF
+# ifdef MSDOS
+/* vsnprintf may exist on some MS-DOS compilers (DJGPP?),
+ but for now we just assume it doesn't. */
+# define NO_vsnprintf
+# endif
+# ifdef __TURBOC__
+# define NO_vsnprintf
+# endif
+# ifdef WIN32
+/* In Win32, vsnprintf is available as the "non-ANSI" _vsnprintf. */
+# if !defined(vsnprintf) && !defined(NO_vsnprintf)
+# if !defined(_MSC_VER) || ( defined(_MSC_VER) && _MSC_VER < 1500 )
+# define vsnprintf _vsnprintf
+# endif
+# endif
+# endif
+# ifdef __SASC
+# define NO_vsnprintf
+# endif
+# ifdef VMS
+# define NO_vsnprintf
+# endif
+# ifdef __OS400__
+# define NO_vsnprintf
+# endif
+# ifdef __MVS__
+# define NO_vsnprintf
+# endif
+#endif
+
+/* unlike snprintf (which is required in C99), _snprintf does not guarantee
+ null termination of the result -- however this is only used in gzlib.c where
+ the result is assured to fit in the space provided */
+#if defined(_MSC_VER) && _MSC_VER < 1900
+# define snprintf _snprintf
+#endif
+
+#ifndef local
+# define local static
+#endif
+/* since "static" is used to mean two completely different things in C, we
+ define "local" for the non-static meaning of "static", for readability
+ (compile with -Dlocal if your debugger can't find static symbols) */
+
+/* gz* functions always use library allocation functions */
+#ifndef STDC
+ extern voidp malloc OF((uInt size));
+ extern void free OF((voidpf ptr));
+#endif
+
+/* get errno and strerror definition */
+#if defined UNDER_CE
+# include <windows.h>
+# define zstrerror() gz_strwinerror((DWORD)GetLastError())
+#else
+# ifndef NO_STRERROR
+# include <errno.h>
+# define zstrerror() strerror(errno)
+# else
+# define zstrerror() "stdio error (consult errno)"
+# endif
+#endif
+
+/* provide prototypes for these when building zlib without LFS */
+#if !defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
+ ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
+ ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
+#endif
+
+/* default memLevel */
+#if MAX_MEM_LEVEL >= 8
+# define DEF_MEM_LEVEL 8
+#else
+# define DEF_MEM_LEVEL MAX_MEM_LEVEL
+#endif
+
+/* default i/o buffer size -- double this for output when reading (this and
+ twice this must be able to fit in an unsigned type) */
+#define GZBUFSIZE 8192
+
+/* gzip modes, also provide a little integrity check on the passed structure */
+#define GZ_NONE 0
+#define GZ_READ 7247
+#define GZ_WRITE 31153
+#define GZ_APPEND 1 /* mode set to GZ_WRITE after the file is opened */
+
+/* values for gz_state how */
+#define LOOK 0 /* look for a gzip header */
+#define COPY 1 /* copy input directly */
+#define GZIP 2 /* decompress a gzip stream */
+
+/* internal gzip file state data structure */
+typedef struct {
+ /* exposed contents for gzgetc() macro */
+ struct gzFile_s x; /* "x" for exposed */
+ /* x.have: number of bytes available at x.next */
+ /* x.next: next output data to deliver or write */
+ /* x.pos: current position in uncompressed data */
+ /* used for both reading and writing */
+ int mode; /* see gzip modes above */
+ int fd; /* file descriptor */
+ char *path; /* path or fd for error messages */
+ unsigned size; /* buffer size, zero if not allocated yet */
+ unsigned want; /* requested buffer size, default is GZBUFSIZE */
+ unsigned char *in; /* input buffer (double-sized when writing) */
+ unsigned char *out; /* output buffer (double-sized when reading) */
+ int direct; /* 0 if processing gzip, 1 if transparent */
+ /* just for reading */
+ int how; /* 0: get header, 1: copy, 2: decompress */
+ z_off64_t start; /* where the gzip data started, for rewinding */
+ int eof; /* true if end of input file reached */
+ int past; /* true if read requested past end */
+ /* just for writing */
+ int level; /* compression level */
+ int strategy; /* compression strategy */
+ /* seek request */
+ z_off64_t skip; /* amount to skip (already rewound if backwards) */
+ int seek; /* true if seek request pending */
+ /* error information */
+ int err; /* error code */
+ char *msg; /* error message */
+ /* zlib inflate or deflate stream */
+ z_stream strm; /* stream structure in-place (not a pointer) */
+} gz_state;
+typedef gz_state FAR *gz_statep;
+
+/* shared functions */
+void ZLIB_INTERNAL gz_error OF((gz_statep, int, const char *));
+#if defined UNDER_CE
+char ZLIB_INTERNAL *gz_strwinerror OF((DWORD error));
+#endif
+
+/* GT_OFF(x), where x is an unsigned value, is true if x > maximum z_off64_t
+ value -- needed when comparing unsigned to z_off64_t, which is signed
+ (possible z_off64_t types off_t, off64_t, and long are all signed) */
+#ifdef INT_MAX
+# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > INT_MAX)
+#else
+unsigned ZLIB_INTERNAL gz_intmax OF((void));
+# define GT_OFF(x) (sizeof(int) == sizeof(z_off64_t) && (x) > gz_intmax())
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzlib.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzlib.c
new file mode 100644
index 000000000..4105e6aff
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzlib.c
@@ -0,0 +1,637 @@
+/* gzlib.c -- zlib functions common to reading and writing gzip files
+ * Copyright (C) 2004-2017 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "gzguts.h"
+
+#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__)
+# define LSEEK _lseeki64
+#else
+#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
+# define LSEEK lseek64
+#else
+# define LSEEK lseek
+#endif
+#endif
+
+/* Local functions */
+local void gz_reset OF((gz_statep));
+local gzFile gz_open OF((const void *, int, const char *));
+
+#if defined UNDER_CE
+
+/* Map the Windows error number in ERROR to a locale-dependent error message
+ string and return a pointer to it. Typically, the values for ERROR come
+ from GetLastError.
+
+ The string pointed to shall not be modified by the application, but may be
+ overwritten by a subsequent call to gz_strwinerror
+
+ The gz_strwinerror function does not change the current setting of
+ GetLastError. */
+char ZLIB_INTERNAL *gz_strwinerror (error)
+ DWORD error;
+{
+ static char buf[1024];
+
+ wchar_t *msgbuf;
+ DWORD lasterr = GetLastError();
+ DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
+ | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+ NULL,
+ error,
+ 0, /* Default language */
+ (LPVOID)&msgbuf,
+ 0,
+ NULL);
+ if (chars != 0) {
+ /* If there is an \r\n appended, zap it. */
+ if (chars >= 2
+ && msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') {
+ chars -= 2;
+ msgbuf[chars] = 0;
+ }
+
+ if (chars > sizeof (buf) - 1) {
+ chars = sizeof (buf) - 1;
+ msgbuf[chars] = 0;
+ }
+
+ wcstombs(buf, msgbuf, chars + 1);
+ LocalFree(msgbuf);
+ }
+ else {
+ sprintf(buf, "unknown win32 error (%ld)", error);
+ }
+
+ SetLastError(lasterr);
+ return buf;
+}
+
+#endif /* UNDER_CE */
+
+/* Reset gzip file state */
+local void gz_reset(state)
+ gz_statep state;
+{
+ state->x.have = 0; /* no output data available */
+ if (state->mode == GZ_READ) { /* for reading ... */
+ state->eof = 0; /* not at end of file */
+ state->past = 0; /* have not read past end yet */
+ state->how = LOOK; /* look for gzip header */
+ }
+ state->seek = 0; /* no seek request pending */
+ gz_error(state, Z_OK, NULL); /* clear error */
+ state->x.pos = 0; /* no uncompressed data yet */
+ state->strm.avail_in = 0; /* no input data yet */
+}
+
+/* Open a gzip file either by name or file descriptor. */
+local gzFile gz_open(path, fd, mode)
+ const void *path;
+ int fd;
+ const char *mode;
+{
+ gz_statep state;
+ z_size_t len;
+ int oflag;
+#ifdef O_CLOEXEC
+ int cloexec = 0;
+#endif
+#ifdef O_EXCL
+ int exclusive = 0;
+#endif
+
+ /* check input */
+ if (path == NULL)
+ return NULL;
+
+ /* allocate gzFile structure to return */
+ state = (gz_statep)malloc(sizeof(gz_state));
+ if (state == NULL)
+ return NULL;
+ state->size = 0; /* no buffers allocated yet */
+ state->want = GZBUFSIZE; /* requested buffer size */
+ state->msg = NULL; /* no error message yet */
+
+ /* interpret mode */
+ state->mode = GZ_NONE;
+ state->level = Z_DEFAULT_COMPRESSION;
+ state->strategy = Z_DEFAULT_STRATEGY;
+ state->direct = 0;
+ while (*mode) {
+ if (*mode >= '0' && *mode <= '9')
+ state->level = *mode - '0';
+ else
+ switch (*mode) {
+ case 'r':
+ state->mode = GZ_READ;
+ break;
+#ifndef NO_GZCOMPRESS
+ case 'w':
+ state->mode = GZ_WRITE;
+ break;
+ case 'a':
+ state->mode = GZ_APPEND;
+ break;
+#endif
+ case '+': /* can't read and write at the same time */
+ free(state);
+ return NULL;
+ case 'b': /* ignore -- will request binary anyway */
+ break;
+#ifdef O_CLOEXEC
+ case 'e':
+ cloexec = 1;
+ break;
+#endif
+#ifdef O_EXCL
+ case 'x':
+ exclusive = 1;
+ break;
+#endif
+ case 'f':
+ state->strategy = Z_FILTERED;
+ break;
+ case 'h':
+ state->strategy = Z_HUFFMAN_ONLY;
+ break;
+ case 'R':
+ state->strategy = Z_RLE;
+ break;
+ case 'F':
+ state->strategy = Z_FIXED;
+ break;
+ case 'T':
+ state->direct = 1;
+ break;
+ default: /* could consider as an error, but just ignore */
+ ;
+ }
+ mode++;
+ }
+
+ /* must provide an "r", "w", or "a" */
+ if (state->mode == GZ_NONE) {
+ free(state);
+ return NULL;
+ }
+
+ /* can't force transparent read */
+ if (state->mode == GZ_READ) {
+ if (state->direct) {
+ free(state);
+ return NULL;
+ }
+ state->direct = 1; /* for empty file */
+ }
+
+ /* save the path name for error messages */
+#ifdef WIDECHAR
+ if (fd == -2) {
+ len = wcstombs(NULL, path, 0);
+ if (len == (z_size_t)-1)
+ len = 0;
+ }
+ else
+#endif
+ len = strlen((const char *)path);
+ state->path = (char *)malloc(len + 1);
+ if (state->path == NULL) {
+ free(state);
+ return NULL;
+ }
+#ifdef WIDECHAR
+ if (fd == -2)
+ if (len)
+ wcstombs(state->path, path, len + 1);
+ else
+ *(state->path) = 0;
+ else
+#endif
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ (void)snprintf(state->path, len + 1, "%s", (const char *)path);
+#else
+ strcpy(state->path, path);
+#endif
+
+ /* compute the flags for open() */
+ oflag =
+#ifdef O_LARGEFILE
+ O_LARGEFILE |
+#endif
+#ifdef O_BINARY
+ O_BINARY |
+#endif
+#ifdef O_CLOEXEC
+ (cloexec ? O_CLOEXEC : 0) |
+#endif
+ (state->mode == GZ_READ ?
+ O_RDONLY :
+ (O_WRONLY | O_CREAT |
+#ifdef O_EXCL
+ (exclusive ? O_EXCL : 0) |
+#endif
+ (state->mode == GZ_WRITE ?
+ O_TRUNC :
+ O_APPEND)));
+
+ /* open the file with the appropriate flags (or just use fd) */
+ state->fd = fd > -1 ? fd : (
+#ifdef WIDECHAR
+ fd == -2 ? _wopen(path, oflag, 0666) :
+#endif
+ open((const char *)path, oflag, 0666));
+ if (state->fd == -1) {
+ free(state->path);
+ free(state);
+ return NULL;
+ }
+ if (state->mode == GZ_APPEND) {
+ LSEEK(state->fd, 0, SEEK_END); /* so gzoffset() is correct */
+ state->mode = GZ_WRITE; /* simplify later checks */
+ }
+
+ /* save the current position for rewinding (only if reading) */
+ if (state->mode == GZ_READ) {
+ state->start = LSEEK(state->fd, 0, SEEK_CUR);
+ if (state->start == -1) state->start = 0;
+ }
+
+ /* initialize stream */
+ gz_reset(state);
+
+ /* return stream */
+ return (gzFile)state;
+}
+
+/* -- see zlib.h -- */
+gzFile ZEXPORT gzopen(path, mode)
+ const char *path;
+ const char *mode;
+{
+ return gz_open(path, -1, mode);
+}
+
+/* -- see zlib.h -- */
+gzFile ZEXPORT gzopen64(path, mode)
+ const char *path;
+ const char *mode;
+{
+ return gz_open(path, -1, mode);
+}
+
+/* -- see zlib.h -- */
+gzFile ZEXPORT gzdopen(fd, mode)
+ int fd;
+ const char *mode;
+{
+ char *path; /* identifier for error messages */
+ gzFile gz;
+
+ if (fd == -1 || (path = (char *)malloc(7 + 3 * sizeof(int))) == NULL)
+ return NULL;
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ (void)snprintf(path, 7 + 3 * sizeof(int), "<fd:%d>", fd);
+#else
+ sprintf(path, "<fd:%d>", fd); /* for debugging */
+#endif
+ gz = gz_open(path, fd, mode);
+ free(path);
+ return gz;
+}
+
+/* -- see zlib.h -- */
+#ifdef WIDECHAR
+gzFile ZEXPORT gzopen_w(path, mode)
+ const wchar_t *path;
+ const char *mode;
+{
+ return gz_open(path, -2, mode);
+}
+#endif
+
+/* -- see zlib.h -- */
+int ZEXPORT gzbuffer(file, size)
+ gzFile file;
+ unsigned size;
+{
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return -1;
+
+ /* make sure we haven't already allocated memory */
+ if (state->size != 0)
+ return -1;
+
+ /* check and set requested size */
+ if ((size << 1) < size)
+ return -1; /* need to be able to double it */
+ if (size < 2)
+ size = 2; /* need two bytes to check magic header */
+ state->want = size;
+ return 0;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzrewind(file)
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return -1;
+
+ /* back up and start over */
+ if (LSEEK(state->fd, state->start, SEEK_SET) == -1)
+ return -1;
+ gz_reset(state);
+ return 0;
+}
+
+/* -- see zlib.h -- */
+z_off64_t ZEXPORT gzseek64(file, offset, whence)
+ gzFile file;
+ z_off64_t offset;
+ int whence;
+{
+ unsigned n;
+ z_off64_t ret;
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return -1;
+
+ /* check that there's no error */
+ if (state->err != Z_OK && state->err != Z_BUF_ERROR)
+ return -1;
+
+ /* can only seek from start or relative to current position */
+ if (whence != SEEK_SET && whence != SEEK_CUR)
+ return -1;
+
+ /* normalize offset to a SEEK_CUR specification */
+ if (whence == SEEK_SET)
+ offset -= state->x.pos;
+ else if (state->seek)
+ offset += state->skip;
+ state->seek = 0;
+
+ /* if within raw area while reading, just go there */
+ if (state->mode == GZ_READ && state->how == COPY &&
+ state->x.pos + offset >= 0) {
+ ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR);
+ if (ret == -1)
+ return -1;
+ state->x.have = 0;
+ state->eof = 0;
+ state->past = 0;
+ state->seek = 0;
+ gz_error(state, Z_OK, NULL);
+ state->strm.avail_in = 0;
+ state->x.pos += offset;
+ return state->x.pos;
+ }
+
+ /* calculate skip amount, rewinding if needed for back seek when reading */
+ if (offset < 0) {
+ if (state->mode != GZ_READ) /* writing -- can't go backwards */
+ return -1;
+ offset += state->x.pos;
+ if (offset < 0) /* before start of file! */
+ return -1;
+ if (gzrewind(file) == -1) /* rewind, then skip to offset */
+ return -1;
+ }
+
+ /* if reading, skip what's in output buffer (one less gzgetc() check) */
+ if (state->mode == GZ_READ) {
+ n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > offset ?
+ (unsigned)offset : state->x.have;
+ state->x.have -= n;
+ state->x.next += n;
+ state->x.pos += n;
+ offset -= n;
+ }
+
+ /* request skip (if not zero) */
+ if (offset) {
+ state->seek = 1;
+ state->skip = offset;
+ }
+ return state->x.pos + offset;
+}
+
+/* -- see zlib.h -- */
+z_off_t ZEXPORT gzseek(file, offset, whence)
+ gzFile file;
+ z_off_t offset;
+ int whence;
+{
+ z_off64_t ret;
+
+ ret = gzseek64(file, (z_off64_t)offset, whence);
+ return ret == (z_off_t)ret ? (z_off_t)ret : -1;
+}
+
+/* -- see zlib.h -- */
+z_off64_t ZEXPORT gztell64(file)
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return -1;
+
+ /* return position */
+ return state->x.pos + (state->seek ? state->skip : 0);
+}
+
+/* -- see zlib.h -- */
+z_off_t ZEXPORT gztell(file)
+ gzFile file;
+{
+ z_off64_t ret;
+
+ ret = gztell64(file);
+ return ret == (z_off_t)ret ? (z_off_t)ret : -1;
+}
+
+/* -- see zlib.h -- */
+z_off64_t ZEXPORT gzoffset64(file)
+ gzFile file;
+{
+ z_off64_t offset;
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return -1;
+
+ /* compute and return effective offset in file */
+ offset = LSEEK(state->fd, 0, SEEK_CUR);
+ if (offset == -1)
+ return -1;
+ if (state->mode == GZ_READ) /* reading */
+ offset -= state->strm.avail_in; /* don't count buffered input */
+ return offset;
+}
+
+/* -- see zlib.h -- */
+z_off_t ZEXPORT gzoffset(file)
+ gzFile file;
+{
+ z_off64_t ret;
+
+ ret = gzoffset64(file);
+ return ret == (z_off_t)ret ? (z_off_t)ret : -1;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzeof(file)
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return 0;
+
+ /* return end-of-file state */
+ return state->mode == GZ_READ ? state->past : 0;
+}
+
+/* -- see zlib.h -- */
+const char * ZEXPORT gzerror(file, errnum)
+ gzFile file;
+ int *errnum;
+{
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return NULL;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return NULL;
+
+ /* return error information */
+ if (errnum != NULL)
+ *errnum = state->err;
+ return state->err == Z_MEM_ERROR ? "out of memory" :
+ (state->msg == NULL ? "" : state->msg);
+}
+
+/* -- see zlib.h -- */
+void ZEXPORT gzclearerr(file)
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure and check integrity */
+ if (file == NULL)
+ return;
+ state = (gz_statep)file;
+ if (state->mode != GZ_READ && state->mode != GZ_WRITE)
+ return;
+
+ /* clear error and end-of-file */
+ if (state->mode == GZ_READ) {
+ state->eof = 0;
+ state->past = 0;
+ }
+ gz_error(state, Z_OK, NULL);
+}
+
+/* Create an error message in allocated memory and set state->err and
+ state->msg accordingly. Free any previous error message already there. Do
+ not try to free or allocate space if the error is Z_MEM_ERROR (out of
+ memory). Simply save the error message as a static string. If there is an
+ allocation failure constructing the error message, then convert the error to
+ out of memory. */
+void ZLIB_INTERNAL gz_error(state, err, msg)
+ gz_statep state;
+ int err;
+ const char *msg;
+{
+ /* free previously allocated message and clear */
+ if (state->msg != NULL) {
+ if (state->err != Z_MEM_ERROR)
+ free(state->msg);
+ state->msg = NULL;
+ }
+
+ /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
+ if (err != Z_OK && err != Z_BUF_ERROR)
+ state->x.have = 0;
+
+ /* set error code, and if no message, then done */
+ state->err = err;
+ if (msg == NULL)
+ return;
+
+ /* for an out of memory error, return literal string when requested */
+ if (err == Z_MEM_ERROR)
+ return;
+
+ /* construct error message with path */
+ if ((state->msg = (char *)malloc(strlen(state->path) + strlen(msg) + 3)) ==
+ NULL) {
+ state->err = Z_MEM_ERROR;
+ return;
+ }
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ (void)snprintf(state->msg, strlen(state->path) + strlen(msg) + 3,
+ "%s%s%s", state->path, ": ", msg);
+#else
+ strcpy(state->msg, state->path);
+ strcat(state->msg, ": ");
+ strcat(state->msg, msg);
+#endif
+}
+
+#ifndef INT_MAX
+/* portably return maximum value for an int (when limits.h presumed not
+ available) -- we need to do this to cover cases where 2's complement not
+ used, since C standard permits 1's complement and sign-bit representations,
+ otherwise we could just use ((unsigned)-1) >> 1 */
+unsigned ZLIB_INTERNAL gz_intmax()
+{
+ unsigned p, q;
+
+ p = 1;
+ do {
+ q = p;
+ p <<= 1;
+ p++;
+ } while (p > q);
+ return q >> 1;
+}
+#endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzread.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzread.c
new file mode 100644
index 000000000..956b91ea7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzread.c
@@ -0,0 +1,654 @@
+/* gzread.c -- zlib functions for reading gzip files
+ * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "gzguts.h"
+
+/* Local functions */
+local int gz_load OF((gz_statep, unsigned char *, unsigned, unsigned *));
+local int gz_avail OF((gz_statep));
+local int gz_look OF((gz_statep));
+local int gz_decomp OF((gz_statep));
+local int gz_fetch OF((gz_statep));
+local int gz_skip OF((gz_statep, z_off64_t));
+local z_size_t gz_read OF((gz_statep, voidp, z_size_t));
+
+/* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
+ state->fd, and update state->eof, state->err, and state->msg as appropriate.
+ This function needs to loop on read(), since read() is not guaranteed to
+ read the number of bytes requested, depending on the type of descriptor. */
+local int gz_load(state, buf, len, have)
+ gz_statep state;
+ unsigned char *buf;
+ unsigned len;
+ unsigned *have;
+{
+ int ret;
+ unsigned get, max = ((unsigned)-1 >> 2) + 1;
+
+ *have = 0;
+ do {
+ get = len - *have;
+ if (get > max)
+ get = max;
+ ret = read(state->fd, buf + *have, get);
+ if (ret <= 0)
+ break;
+ *have += (unsigned)ret;
+ } while (*have < len);
+ if (ret < 0) {
+ gz_error(state, Z_ERRNO, zstrerror());
+ return -1;
+ }
+ if (ret == 0)
+ state->eof = 1;
+ return 0;
+}
+
+/* Load up input buffer and set eof flag if last data loaded -- return -1 on
+ error, 0 otherwise. Note that the eof flag is set when the end of the input
+ file is reached, even though there may be unused data in the buffer. Once
+ that data has been used, no more attempts will be made to read the file.
+ If strm->avail_in != 0, then the current data is moved to the beginning of
+ the input buffer, and then the remainder of the buffer is loaded with the
+ available data from the input file. */
+local int gz_avail(state)
+ gz_statep state;
+{
+ unsigned got;
+ z_streamp strm = &(state->strm);
+
+ if (state->err != Z_OK && state->err != Z_BUF_ERROR)
+ return -1;
+ if (state->eof == 0) {
+ if (strm->avail_in) { /* copy what's there to the start */
+ unsigned char *p = state->in;
+ unsigned const char *q = strm->next_in;
+ unsigned n = strm->avail_in;
+ do {
+ *p++ = *q++;
+ } while (--n);
+ }
+ if (gz_load(state, state->in + strm->avail_in,
+ state->size - strm->avail_in, &got) == -1)
+ return -1;
+ strm->avail_in += got;
+ strm->next_in = state->in;
+ }
+ return 0;
+}
+
+/* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
+ If this is the first time in, allocate required memory. state->how will be
+ left unchanged if there is no more input data available, will be set to COPY
+ if there is no gzip header and direct copying will be performed, or it will
+ be set to GZIP for decompression. If direct copying, then leftover input
+ data from the input buffer will be copied to the output buffer. In that
+ case, all further file reads will be directly to either the output buffer or
+ a user buffer. If decompressing, the inflate state will be initialized.
+ gz_look() will return 0 on success or -1 on failure. */
+local int gz_look(state)
+ gz_statep state;
+{
+ z_streamp strm = &(state->strm);
+
+ /* allocate read buffers and inflate memory */
+ if (state->size == 0) {
+ /* allocate buffers */
+ state->in = (unsigned char *)malloc(state->want);
+ state->out = (unsigned char *)malloc(state->want << 1);
+ if (state->in == NULL || state->out == NULL) {
+ free(state->out);
+ free(state->in);
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+ state->size = state->want;
+
+ /* allocate inflate memory */
+ state->strm.zalloc = Z_NULL;
+ state->strm.zfree = Z_NULL;
+ state->strm.opaque = Z_NULL;
+ state->strm.avail_in = 0;
+ state->strm.next_in = Z_NULL;
+ if (inflateInit2(&(state->strm), 15 + 16) != Z_OK) { /* gunzip */
+ free(state->out);
+ free(state->in);
+ state->size = 0;
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+ }
+
+ /* get at least the magic bytes in the input buffer */
+ if (strm->avail_in < 2) {
+ if (gz_avail(state) == -1)
+ return -1;
+ if (strm->avail_in == 0)
+ return 0;
+ }
+
+ /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
+ a logical dilemma here when considering the case of a partially written
+ gzip file, to wit, if a single 31 byte is written, then we cannot tell
+ whether this is a single-byte file, or just a partially written gzip
+ file -- for here we assume that if a gzip file is being written, then
+ the header will be written in a single operation, so that reading a
+ single byte is sufficient indication that it is not a gzip file) */
+ if (strm->avail_in > 1 &&
+ strm->next_in[0] == 31 && strm->next_in[1] == 139) {
+ inflateReset(strm);
+ state->how = GZIP;
+ state->direct = 0;
+ return 0;
+ }
+
+ /* no gzip header -- if we were decoding gzip before, then this is trailing
+ garbage. Ignore the trailing garbage and finish. */
+ if (state->direct == 0) {
+ strm->avail_in = 0;
+ state->eof = 1;
+ state->x.have = 0;
+ return 0;
+ }
+
+ /* doing raw i/o, copy any leftover input to output -- this assumes that
+ the output buffer is larger than the input buffer, which also assures
+ space for gzungetc() */
+ state->x.next = state->out;
+ if (strm->avail_in) {
+ memcpy(state->x.next, strm->next_in, strm->avail_in);
+ state->x.have = strm->avail_in;
+ strm->avail_in = 0;
+ }
+ state->how = COPY;
+ state->direct = 1;
+ return 0;
+}
+
+/* Decompress from input to the provided next_out and avail_out in the state.
+ On return, state->x.have and state->x.next point to the just decompressed
+ data. If the gzip stream completes, state->how is reset to LOOK to look for
+ the next gzip stream or raw data, once state->x.have is depleted. Returns 0
+ on success, -1 on failure. */
+local int gz_decomp(state)
+ gz_statep state;
+{
+ int ret = Z_OK;
+ unsigned had;
+ z_streamp strm = &(state->strm);
+
+ /* fill output buffer up to end of deflate stream */
+ had = strm->avail_out;
+ do {
+ /* get more input for inflate() */
+ if (strm->avail_in == 0 && gz_avail(state) == -1)
+ return -1;
+ if (strm->avail_in == 0) {
+ gz_error(state, Z_BUF_ERROR, "unexpected end of file");
+ break;
+ }
+
+ /* decompress and handle errors */
+ ret = inflate(strm, Z_NO_FLUSH);
+ if (ret == Z_STREAM_ERROR || ret == Z_NEED_DICT) {
+ gz_error(state, Z_STREAM_ERROR,
+ "internal error: inflate stream corrupt");
+ return -1;
+ }
+ if (ret == Z_MEM_ERROR) {
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+ if (ret == Z_DATA_ERROR) { /* deflate stream invalid */
+ gz_error(state, Z_DATA_ERROR,
+ strm->msg == NULL ? "compressed data error" : strm->msg);
+ return -1;
+ }
+ } while (strm->avail_out && ret != Z_STREAM_END);
+
+ /* update available output */
+ state->x.have = had - strm->avail_out;
+ state->x.next = strm->next_out - state->x.have;
+
+ /* if the gzip stream completed successfully, look for another */
+ if (ret == Z_STREAM_END)
+ state->how = LOOK;
+
+ /* good decompression */
+ return 0;
+}
+
+/* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
+ Data is either copied from the input file or decompressed from the input
+ file depending on state->how. If state->how is LOOK, then a gzip header is
+ looked for to determine whether to copy or decompress. Returns -1 on error,
+ otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
+ end of the input file has been reached and all data has been processed. */
+local int gz_fetch(state)
+ gz_statep state;
+{
+ z_streamp strm = &(state->strm);
+
+ do {
+ switch(state->how) {
+ case LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
+ if (gz_look(state) == -1)
+ return -1;
+ if (state->how == LOOK)
+ return 0;
+ break;
+ case COPY: /* -> COPY */
+ if (gz_load(state, state->out, state->size << 1, &(state->x.have))
+ == -1)
+ return -1;
+ state->x.next = state->out;
+ return 0;
+ case GZIP: /* -> GZIP or LOOK (if end of gzip stream) */
+ strm->avail_out = state->size << 1;
+ strm->next_out = state->out;
+ if (gz_decomp(state) == -1)
+ return -1;
+ }
+ } while (state->x.have == 0 && (!state->eof || strm->avail_in));
+ return 0;
+}
+
+/* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
+local int gz_skip(state, len)
+ gz_statep state;
+ z_off64_t len;
+{
+ unsigned n;
+
+ /* skip over len bytes or reach end-of-file, whichever comes first */
+ while (len)
+ /* skip over whatever is in output buffer */
+ if (state->x.have) {
+ n = GT_OFF(state->x.have) || (z_off64_t)state->x.have > len ?
+ (unsigned)len : state->x.have;
+ state->x.have -= n;
+ state->x.next += n;
+ state->x.pos += n;
+ len -= n;
+ }
+
+ /* output buffer empty -- return if we're at the end of the input */
+ else if (state->eof && state->strm.avail_in == 0)
+ break;
+
+ /* need more data to skip -- load up output buffer */
+ else {
+ /* get more output, looking for header if required */
+ if (gz_fetch(state) == -1)
+ return -1;
+ }
+ return 0;
+}
+
+/* Read len bytes into buf from file, or less than len up to the end of the
+ input. Return the number of bytes read. If zero is returned, either the
+ end of file was reached, or there was an error. state->err must be
+ consulted in that case to determine which. */
+local z_size_t gz_read(state, buf, len)
+ gz_statep state;
+ voidp buf;
+ z_size_t len;
+{
+ z_size_t got;
+ unsigned n;
+
+ /* if len is zero, avoid unnecessary operations */
+ if (len == 0)
+ return 0;
+
+ /* process a skip request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_skip(state, state->skip) == -1)
+ return 0;
+ }
+
+ /* get len bytes to buf, or less than len if at the end */
+ got = 0;
+ do {
+ /* set n to the maximum amount of len that fits in an unsigned int */
+ n = -1;
+ if (n > len)
+ n = len;
+
+ /* first just try copying data from the output buffer */
+ if (state->x.have) {
+ if (state->x.have < n)
+ n = state->x.have;
+ memcpy(buf, state->x.next, n);
+ state->x.next += n;
+ state->x.have -= n;
+ }
+
+ /* output buffer empty -- return if we're at the end of the input */
+ else if (state->eof && state->strm.avail_in == 0) {
+ state->past = 1; /* tried to read past end */
+ break;
+ }
+
+ /* need output data -- for small len or new stream load up our output
+ buffer */
+ else if (state->how == LOOK || n < (state->size << 1)) {
+ /* get more output, looking for header if required */
+ if (gz_fetch(state) == -1)
+ return 0;
+ continue; /* no progress yet -- go back to copy above */
+ /* the copy above assures that we will leave with space in the
+ output buffer, allowing at least one gzungetc() to succeed */
+ }
+
+ /* large len -- read directly into user buffer */
+ else if (state->how == COPY) { /* read directly */
+ if (gz_load(state, (unsigned char *)buf, n, &n) == -1)
+ return 0;
+ }
+
+ /* large len -- decompress directly into user buffer */
+ else { /* state->how == GZIP */
+ state->strm.avail_out = n;
+ state->strm.next_out = (unsigned char *)buf;
+ if (gz_decomp(state) == -1)
+ return 0;
+ n = state->x.have;
+ state->x.have = 0;
+ }
+
+ /* update progress */
+ len -= n;
+ buf = (char *)buf + n;
+ got += n;
+ state->x.pos += n;
+ } while (len);
+
+ /* return number of bytes read into user buffer */
+ return got;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzread(file, buf, len)
+ gzFile file;
+ voidp buf;
+ unsigned len;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return -1;
+
+ /* since an int is returned, make sure len fits in one, otherwise return
+ with an error (this avoids a flaw in the interface) */
+ if ((int)len < 0) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in an int");
+ return -1;
+ }
+
+ /* read len or fewer bytes to buf */
+ len = gz_read(state, buf, len);
+
+ /* check for an error */
+ if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR)
+ return -1;
+
+ /* return the number of bytes read (this is assured to fit in an int) */
+ return (int)len;
+}
+
+/* -- see zlib.h -- */
+z_size_t ZEXPORT gzfread(buf, size, nitems, file)
+ voidp buf;
+ z_size_t size;
+ z_size_t nitems;
+ gzFile file;
+{
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return 0;
+
+ /* compute bytes to read -- error on overflow */
+ len = nitems * size;
+ if (size && len / size != nitems) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
+ return 0;
+ }
+
+ /* read len or fewer bytes to buf, return the number of full items read */
+ return len ? gz_read(state, buf, len) / size : 0;
+}
+
+/* -- see zlib.h -- */
+#ifdef Z_PREFIX_SET
+# undef z_gzgetc
+#else
+# undef gzgetc
+#endif
+int ZEXPORT gzgetc(file)
+ gzFile file;
+{
+ int ret;
+ unsigned char buf[1];
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return -1;
+
+ /* try output buffer (no need to check for skip request) */
+ if (state->x.have) {
+ state->x.have--;
+ state->x.pos++;
+ return *(state->x.next)++;
+ }
+
+ /* nothing there -- try gz_read() */
+ ret = gz_read(state, buf, 1);
+ return ret < 1 ? -1 : buf[0];
+}
+
+int ZEXPORT gzgetc_(file)
+gzFile file;
+{
+ return gzgetc(file);
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzungetc(c, file)
+ int c;
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return -1;
+
+ /* process a skip request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_skip(state, state->skip) == -1)
+ return -1;
+ }
+
+ /* can't push EOF */
+ if (c < 0)
+ return -1;
+
+ /* if output buffer empty, put byte at end (allows more pushing) */
+ if (state->x.have == 0) {
+ state->x.have = 1;
+ state->x.next = state->out + (state->size << 1) - 1;
+ state->x.next[0] = (unsigned char)c;
+ state->x.pos--;
+ state->past = 0;
+ return c;
+ }
+
+ /* if no room, give up (must have already done a gzungetc()) */
+ if (state->x.have == (state->size << 1)) {
+ gz_error(state, Z_DATA_ERROR, "out of room to push characters");
+ return -1;
+ }
+
+ /* slide output data if needed and insert byte before existing data */
+ if (state->x.next == state->out) {
+ unsigned char *src = state->out + state->x.have;
+ unsigned char *dest = state->out + (state->size << 1);
+ while (src > state->out)
+ *--dest = *--src;
+ state->x.next = dest;
+ }
+ state->x.have++;
+ state->x.next--;
+ state->x.next[0] = (unsigned char)c;
+ state->x.pos--;
+ state->past = 0;
+ return c;
+}
+
+/* -- see zlib.h -- */
+char * ZEXPORT gzgets(file, buf, len)
+ gzFile file;
+ char *buf;
+ int len;
+{
+ unsigned left, n;
+ char *str;
+ unsigned char *eol;
+ gz_statep state;
+
+ /* check parameters and get internal structure */
+ if (file == NULL || buf == NULL || len < 1)
+ return NULL;
+ state = (gz_statep)file;
+
+ /* check that we're reading and that there's no (serious) error */
+ if (state->mode != GZ_READ ||
+ (state->err != Z_OK && state->err != Z_BUF_ERROR))
+ return NULL;
+
+ /* process a skip request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_skip(state, state->skip) == -1)
+ return NULL;
+ }
+
+ /* copy output bytes up to new line or len - 1, whichever comes first --
+ append a terminating zero to the string (we don't check for a zero in
+ the contents, let the user worry about that) */
+ str = buf;
+ left = (unsigned)len - 1;
+ if (left) do {
+ /* assure that something is in the output buffer */
+ if (state->x.have == 0 && gz_fetch(state) == -1)
+ return NULL; /* error */
+ if (state->x.have == 0) { /* end of file */
+ state->past = 1; /* read past end */
+ break; /* return what we have */
+ }
+
+ /* look for end-of-line in current output buffer */
+ n = state->x.have > left ? left : state->x.have;
+ eol = (unsigned char *)memchr(state->x.next, '\n', n);
+ if (eol != NULL)
+ n = (unsigned)(eol - state->x.next) + 1;
+
+ /* copy through end-of-line, or remainder if not found */
+ memcpy(buf, state->x.next, n);
+ state->x.have -= n;
+ state->x.next += n;
+ state->x.pos += n;
+ left -= n;
+ buf += n;
+ } while (left && eol == NULL);
+
+ /* return terminated string, or if nothing, end of file */
+ if (buf == str)
+ return NULL;
+ buf[0] = 0;
+ return str;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzdirect(file)
+ gzFile file;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* if the state is not known, but we can find out, then do so (this is
+ mainly for right after a gzopen() or gzdopen()) */
+ if (state->mode == GZ_READ && state->how == LOOK && state->x.have == 0)
+ (void)gz_look(state);
+
+ /* return 1 if transparent, 0 if processing a gzip stream */
+ return state->direct;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzclose_r(file)
+ gzFile file;
+{
+ int ret, err;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+
+ /* check that we're reading */
+ if (state->mode != GZ_READ)
+ return Z_STREAM_ERROR;
+
+ /* free memory and close file */
+ if (state->size) {
+ inflateEnd(&(state->strm));
+ free(state->out);
+ free(state->in);
+ }
+ err = state->err == Z_BUF_ERROR ? Z_BUF_ERROR : Z_OK;
+ gz_error(state, Z_OK, NULL);
+ free(state->path);
+ ret = close(state->fd);
+ free(state);
+ return ret ? Z_ERRNO : err;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzwrite.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzwrite.c
new file mode 100644
index 000000000..c7b5651d7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/gzwrite.c
@@ -0,0 +1,665 @@
+/* gzwrite.c -- zlib functions for writing gzip files
+ * Copyright (C) 2004-2017 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "gzguts.h"
+
+/* Local functions */
+local int gz_init OF((gz_statep));
+local int gz_comp OF((gz_statep, int));
+local int gz_zero OF((gz_statep, z_off64_t));
+local z_size_t gz_write OF((gz_statep, voidpc, z_size_t));
+
+/* Initialize state for writing a gzip file. Mark initialization by setting
+ state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
+ success. */
+local int gz_init(state)
+ gz_statep state;
+{
+ int ret;
+ z_streamp strm = &(state->strm);
+
+ /* allocate input buffer (double size for gzprintf) */
+ state->in = (unsigned char *)malloc(state->want << 1);
+ if (state->in == NULL) {
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+
+ /* only need output buffer and deflate state if compressing */
+ if (!state->direct) {
+ /* allocate output buffer */
+ state->out = (unsigned char *)malloc(state->want);
+ if (state->out == NULL) {
+ free(state->in);
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+
+ /* allocate deflate memory, set up for gzip compression */
+ strm->zalloc = Z_NULL;
+ strm->zfree = Z_NULL;
+ strm->opaque = Z_NULL;
+ ret = deflateInit2(strm, state->level, Z_DEFLATED,
+ MAX_WBITS + 16, DEF_MEM_LEVEL, state->strategy);
+ if (ret != Z_OK) {
+ free(state->out);
+ free(state->in);
+ gz_error(state, Z_MEM_ERROR, "out of memory");
+ return -1;
+ }
+ strm->next_in = NULL;
+ }
+
+ /* mark state as initialized */
+ state->size = state->want;
+
+ /* initialize write buffer if compressing */
+ if (!state->direct) {
+ strm->avail_out = state->size;
+ strm->next_out = state->out;
+ state->x.next = strm->next_out;
+ }
+ return 0;
+}
+
+/* Compress whatever is at avail_in and next_in and write to the output file.
+ Return -1 if there is an error writing to the output file or if gz_init()
+ fails to allocate memory, otherwise 0. flush is assumed to be a valid
+ deflate() flush value. If flush is Z_FINISH, then the deflate() state is
+ reset to start a new gzip stream. If gz->direct is true, then simply write
+ to the output file without compressing, and ignore flush. */
+local int gz_comp(state, flush)
+ gz_statep state;
+ int flush;
+{
+ int ret, writ;
+ unsigned have, put, max = ((unsigned)-1 >> 2) + 1;
+ z_streamp strm = &(state->strm);
+
+ /* allocate memory if this is the first time through */
+ if (state->size == 0 && gz_init(state) == -1)
+ return -1;
+
+ /* write directly if requested */
+ if (state->direct) {
+ while (strm->avail_in) {
+ put = strm->avail_in > max ? max : strm->avail_in;
+ writ = write(state->fd, strm->next_in, put);
+ if (writ < 0) {
+ gz_error(state, Z_ERRNO, zstrerror());
+ return -1;
+ }
+ strm->avail_in -= (unsigned)writ;
+ strm->next_in += writ;
+ }
+ return 0;
+ }
+
+ /* run deflate() on provided input until it produces no more output */
+ ret = Z_OK;
+ do {
+ /* write out current buffer contents if full, or if flushing, but if
+ doing Z_FINISH then don't write until we get to Z_STREAM_END */
+ if (strm->avail_out == 0 || (flush != Z_NO_FLUSH &&
+ (flush != Z_FINISH || ret == Z_STREAM_END))) {
+ while (strm->next_out > state->x.next) {
+ put = strm->next_out - state->x.next > (int)max ? max :
+ (unsigned)(strm->next_out - state->x.next);
+ writ = write(state->fd, state->x.next, put);
+ if (writ < 0) {
+ gz_error(state, Z_ERRNO, zstrerror());
+ return -1;
+ }
+ state->x.next += writ;
+ }
+ if (strm->avail_out == 0) {
+ strm->avail_out = state->size;
+ strm->next_out = state->out;
+ state->x.next = state->out;
+ }
+ }
+
+ /* compress */
+ have = strm->avail_out;
+ ret = deflate(strm, flush);
+ if (ret == Z_STREAM_ERROR) {
+ gz_error(state, Z_STREAM_ERROR,
+ "internal error: deflate stream corrupt");
+ return -1;
+ }
+ have -= strm->avail_out;
+ } while (have);
+
+ /* if that completed a deflate stream, allow another to start */
+ if (flush == Z_FINISH)
+ deflateReset(strm);
+
+ /* all done, no errors */
+ return 0;
+}
+
+/* Compress len zeros to output. Return -1 on a write error or memory
+ allocation failure by gz_comp(), or 0 on success. */
+local int gz_zero(state, len)
+ gz_statep state;
+ z_off64_t len;
+{
+ int first;
+ unsigned n;
+ z_streamp strm = &(state->strm);
+
+ /* consume whatever's left in the input buffer */
+ if (strm->avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
+ return -1;
+
+ /* compress len zeros (len guaranteed > 0) */
+ first = 1;
+ while (len) {
+ n = GT_OFF(state->size) || (z_off64_t)state->size > len ?
+ (unsigned)len : state->size;
+ if (first) {
+ memset(state->in, 0, n);
+ first = 0;
+ }
+ strm->avail_in = n;
+ strm->next_in = state->in;
+ state->x.pos += n;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return -1;
+ len -= n;
+ }
+ return 0;
+}
+
+/* Write len bytes from buf to file. Return the number of bytes written. If
+ the returned value is less than len, then there was an error. */
+local z_size_t gz_write(state, buf, len)
+ gz_statep state;
+ voidpc buf;
+ z_size_t len;
+{
+ z_size_t put = len;
+
+ /* if len is zero, avoid unnecessary operations */
+ if (len == 0)
+ return 0;
+
+ /* allocate memory if this is the first time through */
+ if (state->size == 0 && gz_init(state) == -1)
+ return 0;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return 0;
+ }
+
+ /* for small len, copy to input buffer, otherwise compress directly */
+ if (len < state->size) {
+ /* copy to input buffer, compress when full */
+ do {
+ unsigned have, copy;
+
+ if (state->strm.avail_in == 0)
+ state->strm.next_in = state->in;
+ have = (unsigned)((state->strm.next_in + state->strm.avail_in) -
+ state->in);
+ copy = state->size - have;
+ if (copy > len)
+ copy = len;
+ memcpy(state->in + have, buf, copy);
+ state->strm.avail_in += copy;
+ state->x.pos += copy;
+ buf = (const char *)buf + copy;
+ len -= copy;
+ if (len && gz_comp(state, Z_NO_FLUSH) == -1)
+ return 0;
+ } while (len);
+ }
+ else {
+ /* consume whatever's left in the input buffer */
+ if (state->strm.avail_in && gz_comp(state, Z_NO_FLUSH) == -1)
+ return 0;
+
+ /* directly compress user buffer to file */
+ state->strm.next_in = (z_const Bytef *)buf;
+ do {
+ unsigned n = (unsigned)-1;
+ if (n > len)
+ n = len;
+ state->strm.avail_in = n;
+ state->x.pos += n;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return 0;
+ len -= n;
+ } while (len);
+ }
+
+ /* input was all buffered or compressed */
+ return put;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzwrite(file, buf, len)
+ gzFile file;
+ voidpc buf;
+ unsigned len;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return 0;
+
+ /* since an int is returned, make sure len fits in one, otherwise return
+ with an error (this avoids a flaw in the interface) */
+ if ((int)len < 0) {
+ gz_error(state, Z_DATA_ERROR, "requested length does not fit in int");
+ return 0;
+ }
+
+ /* write len bytes from buf (the return value will fit in an int) */
+ return (int)gz_write(state, buf, len);
+}
+
+/* -- see zlib.h -- */
+z_size_t ZEXPORT gzfwrite(buf, size, nitems, file)
+ voidpc buf;
+ z_size_t size;
+ z_size_t nitems;
+ gzFile file;
+{
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return 0;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return 0;
+
+ /* compute bytes to read -- error on overflow */
+ len = nitems * size;
+ if (size && len / size != nitems) {
+ gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
+ return 0;
+ }
+
+ /* write len bytes to buf, return the number of full items written */
+ return len ? gz_write(state, buf, len) / size : 0;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzputc(file, c)
+ gzFile file;
+ int c;
+{
+ unsigned have;
+ unsigned char buf[1];
+ gz_statep state;
+ z_streamp strm;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+ strm = &(state->strm);
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return -1;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return -1;
+ }
+
+ /* try writing to input buffer for speed (state->size == 0 if buffer not
+ initialized) */
+ if (state->size) {
+ if (strm->avail_in == 0)
+ strm->next_in = state->in;
+ have = (unsigned)((strm->next_in + strm->avail_in) - state->in);
+ if (have < state->size) {
+ state->in[have] = (unsigned char)c;
+ strm->avail_in++;
+ state->x.pos++;
+ return c & 0xff;
+ }
+ }
+
+ /* no room in buffer or not initialized, use gz_write() */
+ buf[0] = (unsigned char)c;
+ if (gz_write(state, buf, 1) != 1)
+ return -1;
+ return c & 0xff;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzputs(file, str)
+ gzFile file;
+ const char *str;
+{
+ int ret;
+ z_size_t len;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return -1;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return -1;
+
+ /* write string */
+ len = strlen(str);
+ ret = gz_write(state, str, len);
+ return ret == 0 && len != 0 ? -1 : ret;
+}
+
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+#include <stdarg.h>
+
+/* -- see zlib.h -- */
+int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va)
+{
+ int len;
+ unsigned left;
+ char *next;
+ gz_statep state;
+ z_streamp strm;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+ strm = &(state->strm);
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return Z_STREAM_ERROR;
+
+ /* make sure we have some buffer space */
+ if (state->size == 0 && gz_init(state) == -1)
+ return state->err;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return state->err;
+ }
+
+ /* do the printf() into the input buffer, put length in len -- the input
+ buffer is double-sized just for this function, so there is guaranteed to
+ be state->size bytes available after the current contents */
+ if (strm->avail_in == 0)
+ strm->next_in = state->in;
+ next = (char *)(state->in + (strm->next_in - state->in) + strm->avail_in);
+ next[state->size - 1] = 0;
+#ifdef NO_vsnprintf
+# ifdef HAS_vsprintf_void
+ (void)vsprintf(next, format, va);
+ for (len = 0; len < state->size; len++)
+ if (next[len] == 0) break;
+# else
+ len = vsprintf(next, format, va);
+# endif
+#else
+# ifdef HAS_vsnprintf_void
+ (void)vsnprintf(next, state->size, format, va);
+ len = strlen(next);
+# else
+ len = vsnprintf(next, state->size, format, va);
+# endif
+#endif
+
+ /* check that printf() results fit in buffer */
+ if (len == 0 || (unsigned)len >= state->size || next[state->size - 1] != 0)
+ return 0;
+
+ /* update buffer and position, compress first half if past that */
+ strm->avail_in += (unsigned)len;
+ state->x.pos += len;
+ if (strm->avail_in >= state->size) {
+ left = strm->avail_in - state->size;
+ strm->avail_in = state->size;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return state->err;
+ memcpy(state->in, state->in + state->size, left);
+ strm->next_in = state->in;
+ strm->avail_in = left;
+ }
+ return len;
+}
+
+int ZEXPORTVA gzprintf(gzFile file, const char *format, ...)
+{
+ va_list va;
+ int ret;
+
+ va_start(va, format);
+ ret = gzvprintf(file, format, va);
+ va_end(va);
+ return ret;
+}
+
+#else /* !STDC && !Z_HAVE_STDARG_H */
+
+/* -- see zlib.h -- */
+int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
+ a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
+ gzFile file;
+ const char *format;
+ int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
+ a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
+{
+ unsigned len, left;
+ char *next;
+ gz_statep state;
+ z_streamp strm;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+ strm = &(state->strm);
+
+ /* check that can really pass pointer in ints */
+ if (sizeof(int) != sizeof(void *))
+ return Z_STREAM_ERROR;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return Z_STREAM_ERROR;
+
+ /* make sure we have some buffer space */
+ if (state->size == 0 && gz_init(state) == -1)
+ return state->error;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return state->error;
+ }
+
+ /* do the printf() into the input buffer, put length in len -- the input
+ buffer is double-sized just for this function, so there is guaranteed to
+ be state->size bytes available after the current contents */
+ if (strm->avail_in == 0)
+ strm->next_in = state->in;
+ next = (char *)(strm->next_in + strm->avail_in);
+ next[state->size - 1] = 0;
+#ifdef NO_snprintf
+# ifdef HAS_sprintf_void
+ sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
+ a13, a14, a15, a16, a17, a18, a19, a20);
+ for (len = 0; len < size; len++)
+ if (next[len] == 0)
+ break;
+# else
+ len = sprintf(next, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
+ a12, a13, a14, a15, a16, a17, a18, a19, a20);
+# endif
+#else
+# ifdef HAS_snprintf_void
+ snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8, a9,
+ a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+ len = strlen(next);
+# else
+ len = snprintf(next, state->size, format, a1, a2, a3, a4, a5, a6, a7, a8,
+ a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+# endif
+#endif
+
+ /* check that printf() results fit in buffer */
+ if (len == 0 || len >= state->size || next[state->size - 1] != 0)
+ return 0;
+
+ /* update buffer and position, compress first half if past that */
+ strm->avail_in += len;
+ state->x.pos += len;
+ if (strm->avail_in >= state->size) {
+ left = strm->avail_in - state->size;
+ strm->avail_in = state->size;
+ if (gz_comp(state, Z_NO_FLUSH) == -1)
+ return state->err;
+ memcpy(state->in, state->in + state->size, left);
+ strm->next_in = state->in;
+ strm->avail_in = left;
+ }
+ return (int)len;
+}
+
+#endif
+
+/* -- see zlib.h -- */
+int ZEXPORT gzflush(file, flush)
+ gzFile file;
+ int flush;
+{
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return Z_STREAM_ERROR;
+
+ /* check flush parameter */
+ if (flush < 0 || flush > Z_FINISH)
+ return Z_STREAM_ERROR;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return state->err;
+ }
+
+ /* compress remaining data with requested flush */
+ (void)gz_comp(state, flush);
+ return state->err;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzsetparams(file, level, strategy)
+ gzFile file;
+ int level;
+ int strategy;
+{
+ gz_statep state;
+ z_streamp strm;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+ strm = &(state->strm);
+
+ /* check that we're writing and that there's no error */
+ if (state->mode != GZ_WRITE || state->err != Z_OK)
+ return Z_STREAM_ERROR;
+
+ /* if no change is requested, then do nothing */
+ if (level == state->level && strategy == state->strategy)
+ return Z_OK;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ return state->err;
+ }
+
+ /* change compression parameters for subsequent input */
+ if (state->size) {
+ /* flush previous input with previous parameters before changing */
+ if (strm->avail_in && gz_comp(state, Z_BLOCK) == -1)
+ return state->err;
+ deflateParams(strm, level, strategy);
+ }
+ state->level = level;
+ state->strategy = strategy;
+ return Z_OK;
+}
+
+/* -- see zlib.h -- */
+int ZEXPORT gzclose_w(file)
+ gzFile file;
+{
+ int ret = Z_OK;
+ gz_statep state;
+
+ /* get internal structure */
+ if (file == NULL)
+ return Z_STREAM_ERROR;
+ state = (gz_statep)file;
+
+ /* check that we're writing */
+ if (state->mode != GZ_WRITE)
+ return Z_STREAM_ERROR;
+
+ /* check for seek request */
+ if (state->seek) {
+ state->seek = 0;
+ if (gz_zero(state, state->skip) == -1)
+ ret = state->err;
+ }
+
+ /* flush, free memory, and close file */
+ if (gz_comp(state, Z_FINISH) == -1)
+ ret = state->err;
+ if (state->size) {
+ if (!state->direct) {
+ (void)deflateEnd(&(state->strm));
+ free(state->out);
+ }
+ free(state->in);
+ }
+ gz_error(state, Z_OK, NULL);
+ free(state->path);
+ if (close(state->fd) == -1)
+ ret = Z_ERRNO;
+ free(state);
+ return ret;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/infback.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/infback.c
new file mode 100644
index 000000000..59679ecbf
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/infback.c
@@ -0,0 +1,640 @@
+/* infback.c -- inflate using a call-back interface
+ * Copyright (C) 1995-2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ This code is largely copied from inflate.c. Normally either infback.o or
+ inflate.o would be linked into an application--not both. The interface
+ with inffast.c is retained so that optimized assembler-coded versions of
+ inflate_fast() can be used with either inflate.c or infback.c.
+ */
+
+#include "zutil.h"
+#include "inftrees.h"
+#include "inflate.h"
+#include "inffast.h"
+
+/* function prototypes */
+local void fixedtables OF((struct inflate_state FAR *state));
+
+/*
+ strm provides memory allocation functions in zalloc and zfree, or
+ Z_NULL to use the library memory allocation functions.
+
+ windowBits is in the range 8..15, and window is a user-supplied
+ window and output buffer that is 2**windowBits bytes.
+ */
+int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
+z_streamp strm;
+int windowBits;
+unsigned char FAR *window;
+const char *version;
+int stream_size;
+{
+ struct inflate_state FAR *state;
+
+ if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
+ stream_size != (int)(sizeof(z_stream)))
+ return Z_VERSION_ERROR;
+ if (strm == Z_NULL || window == Z_NULL ||
+ windowBits < 8 || windowBits > 15)
+ return Z_STREAM_ERROR;
+ strm->msg = Z_NULL; /* in case we return an error */
+ if (strm->zalloc == (alloc_func)0) {
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zalloc = zcalloc;
+ strm->opaque = (voidpf)0;
+#endif
+ }
+ if (strm->zfree == (free_func)0)
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zfree = zcfree;
+#endif
+ state = (struct inflate_state FAR *)ZALLOC(strm, 1,
+ sizeof(struct inflate_state));
+ if (state == Z_NULL) return Z_MEM_ERROR;
+ Tracev((stderr, "inflate: allocated\n"));
+ strm->state = (struct internal_state FAR *)state;
+ state->dmax = 32768U;
+ state->wbits = (uInt)windowBits;
+ state->wsize = 1U << windowBits;
+ state->window = window;
+ state->wnext = 0;
+ state->whave = 0;
+ return Z_OK;
+}
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding. Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter. This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time. However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+local void fixedtables(state)
+struct inflate_state FAR *state;
+{
+#ifdef BUILDFIXED
+ static int virgin = 1;
+ static code *lenfix, *distfix;
+ static code fixed[544];
+
+ /* build fixed huffman tables if first call (may not be thread safe) */
+ if (virgin) {
+ unsigned sym, bits;
+ static code *next;
+
+ /* literal/length table */
+ sym = 0;
+ while (sym < 144) state->lens[sym++] = 8;
+ while (sym < 256) state->lens[sym++] = 9;
+ while (sym < 280) state->lens[sym++] = 7;
+ while (sym < 288) state->lens[sym++] = 8;
+ next = fixed;
+ lenfix = next;
+ bits = 9;
+ inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
+
+ /* distance table */
+ sym = 0;
+ while (sym < 32) state->lens[sym++] = 5;
+ distfix = next;
+ bits = 5;
+ inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
+
+ /* do this just once */
+ virgin = 0;
+ }
+#else /* !BUILDFIXED */
+# include "inffixed.h"
+#endif /* BUILDFIXED */
+ state->lencode = lenfix;
+ state->lenbits = 9;
+ state->distcode = distfix;
+ state->distbits = 5;
+}
+
+/* Macros for inflateBack(): */
+
+/* Load returned state from inflate_fast() */
+#define LOAD() \
+ do { \
+ put = strm->next_out; \
+ left = strm->avail_out; \
+ next = strm->next_in; \
+ have = strm->avail_in; \
+ hold = state->hold; \
+ bits = state->bits; \
+ } while (0)
+
+/* Set state from registers for inflate_fast() */
+#define RESTORE() \
+ do { \
+ strm->next_out = put; \
+ strm->avail_out = left; \
+ strm->next_in = next; \
+ strm->avail_in = have; \
+ state->hold = hold; \
+ state->bits = bits; \
+ } while (0)
+
+/* Clear the input bit accumulator */
+#define INITBITS() \
+ do { \
+ hold = 0; \
+ bits = 0; \
+ } while (0)
+
+/* Assure that some input is available. If input is requested, but denied,
+ then return a Z_BUF_ERROR from inflateBack(). */
+#define PULL() \
+ do { \
+ if (have == 0) { \
+ have = in(in_desc, &next); \
+ if (have == 0) { \
+ next = Z_NULL; \
+ ret = Z_BUF_ERROR; \
+ goto inf_leave; \
+ } \
+ } \
+ } while (0)
+
+/* Get a byte of input into the bit accumulator, or return from inflateBack()
+ with an error if there is no input available. */
+#define PULLBYTE() \
+ do { \
+ PULL(); \
+ have--; \
+ hold += (unsigned long)(*next++) << bits; \
+ bits += 8; \
+ } while (0)
+
+/* Assure that there are at least n bits in the bit accumulator. If there is
+ not enough available input to do that, then return from inflateBack() with
+ an error. */
+#define NEEDBITS(n) \
+ do { \
+ while (bits < (unsigned)(n)) \
+ PULLBYTE(); \
+ } while (0)
+
+/* Return the low n bits of the bit accumulator (n < 16) */
+#define BITS(n) \
+ ((unsigned)hold & ((1U << (n)) - 1))
+
+/* Remove n bits from the bit accumulator */
+#define DROPBITS(n) \
+ do { \
+ hold >>= (n); \
+ bits -= (unsigned)(n); \
+ } while (0)
+
+/* Remove zero to seven bits as needed to go to a byte boundary */
+#define BYTEBITS() \
+ do { \
+ hold >>= bits & 7; \
+ bits -= bits & 7; \
+ } while (0)
+
+/* Assure that some output space is available, by writing out the window
+ if it's full. If the write fails, return from inflateBack() with a
+ Z_BUF_ERROR. */
+#define ROOM() \
+ do { \
+ if (left == 0) { \
+ put = state->window; \
+ left = state->wsize; \
+ state->whave = left; \
+ if (out(out_desc, put, left)) { \
+ ret = Z_BUF_ERROR; \
+ goto inf_leave; \
+ } \
+ } \
+ } while (0)
+
+/*
+ strm provides the memory allocation functions and window buffer on input,
+ and provides information on the unused input on return. For Z_DATA_ERROR
+ returns, strm will also provide an error message.
+
+ in() and out() are the call-back input and output functions. When
+ inflateBack() needs more input, it calls in(). When inflateBack() has
+ filled the window with output, or when it completes with data in the
+ window, it calls out() to write out the data. The application must not
+ change the provided input until in() is called again or inflateBack()
+ returns. The application must not change the window/output buffer until
+ inflateBack() returns.
+
+ in() and out() are called with a descriptor parameter provided in the
+ inflateBack() call. This parameter can be a structure that provides the
+ information required to do the read or write, as well as accumulated
+ information on the input and output such as totals and check values.
+
+ in() should return zero on failure. out() should return non-zero on
+ failure. If either in() or out() fails, than inflateBack() returns a
+ Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
+ was in() or out() that caused in the error. Otherwise, inflateBack()
+ returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
+ error, or Z_MEM_ERROR if it could not allocate memory for the state.
+ inflateBack() can also return Z_STREAM_ERROR if the input parameters
+ are not correct, i.e. strm is Z_NULL or the state was not initialized.
+ */
+int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
+z_streamp strm;
+in_func in;
+void FAR *in_desc;
+out_func out;
+void FAR *out_desc;
+{
+ struct inflate_state FAR *state;
+ z_const unsigned char FAR *next; /* next input */
+ unsigned char FAR *put; /* next output */
+ unsigned have, left; /* available input and output */
+ unsigned long hold; /* bit buffer */
+ unsigned bits; /* bits in bit buffer */
+ unsigned copy; /* number of stored or match bytes to copy */
+ unsigned char FAR *from; /* where to copy match bytes from */
+ code here; /* current decoding table entry */
+ code last; /* parent table entry */
+ unsigned len; /* length to copy for repeats, bits to drop */
+ int ret; /* return code */
+ static const unsigned short order[19] = /* permutation of code lengths */
+ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
+
+ /* Check that the strm exists and that the state was initialized */
+ if (strm == Z_NULL || strm->state == Z_NULL)
+ return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+
+ /* Reset the state */
+ strm->msg = Z_NULL;
+ state->mode = TYPE;
+ state->last = 0;
+ state->whave = 0;
+ next = strm->next_in;
+ have = next != Z_NULL ? strm->avail_in : 0;
+ hold = 0;
+ bits = 0;
+ put = state->window;
+ left = state->wsize;
+
+ /* Inflate until end of block marked as last */
+ for (;;)
+ switch (state->mode) {
+ case TYPE:
+ /* determine and dispatch block type */
+ if (state->last) {
+ BYTEBITS();
+ state->mode = DONE;
+ break;
+ }
+ NEEDBITS(3);
+ state->last = BITS(1);
+ DROPBITS(1);
+ switch (BITS(2)) {
+ case 0: /* stored block */
+ Tracev((stderr, "inflate: stored block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = STORED;
+ break;
+ case 1: /* fixed block */
+ fixedtables(state);
+ Tracev((stderr, "inflate: fixed codes block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = LEN; /* decode codes */
+ break;
+ case 2: /* dynamic block */
+ Tracev((stderr, "inflate: dynamic codes block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = TABLE;
+ break;
+ case 3:
+ strm->msg = (char *)"invalid block type";
+ state->mode = BAD;
+ }
+ DROPBITS(2);
+ break;
+
+ case STORED:
+ /* get and verify stored block length */
+ BYTEBITS(); /* go to byte boundary */
+ NEEDBITS(32);
+ if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
+ strm->msg = (char *)"invalid stored block lengths";
+ state->mode = BAD;
+ break;
+ }
+ state->length = (unsigned)hold & 0xffff;
+ Tracev((stderr, "inflate: stored length %u\n",
+ state->length));
+ INITBITS();
+
+ /* copy stored block from input to output */
+ while (state->length != 0) {
+ copy = state->length;
+ PULL();
+ ROOM();
+ if (copy > have) copy = have;
+ if (copy > left) copy = left;
+ zmemcpy(put, next, copy);
+ have -= copy;
+ next += copy;
+ left -= copy;
+ put += copy;
+ state->length -= copy;
+ }
+ Tracev((stderr, "inflate: stored end\n"));
+ state->mode = TYPE;
+ break;
+
+ case TABLE:
+ /* get dynamic table entries descriptor */
+ NEEDBITS(14);
+ state->nlen = BITS(5) + 257;
+ DROPBITS(5);
+ state->ndist = BITS(5) + 1;
+ DROPBITS(5);
+ state->ncode = BITS(4) + 4;
+ DROPBITS(4);
+#ifndef PKZIP_BUG_WORKAROUND
+ if (state->nlen > 286 || state->ndist > 30) {
+ strm->msg = (char *)"too many length or distance symbols";
+ state->mode = BAD;
+ break;
+ }
+#endif
+ Tracev((stderr, "inflate: table sizes ok\n"));
+
+ /* get code length code lengths (not a typo) */
+ state->have = 0;
+ while (state->have < state->ncode) {
+ NEEDBITS(3);
+ state->lens[order[state->have++]] = (unsigned short)BITS(3);
+ DROPBITS(3);
+ }
+ while (state->have < 19)
+ state->lens[order[state->have++]] = 0;
+ state->next = state->codes;
+ state->lencode = (code const FAR *)(state->next);
+ state->lenbits = 7;
+ ret = inflate_table(CODES, state->lens, 19, &(state->next),
+ &(state->lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid code lengths set";
+ state->mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: code lengths ok\n"));
+
+ /* get length and distance code code lengths */
+ state->have = 0;
+ while (state->have < state->nlen + state->ndist) {
+ for (;;) {
+ here = state->lencode[BITS(state->lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.val < 16) {
+ DROPBITS(here.bits);
+ state->lens[state->have++] = here.val;
+ }
+ else {
+ if (here.val == 16) {
+ NEEDBITS(here.bits + 2);
+ DROPBITS(here.bits);
+ if (state->have == 0) {
+ strm->msg = (char *)"invalid bit length repeat";
+ state->mode = BAD;
+ break;
+ }
+ len = (unsigned)(state->lens[state->have - 1]);
+ copy = 3 + BITS(2);
+ DROPBITS(2);
+ }
+ else if (here.val == 17) {
+ NEEDBITS(here.bits + 3);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 3 + BITS(3);
+ DROPBITS(3);
+ }
+ else {
+ NEEDBITS(here.bits + 7);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 11 + BITS(7);
+ DROPBITS(7);
+ }
+ if (state->have + copy > state->nlen + state->ndist) {
+ strm->msg = (char *)"invalid bit length repeat";
+ state->mode = BAD;
+ break;
+ }
+ while (copy--)
+ state->lens[state->have++] = (unsigned short)len;
+ }
+ }
+
+ /* handle error breaks in while */
+ if (state->mode == BAD) break;
+
+ /* check for end-of-block code (better have one) */
+ if (state->lens[256] == 0) {
+ strm->msg = (char *)"invalid code -- missing end-of-block";
+ state->mode = BAD;
+ break;
+ }
+
+ /* build code tables -- note: do not change the lenbits or distbits
+ values here (9 and 6) without reading the comments in inftrees.h
+ concerning the ENOUGH constants, which depend on those values */
+ state->next = state->codes;
+ state->lencode = (code const FAR *)(state->next);
+ state->lenbits = 9;
+ ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
+ &(state->lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid literal/lengths set";
+ state->mode = BAD;
+ break;
+ }
+ state->distcode = (code const FAR *)(state->next);
+ state->distbits = 6;
+ ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
+ &(state->next), &(state->distbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid distances set";
+ state->mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: codes ok\n"));
+ state->mode = LEN;
+
+ case LEN:
+ /* use inflate_fast() if we have enough input and output */
+ if (have >= 6 && left >= 258) {
+ RESTORE();
+ if (state->whave < state->wsize)
+ state->whave = state->wsize - left;
+ inflate_fast(strm, state->wsize);
+ LOAD();
+ break;
+ }
+
+ /* get a literal, length, or end-of-block code */
+ for (;;) {
+ here = state->lencode[BITS(state->lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.op && (here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = state->lencode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ }
+ DROPBITS(here.bits);
+ state->length = (unsigned)here.val;
+
+ /* process literal */
+ if (here.op == 0) {
+ Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+ "inflate: literal '%c'\n" :
+ "inflate: literal 0x%02x\n", here.val));
+ ROOM();
+ *put++ = (unsigned char)(state->length);
+ left--;
+ state->mode = LEN;
+ break;
+ }
+
+ /* process end of block */
+ if (here.op & 32) {
+ Tracevv((stderr, "inflate: end of block\n"));
+ state->mode = TYPE;
+ break;
+ }
+
+ /* invalid code */
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid literal/length code";
+ state->mode = BAD;
+ break;
+ }
+
+ /* length code -- get extra bits, if any */
+ state->extra = (unsigned)(here.op) & 15;
+ if (state->extra != 0) {
+ NEEDBITS(state->extra);
+ state->length += BITS(state->extra);
+ DROPBITS(state->extra);
+ }
+ Tracevv((stderr, "inflate: length %u\n", state->length));
+
+ /* get distance code */
+ for (;;) {
+ here = state->distcode[BITS(state->distbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if ((here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = state->distcode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ }
+ DROPBITS(here.bits);
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid distance code";
+ state->mode = BAD;
+ break;
+ }
+ state->offset = (unsigned)here.val;
+
+ /* get distance extra bits, if any */
+ state->extra = (unsigned)(here.op) & 15;
+ if (state->extra != 0) {
+ NEEDBITS(state->extra);
+ state->offset += BITS(state->extra);
+ DROPBITS(state->extra);
+ }
+ if (state->offset > state->wsize - (state->whave < state->wsize ?
+ left : 0)) {
+ strm->msg = (char *)"invalid distance too far back";
+ state->mode = BAD;
+ break;
+ }
+ Tracevv((stderr, "inflate: distance %u\n", state->offset));
+
+ /* copy match from window to output */
+ do {
+ ROOM();
+ copy = state->wsize - state->offset;
+ if (copy < left) {
+ from = put + copy;
+ copy = left - copy;
+ }
+ else {
+ from = put - state->offset;
+ copy = left;
+ }
+ if (copy > state->length) copy = state->length;
+ state->length -= copy;
+ left -= copy;
+ do {
+ *put++ = *from++;
+ } while (--copy);
+ } while (state->length != 0);
+ break;
+
+ case DONE:
+ /* inflate stream terminated properly -- write leftover output */
+ ret = Z_STREAM_END;
+ if (left < state->wsize) {
+ if (out(out_desc, state->window, state->wsize - left))
+ ret = Z_BUF_ERROR;
+ }
+ goto inf_leave;
+
+ case BAD:
+ ret = Z_DATA_ERROR;
+ goto inf_leave;
+
+ default: /* can't happen, but makes compilers happy */
+ ret = Z_STREAM_ERROR;
+ goto inf_leave;
+ }
+
+ /* Return unused input */
+ inf_leave:
+ strm->next_in = next;
+ strm->avail_in = have;
+ return ret;
+}
+
+int ZEXPORT inflateBackEnd(strm)
+z_streamp strm;
+{
+ if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
+ return Z_STREAM_ERROR;
+ ZFREE(strm, strm->state);
+ strm->state = Z_NULL;
+ Tracev((stderr, "inflate: end\n"));
+ return Z_OK;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.c
new file mode 100644
index 000000000..0dbd1dbc0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.c
@@ -0,0 +1,323 @@
+/* inffast.c -- fast decoding
+ * Copyright (C) 1995-2017 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "zutil.h"
+#include "inftrees.h"
+#include "inflate.h"
+#include "inffast.h"
+
+#ifdef ASMINF
+# pragma message("Assembler code may have bugs -- use at your own risk")
+#else
+
+/*
+ Decode literal, length, and distance codes and write out the resulting
+ literal and match bytes until either not enough input or output is
+ available, an end-of-block is encountered, or a data error is encountered.
+ When large enough input and output buffers are supplied to inflate(), for
+ example, a 16K input buffer and a 64K output buffer, more than 95% of the
+ inflate execution time is spent in this routine.
+
+ Entry assumptions:
+
+ state->mode == LEN
+ strm->avail_in >= 6
+ strm->avail_out >= 258
+ start >= strm->avail_out
+ state->bits < 8
+
+ On return, state->mode is one of:
+
+ LEN -- ran out of enough output space or enough available input
+ TYPE -- reached end of block code, inflate() to interpret next block
+ BAD -- error in block data
+
+ Notes:
+
+ - The maximum input bits used by a length/distance pair is 15 bits for the
+ length code, 5 bits for the length extra, 15 bits for the distance code,
+ and 13 bits for the distance extra. This totals 48 bits, or six bytes.
+ Therefore if strm->avail_in >= 6, then there is enough input to avoid
+ checking for available input while decoding.
+
+ - The maximum bytes that a single length/distance pair can output is 258
+ bytes, which is the maximum length that can be coded. inflate_fast()
+ requires strm->avail_out >= 258 for each loop to avoid checking for
+ output space.
+ */
+void ZLIB_INTERNAL inflate_fast(strm, start)
+z_streamp strm;
+unsigned start; /* inflate()'s starting value for strm->avail_out */
+{
+ struct inflate_state FAR *state;
+ z_const unsigned char FAR *in; /* local strm->next_in */
+ z_const unsigned char FAR *last; /* have enough input while in < last */
+ unsigned char FAR *out; /* local strm->next_out */
+ unsigned char FAR *beg; /* inflate()'s initial strm->next_out */
+ unsigned char FAR *end; /* while out < end, enough space available */
+#ifdef INFLATE_STRICT
+ unsigned dmax; /* maximum distance from zlib header */
+#endif
+ unsigned wsize; /* window size or zero if not using window */
+ unsigned whave; /* valid bytes in the window */
+ unsigned wnext; /* window write index */
+ unsigned char FAR *window; /* allocated sliding window, if wsize != 0 */
+ unsigned long hold; /* local strm->hold */
+ unsigned bits; /* local strm->bits */
+ code const FAR *lcode; /* local strm->lencode */
+ code const FAR *dcode; /* local strm->distcode */
+ unsigned lmask; /* mask for first level of length codes */
+ unsigned dmask; /* mask for first level of distance codes */
+ code here; /* retrieved table entry */
+ unsigned op; /* code bits, operation, extra bits, or */
+ /* window position, window bytes to copy */
+ unsigned len; /* match length, unused bytes */
+ unsigned dist; /* match distance */
+ unsigned char FAR *from; /* where to copy match from */
+
+ /* copy state to local variables */
+ state = (struct inflate_state FAR *)strm->state;
+ in = strm->next_in;
+ last = in + (strm->avail_in - 5);
+ out = strm->next_out;
+ beg = out - (start - strm->avail_out);
+ end = out + (strm->avail_out - 257);
+#ifdef INFLATE_STRICT
+ dmax = state->dmax;
+#endif
+ wsize = state->wsize;
+ whave = state->whave;
+ wnext = state->wnext;
+ window = state->window;
+ hold = state->hold;
+ bits = state->bits;
+ lcode = state->lencode;
+ dcode = state->distcode;
+ lmask = (1U << state->lenbits) - 1;
+ dmask = (1U << state->distbits) - 1;
+
+ /* decode literals and length/distances until end-of-block or not enough
+ input data or output space */
+ do {
+ if (bits < 15) {
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ }
+ here = lcode[hold & lmask];
+ dolen:
+ op = (unsigned)(here.bits);
+ hold >>= op;
+ bits -= op;
+ op = (unsigned)(here.op);
+ if (op == 0) { /* literal */
+ Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+ "inflate: literal '%c'\n" :
+ "inflate: literal 0x%02x\n", here.val));
+ *out++ = (unsigned char)(here.val);
+ }
+ else if (op & 16) { /* length base */
+ len = (unsigned)(here.val);
+ op &= 15; /* number of extra bits */
+ if (op) {
+ if (bits < op) {
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ }
+ len += (unsigned)hold & ((1U << op) - 1);
+ hold >>= op;
+ bits -= op;
+ }
+ Tracevv((stderr, "inflate: length %u\n", len));
+ if (bits < 15) {
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ }
+ here = dcode[hold & dmask];
+ dodist:
+ op = (unsigned)(here.bits);
+ hold >>= op;
+ bits -= op;
+ op = (unsigned)(here.op);
+ if (op & 16) { /* distance base */
+ dist = (unsigned)(here.val);
+ op &= 15; /* number of extra bits */
+ if (bits < op) {
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ if (bits < op) {
+ hold += (unsigned long)(*in++) << bits;
+ bits += 8;
+ }
+ }
+ dist += (unsigned)hold & ((1U << op) - 1);
+#ifdef INFLATE_STRICT
+ if (dist > dmax) {
+ strm->msg = (char *)"invalid distance too far back";
+ state->mode = BAD;
+ break;
+ }
+#endif
+ hold >>= op;
+ bits -= op;
+ Tracevv((stderr, "inflate: distance %u\n", dist));
+ op = (unsigned)(out - beg); /* max distance in output */
+ if (dist > op) { /* see if copy from window */
+ op = dist - op; /* distance back in window */
+ if (op > whave) {
+ if (state->sane) {
+ strm->msg =
+ (char *)"invalid distance too far back";
+ state->mode = BAD;
+ break;
+ }
+#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ if (len <= op - whave) {
+ do {
+ *out++ = 0;
+ } while (--len);
+ continue;
+ }
+ len -= op - whave;
+ do {
+ *out++ = 0;
+ } while (--op > whave);
+ if (op == 0) {
+ from = out - dist;
+ do {
+ *out++ = *from++;
+ } while (--len);
+ continue;
+ }
+#endif
+ }
+ from = window;
+ if (wnext == 0) { /* very common case */
+ from += wsize - op;
+ if (op < len) { /* some from window */
+ len -= op;
+ do {
+ *out++ = *from++;
+ } while (--op);
+ from = out - dist; /* rest from output */
+ }
+ }
+ else if (wnext < op) { /* wrap around window */
+ from += wsize + wnext - op;
+ op -= wnext;
+ if (op < len) { /* some from end of window */
+ len -= op;
+ do {
+ *out++ = *from++;
+ } while (--op);
+ from = window;
+ if (wnext < len) { /* some from start of window */
+ op = wnext;
+ len -= op;
+ do {
+ *out++ = *from++;
+ } while (--op);
+ from = out - dist; /* rest from output */
+ }
+ }
+ }
+ else { /* contiguous in window */
+ from += wnext - op;
+ if (op < len) { /* some from window */
+ len -= op;
+ do {
+ *out++ = *from++;
+ } while (--op);
+ from = out - dist; /* rest from output */
+ }
+ }
+ while (len > 2) {
+ *out++ = *from++;
+ *out++ = *from++;
+ *out++ = *from++;
+ len -= 3;
+ }
+ if (len) {
+ *out++ = *from++;
+ if (len > 1)
+ *out++ = *from++;
+ }
+ }
+ else {
+ from = out - dist; /* copy direct from output */
+ do { /* minimum length is three */
+ *out++ = *from++;
+ *out++ = *from++;
+ *out++ = *from++;
+ len -= 3;
+ } while (len > 2);
+ if (len) {
+ *out++ = *from++;
+ if (len > 1)
+ *out++ = *from++;
+ }
+ }
+ }
+ else if ((op & 64) == 0) { /* 2nd level distance code */
+ here = dcode[here.val + (hold & ((1U << op) - 1))];
+ goto dodist;
+ }
+ else {
+ strm->msg = (char *)"invalid distance code";
+ state->mode = BAD;
+ break;
+ }
+ }
+ else if ((op & 64) == 0) { /* 2nd level length code */
+ here = lcode[here.val + (hold & ((1U << op) - 1))];
+ goto dolen;
+ }
+ else if (op & 32) { /* end-of-block */
+ Tracevv((stderr, "inflate: end of block\n"));
+ state->mode = TYPE;
+ break;
+ }
+ else {
+ strm->msg = (char *)"invalid literal/length code";
+ state->mode = BAD;
+ break;
+ }
+ } while (in < last && out < end);
+
+ /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+ len = bits >> 3;
+ in -= len;
+ bits -= len << 3;
+ hold &= (1U << bits) - 1;
+
+ /* update state and return */
+ strm->next_in = in;
+ strm->next_out = out;
+ strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
+ strm->avail_out = (unsigned)(out < end ?
+ 257 + (end - out) : 257 - (out - end));
+ state->hold = hold;
+ state->bits = bits;
+ return;
+}
+
+/*
+ inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
+ - Using bit fields for code structure
+ - Different op definition to avoid & for extra bits (do & for table bits)
+ - Three separate decoding do-loops for direct, window, and wnext == 0
+ - Special case for distance > 1 copies to do overlapped load and store copy
+ - Explicit branch predictions (based on measured branch probabilities)
+ - Deferring match copy and interspersed it with decoding subsequent codes
+ - Swapping literal/length else
+ - Swapping window/direct else
+ - Larger unrolled copy loops (three is about right)
+ - Moving len -= 3 statement into middle of loop
+ */
+
+#endif /* !ASMINF */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.h
new file mode 100644
index 000000000..e5c1aa4ca
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffast.h
@@ -0,0 +1,11 @@
+/* inffast.h -- header to use inffast.c
+ * Copyright (C) 1995-2003, 2010 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffixed.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffixed.h
new file mode 100644
index 000000000..d62832776
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inffixed.h
@@ -0,0 +1,94 @@
+ /* inffixed.h -- table for decoding fixed codes
+ * Generated automatically by makefixed().
+ */
+
+ /* WARNING: this file should *not* be used by applications.
+ It is part of the implementation of this library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+ static const code lenfix[512] = {
+ {96,7,0},{0,8,80},{0,8,16},{20,8,115},{18,7,31},{0,8,112},{0,8,48},
+ {0,9,192},{16,7,10},{0,8,96},{0,8,32},{0,9,160},{0,8,0},{0,8,128},
+ {0,8,64},{0,9,224},{16,7,6},{0,8,88},{0,8,24},{0,9,144},{19,7,59},
+ {0,8,120},{0,8,56},{0,9,208},{17,7,17},{0,8,104},{0,8,40},{0,9,176},
+ {0,8,8},{0,8,136},{0,8,72},{0,9,240},{16,7,4},{0,8,84},{0,8,20},
+ {21,8,227},{19,7,43},{0,8,116},{0,8,52},{0,9,200},{17,7,13},{0,8,100},
+ {0,8,36},{0,9,168},{0,8,4},{0,8,132},{0,8,68},{0,9,232},{16,7,8},
+ {0,8,92},{0,8,28},{0,9,152},{20,7,83},{0,8,124},{0,8,60},{0,9,216},
+ {18,7,23},{0,8,108},{0,8,44},{0,9,184},{0,8,12},{0,8,140},{0,8,76},
+ {0,9,248},{16,7,3},{0,8,82},{0,8,18},{21,8,163},{19,7,35},{0,8,114},
+ {0,8,50},{0,9,196},{17,7,11},{0,8,98},{0,8,34},{0,9,164},{0,8,2},
+ {0,8,130},{0,8,66},{0,9,228},{16,7,7},{0,8,90},{0,8,26},{0,9,148},
+ {20,7,67},{0,8,122},{0,8,58},{0,9,212},{18,7,19},{0,8,106},{0,8,42},
+ {0,9,180},{0,8,10},{0,8,138},{0,8,74},{0,9,244},{16,7,5},{0,8,86},
+ {0,8,22},{64,8,0},{19,7,51},{0,8,118},{0,8,54},{0,9,204},{17,7,15},
+ {0,8,102},{0,8,38},{0,9,172},{0,8,6},{0,8,134},{0,8,70},{0,9,236},
+ {16,7,9},{0,8,94},{0,8,30},{0,9,156},{20,7,99},{0,8,126},{0,8,62},
+ {0,9,220},{18,7,27},{0,8,110},{0,8,46},{0,9,188},{0,8,14},{0,8,142},
+ {0,8,78},{0,9,252},{96,7,0},{0,8,81},{0,8,17},{21,8,131},{18,7,31},
+ {0,8,113},{0,8,49},{0,9,194},{16,7,10},{0,8,97},{0,8,33},{0,9,162},
+ {0,8,1},{0,8,129},{0,8,65},{0,9,226},{16,7,6},{0,8,89},{0,8,25},
+ {0,9,146},{19,7,59},{0,8,121},{0,8,57},{0,9,210},{17,7,17},{0,8,105},
+ {0,8,41},{0,9,178},{0,8,9},{0,8,137},{0,8,73},{0,9,242},{16,7,4},
+ {0,8,85},{0,8,21},{16,8,258},{19,7,43},{0,8,117},{0,8,53},{0,9,202},
+ {17,7,13},{0,8,101},{0,8,37},{0,9,170},{0,8,5},{0,8,133},{0,8,69},
+ {0,9,234},{16,7,8},{0,8,93},{0,8,29},{0,9,154},{20,7,83},{0,8,125},
+ {0,8,61},{0,9,218},{18,7,23},{0,8,109},{0,8,45},{0,9,186},{0,8,13},
+ {0,8,141},{0,8,77},{0,9,250},{16,7,3},{0,8,83},{0,8,19},{21,8,195},
+ {19,7,35},{0,8,115},{0,8,51},{0,9,198},{17,7,11},{0,8,99},{0,8,35},
+ {0,9,166},{0,8,3},{0,8,131},{0,8,67},{0,9,230},{16,7,7},{0,8,91},
+ {0,8,27},{0,9,150},{20,7,67},{0,8,123},{0,8,59},{0,9,214},{18,7,19},
+ {0,8,107},{0,8,43},{0,9,182},{0,8,11},{0,8,139},{0,8,75},{0,9,246},
+ {16,7,5},{0,8,87},{0,8,23},{64,8,0},{19,7,51},{0,8,119},{0,8,55},
+ {0,9,206},{17,7,15},{0,8,103},{0,8,39},{0,9,174},{0,8,7},{0,8,135},
+ {0,8,71},{0,9,238},{16,7,9},{0,8,95},{0,8,31},{0,9,158},{20,7,99},
+ {0,8,127},{0,8,63},{0,9,222},{18,7,27},{0,8,111},{0,8,47},{0,9,190},
+ {0,8,15},{0,8,143},{0,8,79},{0,9,254},{96,7,0},{0,8,80},{0,8,16},
+ {20,8,115},{18,7,31},{0,8,112},{0,8,48},{0,9,193},{16,7,10},{0,8,96},
+ {0,8,32},{0,9,161},{0,8,0},{0,8,128},{0,8,64},{0,9,225},{16,7,6},
+ {0,8,88},{0,8,24},{0,9,145},{19,7,59},{0,8,120},{0,8,56},{0,9,209},
+ {17,7,17},{0,8,104},{0,8,40},{0,9,177},{0,8,8},{0,8,136},{0,8,72},
+ {0,9,241},{16,7,4},{0,8,84},{0,8,20},{21,8,227},{19,7,43},{0,8,116},
+ {0,8,52},{0,9,201},{17,7,13},{0,8,100},{0,8,36},{0,9,169},{0,8,4},
+ {0,8,132},{0,8,68},{0,9,233},{16,7,8},{0,8,92},{0,8,28},{0,9,153},
+ {20,7,83},{0,8,124},{0,8,60},{0,9,217},{18,7,23},{0,8,108},{0,8,44},
+ {0,9,185},{0,8,12},{0,8,140},{0,8,76},{0,9,249},{16,7,3},{0,8,82},
+ {0,8,18},{21,8,163},{19,7,35},{0,8,114},{0,8,50},{0,9,197},{17,7,11},
+ {0,8,98},{0,8,34},{0,9,165},{0,8,2},{0,8,130},{0,8,66},{0,9,229},
+ {16,7,7},{0,8,90},{0,8,26},{0,9,149},{20,7,67},{0,8,122},{0,8,58},
+ {0,9,213},{18,7,19},{0,8,106},{0,8,42},{0,9,181},{0,8,10},{0,8,138},
+ {0,8,74},{0,9,245},{16,7,5},{0,8,86},{0,8,22},{64,8,0},{19,7,51},
+ {0,8,118},{0,8,54},{0,9,205},{17,7,15},{0,8,102},{0,8,38},{0,9,173},
+ {0,8,6},{0,8,134},{0,8,70},{0,9,237},{16,7,9},{0,8,94},{0,8,30},
+ {0,9,157},{20,7,99},{0,8,126},{0,8,62},{0,9,221},{18,7,27},{0,8,110},
+ {0,8,46},{0,9,189},{0,8,14},{0,8,142},{0,8,78},{0,9,253},{96,7,0},
+ {0,8,81},{0,8,17},{21,8,131},{18,7,31},{0,8,113},{0,8,49},{0,9,195},
+ {16,7,10},{0,8,97},{0,8,33},{0,9,163},{0,8,1},{0,8,129},{0,8,65},
+ {0,9,227},{16,7,6},{0,8,89},{0,8,25},{0,9,147},{19,7,59},{0,8,121},
+ {0,8,57},{0,9,211},{17,7,17},{0,8,105},{0,8,41},{0,9,179},{0,8,9},
+ {0,8,137},{0,8,73},{0,9,243},{16,7,4},{0,8,85},{0,8,21},{16,8,258},
+ {19,7,43},{0,8,117},{0,8,53},{0,9,203},{17,7,13},{0,8,101},{0,8,37},
+ {0,9,171},{0,8,5},{0,8,133},{0,8,69},{0,9,235},{16,7,8},{0,8,93},
+ {0,8,29},{0,9,155},{20,7,83},{0,8,125},{0,8,61},{0,9,219},{18,7,23},
+ {0,8,109},{0,8,45},{0,9,187},{0,8,13},{0,8,141},{0,8,77},{0,9,251},
+ {16,7,3},{0,8,83},{0,8,19},{21,8,195},{19,7,35},{0,8,115},{0,8,51},
+ {0,9,199},{17,7,11},{0,8,99},{0,8,35},{0,9,167},{0,8,3},{0,8,131},
+ {0,8,67},{0,9,231},{16,7,7},{0,8,91},{0,8,27},{0,9,151},{20,7,67},
+ {0,8,123},{0,8,59},{0,9,215},{18,7,19},{0,8,107},{0,8,43},{0,9,183},
+ {0,8,11},{0,8,139},{0,8,75},{0,9,247},{16,7,5},{0,8,87},{0,8,23},
+ {64,8,0},{19,7,51},{0,8,119},{0,8,55},{0,9,207},{17,7,15},{0,8,103},
+ {0,8,39},{0,9,175},{0,8,7},{0,8,135},{0,8,71},{0,9,239},{16,7,9},
+ {0,8,95},{0,8,31},{0,9,159},{20,7,99},{0,8,127},{0,8,63},{0,9,223},
+ {18,7,27},{0,8,111},{0,8,47},{0,9,191},{0,8,15},{0,8,143},{0,8,79},
+ {0,9,255}
+ };
+
+ static const code distfix[32] = {
+ {16,5,1},{23,5,257},{19,5,17},{27,5,4097},{17,5,5},{25,5,1025},
+ {21,5,65},{29,5,16385},{16,5,3},{24,5,513},{20,5,33},{28,5,8193},
+ {18,5,9},{26,5,2049},{22,5,129},{64,5,0},{16,5,2},{23,5,385},
+ {19,5,25},{27,5,6145},{17,5,7},{25,5,1537},{21,5,97},{29,5,24577},
+ {16,5,4},{24,5,769},{20,5,49},{28,5,12289},{18,5,13},{26,5,3073},
+ {22,5,193},{64,5,0}
+ };
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.c
new file mode 100644
index 000000000..ac333e8c2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.c
@@ -0,0 +1,1561 @@
+/* inflate.c -- zlib decompression
+ * Copyright (C) 1995-2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ * Change history:
+ *
+ * 1.2.beta0 24 Nov 2002
+ * - First version -- complete rewrite of inflate to simplify code, avoid
+ * creation of window when not needed, minimize use of window when it is
+ * needed, make inffast.c even faster, implement gzip decoding, and to
+ * improve code readability and style over the previous zlib inflate code
+ *
+ * 1.2.beta1 25 Nov 2002
+ * - Use pointers for available input and output checking in inffast.c
+ * - Remove input and output counters in inffast.c
+ * - Change inffast.c entry and loop from avail_in >= 7 to >= 6
+ * - Remove unnecessary second byte pull from length extra in inffast.c
+ * - Unroll direct copy to three copies per loop in inffast.c
+ *
+ * 1.2.beta2 4 Dec 2002
+ * - Change external routine names to reduce potential conflicts
+ * - Correct filename to inffixed.h for fixed tables in inflate.c
+ * - Make hbuf[] unsigned char to match parameter type in inflate.c
+ * - Change strm->next_out[-state->offset] to *(strm->next_out - state->offset)
+ * to avoid negation problem on Alphas (64 bit) in inflate.c
+ *
+ * 1.2.beta3 22 Dec 2002
+ * - Add comments on state->bits assertion in inffast.c
+ * - Add comments on op field in inftrees.h
+ * - Fix bug in reuse of allocated window after inflateReset()
+ * - Remove bit fields--back to byte structure for speed
+ * - Remove distance extra == 0 check in inflate_fast()--only helps for lengths
+ * - Change post-increments to pre-increments in inflate_fast(), PPC biased?
+ * - Add compile time option, POSTINC, to use post-increments instead (Intel?)
+ * - Make MATCH copy in inflate() much faster for when inflate_fast() not used
+ * - Use local copies of stream next and avail values, as well as local bit
+ * buffer and bit count in inflate()--for speed when inflate_fast() not used
+ *
+ * 1.2.beta4 1 Jan 2003
+ * - Split ptr - 257 statements in inflate_table() to avoid compiler warnings
+ * - Move a comment on output buffer sizes from inffast.c to inflate.c
+ * - Add comments in inffast.c to introduce the inflate_fast() routine
+ * - Rearrange window copies in inflate_fast() for speed and simplification
+ * - Unroll last copy for window match in inflate_fast()
+ * - Use local copies of window variables in inflate_fast() for speed
+ * - Pull out common wnext == 0 case for speed in inflate_fast()
+ * - Make op and len in inflate_fast() unsigned for consistency
+ * - Add FAR to lcode and dcode declarations in inflate_fast()
+ * - Simplified bad distance check in inflate_fast()
+ * - Added inflateBackInit(), inflateBack(), and inflateBackEnd() in new
+ * source file infback.c to provide a call-back interface to inflate for
+ * programs like gzip and unzip -- uses window as output buffer to avoid
+ * window copying
+ *
+ * 1.2.beta5 1 Jan 2003
+ * - Improved inflateBack() interface to allow the caller to provide initial
+ * input in strm.
+ * - Fixed stored blocks bug in inflateBack()
+ *
+ * 1.2.beta6 4 Jan 2003
+ * - Added comments in inffast.c on effectiveness of POSTINC
+ * - Typecasting all around to reduce compiler warnings
+ * - Changed loops from while (1) or do {} while (1) to for (;;), again to
+ * make compilers happy
+ * - Changed type of window in inflateBackInit() to unsigned char *
+ *
+ * 1.2.beta7 27 Jan 2003
+ * - Changed many types to unsigned or unsigned short to avoid warnings
+ * - Added inflateCopy() function
+ *
+ * 1.2.0 9 Mar 2003
+ * - Changed inflateBack() interface to provide separate opaque descriptors
+ * for the in() and out() functions
+ * - Changed inflateBack() argument and in_func typedef to swap the length
+ * and buffer address return values for the input function
+ * - Check next_in and next_out for Z_NULL on entry to inflate()
+ *
+ * The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
+ */
+
+#include "zutil.h"
+#include "inftrees.h"
+#include "inflate.h"
+#include "inffast.h"
+
+#ifdef MAKEFIXED
+# ifndef BUILDFIXED
+# define BUILDFIXED
+# endif
+#endif
+
+/* function prototypes */
+local int inflateStateCheck OF((z_streamp strm));
+local void fixedtables OF((struct inflate_state FAR *state));
+local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
+ unsigned copy));
+#ifdef BUILDFIXED
+ void makefixed OF((void));
+#endif
+local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf,
+ unsigned len));
+
+local int inflateStateCheck(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+ if (strm == Z_NULL ||
+ strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0)
+ return 1;
+ state = (struct inflate_state FAR *)strm->state;
+ if (state == Z_NULL || state->strm != strm ||
+ state->mode < HEAD || state->mode > SYNC)
+ return 1;
+ return 0;
+}
+
+int ZEXPORT inflateResetKeep(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ strm->total_in = strm->total_out = state->total = 0;
+ strm->msg = Z_NULL;
+ if (state->wrap) /* to support ill-conceived Java test suite */
+ strm->adler = state->wrap & 1;
+ state->mode = HEAD;
+ state->last = 0;
+ state->havedict = 0;
+ state->dmax = 32768U;
+ state->head = Z_NULL;
+ state->hold = 0;
+ state->bits = 0;
+ state->lencode = state->distcode = state->next = state->codes;
+ state->sane = 1;
+ state->back = -1;
+ Tracev((stderr, "inflate: reset\n"));
+ return Z_OK;
+}
+
+int ZEXPORT inflateReset(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ state->wsize = 0;
+ state->whave = 0;
+ state->wnext = 0;
+ return inflateResetKeep(strm);
+}
+
+int ZEXPORT inflateReset2(strm, windowBits)
+z_streamp strm;
+int windowBits;
+{
+ int wrap;
+ struct inflate_state FAR *state;
+
+ /* get the state */
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+
+ /* extract wrap request from windowBits parameter */
+ if (windowBits < 0) {
+ wrap = 0;
+ windowBits = -windowBits;
+ }
+ else {
+ wrap = (windowBits >> 4) + 5;
+#ifdef GUNZIP
+ if (windowBits < 48)
+ windowBits &= 15;
+#endif
+ }
+
+ /* set number of window bits, free window if different */
+ if (windowBits && (windowBits < 8 || windowBits > 15))
+ return Z_STREAM_ERROR;
+ if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) {
+ ZFREE(strm, state->window);
+ state->window = Z_NULL;
+ }
+
+ /* update state and reset the rest of it */
+ state->wrap = wrap;
+ state->wbits = (unsigned)windowBits;
+ return inflateReset(strm);
+}
+
+int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size)
+z_streamp strm;
+int windowBits;
+const char *version;
+int stream_size;
+{
+ int ret;
+ struct inflate_state FAR *state;
+
+ if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
+ stream_size != (int)(sizeof(z_stream)))
+ return Z_VERSION_ERROR;
+ if (strm == Z_NULL) return Z_STREAM_ERROR;
+ strm->msg = Z_NULL; /* in case we return an error */
+ if (strm->zalloc == (alloc_func)0) {
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zalloc = zcalloc;
+ strm->opaque = (voidpf)0;
+#endif
+ }
+ if (strm->zfree == (free_func)0)
+#ifdef Z_SOLO
+ return Z_STREAM_ERROR;
+#else
+ strm->zfree = zcfree;
+#endif
+ state = (struct inflate_state FAR *)
+ ZALLOC(strm, 1, sizeof(struct inflate_state));
+ if (state == Z_NULL) return Z_MEM_ERROR;
+ Tracev((stderr, "inflate: allocated\n"));
+ strm->state = (struct internal_state FAR *)state;
+ state->strm = strm;
+ state->window = Z_NULL;
+ state->mode = HEAD; /* to pass state test in inflateReset2() */
+ ret = inflateReset2(strm, windowBits);
+ if (ret != Z_OK) {
+ ZFREE(strm, state);
+ strm->state = Z_NULL;
+ }
+ return ret;
+}
+
+int ZEXPORT inflateInit_(strm, version, stream_size)
+z_streamp strm;
+const char *version;
+int stream_size;
+{
+ return inflateInit2_(strm, DEF_WBITS, version, stream_size);
+}
+
+int ZEXPORT inflatePrime(strm, bits, value)
+z_streamp strm;
+int bits;
+int value;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (bits < 0) {
+ state->hold = 0;
+ state->bits = 0;
+ return Z_OK;
+ }
+ if (bits > 16 || state->bits + (uInt)bits > 32) return Z_STREAM_ERROR;
+ value &= (1L << bits) - 1;
+ state->hold += (unsigned)value << state->bits;
+ state->bits += (uInt)bits;
+ return Z_OK;
+}
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding. Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter. This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time. However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+local void fixedtables(state)
+struct inflate_state FAR *state;
+{
+#ifdef BUILDFIXED
+ static int virgin = 1;
+ static code *lenfix, *distfix;
+ static code fixed[544];
+
+ /* build fixed huffman tables if first call (may not be thread safe) */
+ if (virgin) {
+ unsigned sym, bits;
+ static code *next;
+
+ /* literal/length table */
+ sym = 0;
+ while (sym < 144) state->lens[sym++] = 8;
+ while (sym < 256) state->lens[sym++] = 9;
+ while (sym < 280) state->lens[sym++] = 7;
+ while (sym < 288) state->lens[sym++] = 8;
+ next = fixed;
+ lenfix = next;
+ bits = 9;
+ inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);
+
+ /* distance table */
+ sym = 0;
+ while (sym < 32) state->lens[sym++] = 5;
+ distfix = next;
+ bits = 5;
+ inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);
+
+ /* do this just once */
+ virgin = 0;
+ }
+#else /* !BUILDFIXED */
+# include "inffixed.h"
+#endif /* BUILDFIXED */
+ state->lencode = lenfix;
+ state->lenbits = 9;
+ state->distcode = distfix;
+ state->distbits = 5;
+}
+
+#ifdef MAKEFIXED
+#include <stdio.h>
+
+/*
+ Write out the inffixed.h that is #include'd above. Defining MAKEFIXED also
+ defines BUILDFIXED, so the tables are built on the fly. makefixed() writes
+ those tables to stdout, which would be piped to inffixed.h. A small program
+ can simply call makefixed to do this:
+
+ void makefixed(void);
+
+ int main(void)
+ {
+ makefixed();
+ return 0;
+ }
+
+ Then that can be linked with zlib built with MAKEFIXED defined and run:
+
+ a.out > inffixed.h
+ */
+void makefixed()
+{
+ unsigned low, size;
+ struct inflate_state state;
+
+ fixedtables(&state);
+ puts(" /* inffixed.h -- table for decoding fixed codes");
+ puts(" * Generated automatically by makefixed().");
+ puts(" */");
+ puts("");
+ puts(" /* WARNING: this file should *not* be used by applications.");
+ puts(" It is part of the implementation of this library and is");
+ puts(" subject to change. Applications should only use zlib.h.");
+ puts(" */");
+ puts("");
+ size = 1U << 9;
+ printf(" static const code lenfix[%u] = {", size);
+ low = 0;
+ for (;;) {
+ if ((low % 7) == 0) printf("\n ");
+ printf("{%u,%u,%d}", (low & 127) == 99 ? 64 : state.lencode[low].op,
+ state.lencode[low].bits, state.lencode[low].val);
+ if (++low == size) break;
+ putchar(',');
+ }
+ puts("\n };");
+ size = 1U << 5;
+ printf("\n static const code distfix[%u] = {", size);
+ low = 0;
+ for (;;) {
+ if ((low % 6) == 0) printf("\n ");
+ printf("{%u,%u,%d}", state.distcode[low].op, state.distcode[low].bits,
+ state.distcode[low].val);
+ if (++low == size) break;
+ putchar(',');
+ }
+ puts("\n };");
+}
+#endif /* MAKEFIXED */
+
+/*
+ Update the window with the last wsize (normally 32K) bytes written before
+ returning. If window does not exist yet, create it. This is only called
+ when a window is already in use, or when output has been written during this
+ inflate call, but the end of the deflate stream has not been reached yet.
+ It is also called to create a window for dictionary data when a dictionary
+ is loaded.
+
+ Providing output buffers larger than 32K to inflate() should provide a speed
+ advantage, since only the last 32K of output is copied to the sliding window
+ upon return from inflate(), and since all distances after the first 32K of
+ output will fall in the output data, making match copies simpler and faster.
+ The advantage may be dependent on the size of the processor's data caches.
+ */
+local int updatewindow(strm, end, copy)
+z_streamp strm;
+const Bytef *end;
+unsigned copy;
+{
+ struct inflate_state FAR *state;
+ unsigned dist;
+
+ state = (struct inflate_state FAR *)strm->state;
+
+ /* if it hasn't been done already, allocate space for the window */
+ if (state->window == Z_NULL) {
+ state->window = (unsigned char FAR *)
+ ZALLOC(strm, 1U << state->wbits,
+ sizeof(unsigned char));
+ if (state->window == Z_NULL) return 1;
+ }
+
+ /* if window not in use yet, initialize */
+ if (state->wsize == 0) {
+ state->wsize = 1U << state->wbits;
+ state->wnext = 0;
+ state->whave = 0;
+ }
+
+ /* copy state->wsize or less output bytes into the circular window */
+ if (copy >= state->wsize) {
+ zmemcpy(state->window, end - state->wsize, state->wsize);
+ state->wnext = 0;
+ state->whave = state->wsize;
+ }
+ else {
+ dist = state->wsize - state->wnext;
+ if (dist > copy) dist = copy;
+ zmemcpy(state->window + state->wnext, end - copy, dist);
+ copy -= dist;
+ if (copy) {
+ zmemcpy(state->window, end - copy, copy);
+ state->wnext = copy;
+ state->whave = state->wsize;
+ }
+ else {
+ state->wnext += dist;
+ if (state->wnext == state->wsize) state->wnext = 0;
+ if (state->whave < state->wsize) state->whave += dist;
+ }
+ }
+ return 0;
+}
+
+/* Macros for inflate(): */
+
+/* check function to use adler32() for zlib or crc32() for gzip */
+#ifdef GUNZIP
+# define UPDATE(check, buf, len) \
+ (state->flags ? crc32(check, buf, len) : adler32(check, buf, len))
+#else
+# define UPDATE(check, buf, len) adler32(check, buf, len)
+#endif
+
+/* check macros for header crc */
+#ifdef GUNZIP
+# define CRC2(check, word) \
+ do { \
+ hbuf[0] = (unsigned char)(word); \
+ hbuf[1] = (unsigned char)((word) >> 8); \
+ check = crc32(check, hbuf, 2); \
+ } while (0)
+
+# define CRC4(check, word) \
+ do { \
+ hbuf[0] = (unsigned char)(word); \
+ hbuf[1] = (unsigned char)((word) >> 8); \
+ hbuf[2] = (unsigned char)((word) >> 16); \
+ hbuf[3] = (unsigned char)((word) >> 24); \
+ check = crc32(check, hbuf, 4); \
+ } while (0)
+#endif
+
+/* Load registers with state in inflate() for speed */
+#define LOAD() \
+ do { \
+ put = strm->next_out; \
+ left = strm->avail_out; \
+ next = strm->next_in; \
+ have = strm->avail_in; \
+ hold = state->hold; \
+ bits = state->bits; \
+ } while (0)
+
+/* Restore state from registers in inflate() */
+#define RESTORE() \
+ do { \
+ strm->next_out = put; \
+ strm->avail_out = left; \
+ strm->next_in = next; \
+ strm->avail_in = have; \
+ state->hold = hold; \
+ state->bits = bits; \
+ } while (0)
+
+/* Clear the input bit accumulator */
+#define INITBITS() \
+ do { \
+ hold = 0; \
+ bits = 0; \
+ } while (0)
+
+/* Get a byte of input into the bit accumulator, or return from inflate()
+ if there is no input available. */
+#define PULLBYTE() \
+ do { \
+ if (have == 0) goto inf_leave; \
+ have--; \
+ hold += (unsigned long)(*next++) << bits; \
+ bits += 8; \
+ } while (0)
+
+/* Assure that there are at least n bits in the bit accumulator. If there is
+ not enough available input to do that, then return from inflate(). */
+#define NEEDBITS(n) \
+ do { \
+ while (bits < (unsigned)(n)) \
+ PULLBYTE(); \
+ } while (0)
+
+/* Return the low n bits of the bit accumulator (n < 16) */
+#define BITS(n) \
+ ((unsigned)hold & ((1U << (n)) - 1))
+
+/* Remove n bits from the bit accumulator */
+#define DROPBITS(n) \
+ do { \
+ hold >>= (n); \
+ bits -= (unsigned)(n); \
+ } while (0)
+
+/* Remove zero to seven bits as needed to go to a byte boundary */
+#define BYTEBITS() \
+ do { \
+ hold >>= bits & 7; \
+ bits -= bits & 7; \
+ } while (0)
+
+/*
+ inflate() uses a state machine to process as much input data and generate as
+ much output data as possible before returning. The state machine is
+ structured roughly as follows:
+
+ for (;;) switch (state) {
+ ...
+ case STATEn:
+ if (not enough input data or output space to make progress)
+ return;
+ ... make progress ...
+ state = STATEm;
+ break;
+ ...
+ }
+
+ so when inflate() is called again, the same case is attempted again, and
+ if the appropriate resources are provided, the machine proceeds to the
+ next state. The NEEDBITS() macro is usually the way the state evaluates
+ whether it can proceed or should return. NEEDBITS() does the return if
+ the requested bits are not available. The typical use of the BITS macros
+ is:
+
+ NEEDBITS(n);
+ ... do something with BITS(n) ...
+ DROPBITS(n);
+
+ where NEEDBITS(n) either returns from inflate() if there isn't enough
+ input left to load n bits into the accumulator, or it continues. BITS(n)
+ gives the low n bits in the accumulator. When done, DROPBITS(n) drops
+ the low n bits off the accumulator. INITBITS() clears the accumulator
+ and sets the number of available bits to zero. BYTEBITS() discards just
+ enough bits to put the accumulator on a byte boundary. After BYTEBITS()
+ and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
+
+ NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
+ if there is no input available. The decoding of variable length codes uses
+ PULLBYTE() directly in order to pull just enough bytes to decode the next
+ code, and no more.
+
+ Some states loop until they get enough input, making sure that enough
+ state information is maintained to continue the loop where it left off
+ if NEEDBITS() returns in the loop. For example, want, need, and keep
+ would all have to actually be part of the saved state in case NEEDBITS()
+ returns:
+
+ case STATEw:
+ while (want < need) {
+ NEEDBITS(n);
+ keep[want++] = BITS(n);
+ DROPBITS(n);
+ }
+ state = STATEx;
+ case STATEx:
+
+ As shown above, if the next state is also the next case, then the break
+ is omitted.
+
+ A state may also return if there is not enough output space available to
+ complete that state. Those states are copying stored data, writing a
+ literal byte, and copying a matching string.
+
+ When returning, a "goto inf_leave" is used to update the total counters,
+ update the check value, and determine whether any progress has been made
+ during that inflate() call in order to return the proper return code.
+ Progress is defined as a change in either strm->avail_in or strm->avail_out.
+ When there is a window, goto inf_leave will update the window with the last
+ output written. If a goto inf_leave occurs in the middle of decompression
+ and there is no window currently, goto inf_leave will create one and copy
+ output to the window for the next call of inflate().
+
+ In this implementation, the flush parameter of inflate() only affects the
+ return code (per zlib.h). inflate() always writes as much as possible to
+ strm->next_out, given the space available and the provided input--the effect
+ documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
+ the allocation of and copying into a sliding window until necessary, which
+ provides the effect documented in zlib.h for Z_FINISH when the entire input
+ stream available. So the only thing the flush parameter actually does is:
+ when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
+ will return Z_BUF_ERROR if it has not reached the end of the stream.
+ */
+
+int ZEXPORT inflate(strm, flush)
+z_streamp strm;
+int flush;
+{
+ struct inflate_state FAR *state;
+ z_const unsigned char FAR *next; /* next input */
+ unsigned char FAR *put; /* next output */
+ unsigned have, left; /* available input and output */
+ unsigned long hold; /* bit buffer */
+ unsigned bits; /* bits in bit buffer */
+ unsigned in, out; /* save starting available input and output */
+ unsigned copy; /* number of stored or match bytes to copy */
+ unsigned char FAR *from; /* where to copy match bytes from */
+ code here; /* current decoding table entry */
+ code last; /* parent table entry */
+ unsigned len; /* length to copy for repeats, bits to drop */
+ int ret; /* return code */
+#ifdef GUNZIP
+ unsigned char hbuf[4]; /* buffer for gzip header crc calculation */
+#endif
+ static const unsigned short order[19] = /* permutation of code lengths */
+ {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
+
+ if (inflateStateCheck(strm) || strm->next_out == Z_NULL ||
+ (strm->next_in == Z_NULL && strm->avail_in != 0))
+ return Z_STREAM_ERROR;
+
+ state = (struct inflate_state FAR *)strm->state;
+ if (state->mode == TYPE) state->mode = TYPEDO; /* skip check */
+ LOAD();
+ in = have;
+ out = left;
+ ret = Z_OK;
+ for (;;)
+ switch (state->mode) {
+ case HEAD:
+ if (state->wrap == 0) {
+ state->mode = TYPEDO;
+ break;
+ }
+ NEEDBITS(16);
+#ifdef GUNZIP
+ if ((state->wrap & 2) && hold == 0x8b1f) { /* gzip header */
+ if (state->wbits == 0)
+ state->wbits = 15;
+ state->check = crc32(0L, Z_NULL, 0);
+ CRC2(state->check, hold);
+ INITBITS();
+ state->mode = FLAGS;
+ break;
+ }
+ state->flags = 0; /* expect zlib header */
+ if (state->head != Z_NULL)
+ state->head->done = -1;
+ if (!(state->wrap & 1) || /* check if zlib header allowed */
+#else
+ if (
+#endif
+ ((BITS(8) << 8) + (hold >> 8)) % 31) {
+ strm->msg = (char *)"incorrect header check";
+ state->mode = BAD;
+ break;
+ }
+ if (BITS(4) != Z_DEFLATED) {
+ strm->msg = (char *)"unknown compression method";
+ state->mode = BAD;
+ break;
+ }
+ DROPBITS(4);
+ len = BITS(4) + 8;
+ if (state->wbits == 0)
+ state->wbits = len;
+ if (len > 15 || len > state->wbits) {
+ strm->msg = (char *)"invalid window size";
+ state->mode = BAD;
+ break;
+ }
+ state->dmax = 1U << len;
+ Tracev((stderr, "inflate: zlib header ok\n"));
+ strm->adler = state->check = adler32(0L, Z_NULL, 0);
+ state->mode = hold & 0x200 ? DICTID : TYPE;
+ INITBITS();
+ break;
+#ifdef GUNZIP
+ case FLAGS:
+ NEEDBITS(16);
+ state->flags = (int)(hold);
+ if ((state->flags & 0xff) != Z_DEFLATED) {
+ strm->msg = (char *)"unknown compression method";
+ state->mode = BAD;
+ break;
+ }
+ if (state->flags & 0xe000) {
+ strm->msg = (char *)"unknown header flags set";
+ state->mode = BAD;
+ break;
+ }
+ if (state->head != Z_NULL)
+ state->head->text = (int)((hold >> 8) & 1);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
+ INITBITS();
+ state->mode = TIME;
+ case TIME:
+ NEEDBITS(32);
+ if (state->head != Z_NULL)
+ state->head->time = hold;
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC4(state->check, hold);
+ INITBITS();
+ state->mode = OS;
+ case OS:
+ NEEDBITS(16);
+ if (state->head != Z_NULL) {
+ state->head->xflags = (int)(hold & 0xff);
+ state->head->os = (int)(hold >> 8);
+ }
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
+ INITBITS();
+ state->mode = EXLEN;
+ case EXLEN:
+ if (state->flags & 0x0400) {
+ NEEDBITS(16);
+ state->length = (unsigned)(hold);
+ if (state->head != Z_NULL)
+ state->head->extra_len = (unsigned)hold;
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ CRC2(state->check, hold);
+ INITBITS();
+ }
+ else if (state->head != Z_NULL)
+ state->head->extra = Z_NULL;
+ state->mode = EXTRA;
+ case EXTRA:
+ if (state->flags & 0x0400) {
+ copy = state->length;
+ if (copy > have) copy = have;
+ if (copy) {
+ if (state->head != Z_NULL &&
+ state->head->extra != Z_NULL) {
+ len = state->head->extra_len - state->length;
+ zmemcpy(state->head->extra + len, next,
+ len + copy > state->head->extra_max ?
+ state->head->extra_max - len : copy);
+ }
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ state->check = crc32(state->check, next, copy);
+ have -= copy;
+ next += copy;
+ state->length -= copy;
+ }
+ if (state->length) goto inf_leave;
+ }
+ state->length = 0;
+ state->mode = NAME;
+ case NAME:
+ if (state->flags & 0x0800) {
+ if (have == 0) goto inf_leave;
+ copy = 0;
+ do {
+ len = (unsigned)(next[copy++]);
+ if (state->head != Z_NULL &&
+ state->head->name != Z_NULL &&
+ state->length < state->head->name_max)
+ state->head->name[state->length++] = (Bytef)len;
+ } while (len && copy < have);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ state->check = crc32(state->check, next, copy);
+ have -= copy;
+ next += copy;
+ if (len) goto inf_leave;
+ }
+ else if (state->head != Z_NULL)
+ state->head->name = Z_NULL;
+ state->length = 0;
+ state->mode = COMMENT;
+ case COMMENT:
+ if (state->flags & 0x1000) {
+ if (have == 0) goto inf_leave;
+ copy = 0;
+ do {
+ len = (unsigned)(next[copy++]);
+ if (state->head != Z_NULL &&
+ state->head->comment != Z_NULL &&
+ state->length < state->head->comm_max)
+ state->head->comment[state->length++] = (Bytef)len;
+ } while (len && copy < have);
+ if ((state->flags & 0x0200) && (state->wrap & 4))
+ state->check = crc32(state->check, next, copy);
+ have -= copy;
+ next += copy;
+ if (len) goto inf_leave;
+ }
+ else if (state->head != Z_NULL)
+ state->head->comment = Z_NULL;
+ state->mode = HCRC;
+ case HCRC:
+ if (state->flags & 0x0200) {
+ NEEDBITS(16);
+ if ((state->wrap & 4) && hold != (state->check & 0xffff)) {
+ strm->msg = (char *)"header crc mismatch";
+ state->mode = BAD;
+ break;
+ }
+ INITBITS();
+ }
+ if (state->head != Z_NULL) {
+ state->head->hcrc = (int)((state->flags >> 9) & 1);
+ state->head->done = 1;
+ }
+ strm->adler = state->check = crc32(0L, Z_NULL, 0);
+ state->mode = TYPE;
+ break;
+#endif
+ case DICTID:
+ NEEDBITS(32);
+ strm->adler = state->check = ZSWAP32(hold);
+ INITBITS();
+ state->mode = DICT;
+ case DICT:
+ if (state->havedict == 0) {
+ RESTORE();
+ return Z_NEED_DICT;
+ }
+ strm->adler = state->check = adler32(0L, Z_NULL, 0);
+ state->mode = TYPE;
+ case TYPE:
+ if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
+ case TYPEDO:
+ if (state->last) {
+ BYTEBITS();
+ state->mode = CHECK;
+ break;
+ }
+ NEEDBITS(3);
+ state->last = BITS(1);
+ DROPBITS(1);
+ switch (BITS(2)) {
+ case 0: /* stored block */
+ Tracev((stderr, "inflate: stored block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = STORED;
+ break;
+ case 1: /* fixed block */
+ fixedtables(state);
+ Tracev((stderr, "inflate: fixed codes block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = LEN_; /* decode codes */
+ if (flush == Z_TREES) {
+ DROPBITS(2);
+ goto inf_leave;
+ }
+ break;
+ case 2: /* dynamic block */
+ Tracev((stderr, "inflate: dynamic codes block%s\n",
+ state->last ? " (last)" : ""));
+ state->mode = TABLE;
+ break;
+ case 3:
+ strm->msg = (char *)"invalid block type";
+ state->mode = BAD;
+ }
+ DROPBITS(2);
+ break;
+ case STORED:
+ BYTEBITS(); /* go to byte boundary */
+ NEEDBITS(32);
+ if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {
+ strm->msg = (char *)"invalid stored block lengths";
+ state->mode = BAD;
+ break;
+ }
+ state->length = (unsigned)hold & 0xffff;
+ Tracev((stderr, "inflate: stored length %u\n",
+ state->length));
+ INITBITS();
+ state->mode = COPY_;
+ if (flush == Z_TREES) goto inf_leave;
+ case COPY_:
+ state->mode = COPY;
+ case COPY:
+ copy = state->length;
+ if (copy) {
+ if (copy > have) copy = have;
+ if (copy > left) copy = left;
+ if (copy == 0) goto inf_leave;
+ zmemcpy(put, next, copy);
+ have -= copy;
+ next += copy;
+ left -= copy;
+ put += copy;
+ state->length -= copy;
+ break;
+ }
+ Tracev((stderr, "inflate: stored end\n"));
+ state->mode = TYPE;
+ break;
+ case TABLE:
+ NEEDBITS(14);
+ state->nlen = BITS(5) + 257;
+ DROPBITS(5);
+ state->ndist = BITS(5) + 1;
+ DROPBITS(5);
+ state->ncode = BITS(4) + 4;
+ DROPBITS(4);
+#ifndef PKZIP_BUG_WORKAROUND
+ if (state->nlen > 286 || state->ndist > 30) {
+ strm->msg = (char *)"too many length or distance symbols";
+ state->mode = BAD;
+ break;
+ }
+#endif
+ Tracev((stderr, "inflate: table sizes ok\n"));
+ state->have = 0;
+ state->mode = LENLENS;
+ case LENLENS:
+ while (state->have < state->ncode) {
+ NEEDBITS(3);
+ state->lens[order[state->have++]] = (unsigned short)BITS(3);
+ DROPBITS(3);
+ }
+ while (state->have < 19)
+ state->lens[order[state->have++]] = 0;
+ state->next = state->codes;
+ state->lencode = (const code FAR *)(state->next);
+ state->lenbits = 7;
+ ret = inflate_table(CODES, state->lens, 19, &(state->next),
+ &(state->lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid code lengths set";
+ state->mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: code lengths ok\n"));
+ state->have = 0;
+ state->mode = CODELENS;
+ case CODELENS:
+ while (state->have < state->nlen + state->ndist) {
+ for (;;) {
+ here = state->lencode[BITS(state->lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.val < 16) {
+ DROPBITS(here.bits);
+ state->lens[state->have++] = here.val;
+ }
+ else {
+ if (here.val == 16) {
+ NEEDBITS(here.bits + 2);
+ DROPBITS(here.bits);
+ if (state->have == 0) {
+ strm->msg = (char *)"invalid bit length repeat";
+ state->mode = BAD;
+ break;
+ }
+ len = state->lens[state->have - 1];
+ copy = 3 + BITS(2);
+ DROPBITS(2);
+ }
+ else if (here.val == 17) {
+ NEEDBITS(here.bits + 3);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 3 + BITS(3);
+ DROPBITS(3);
+ }
+ else {
+ NEEDBITS(here.bits + 7);
+ DROPBITS(here.bits);
+ len = 0;
+ copy = 11 + BITS(7);
+ DROPBITS(7);
+ }
+ if (state->have + copy > state->nlen + state->ndist) {
+ strm->msg = (char *)"invalid bit length repeat";
+ state->mode = BAD;
+ break;
+ }
+ while (copy--)
+ state->lens[state->have++] = (unsigned short)len;
+ }
+ }
+
+ /* handle error breaks in while */
+ if (state->mode == BAD) break;
+
+ /* check for end-of-block code (better have one) */
+ if (state->lens[256] == 0) {
+ strm->msg = (char *)"invalid code -- missing end-of-block";
+ state->mode = BAD;
+ break;
+ }
+
+ /* build code tables -- note: do not change the lenbits or distbits
+ values here (9 and 6) without reading the comments in inftrees.h
+ concerning the ENOUGH constants, which depend on those values */
+ state->next = state->codes;
+ state->lencode = (const code FAR *)(state->next);
+ state->lenbits = 9;
+ ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
+ &(state->lenbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid literal/lengths set";
+ state->mode = BAD;
+ break;
+ }
+ state->distcode = (const code FAR *)(state->next);
+ state->distbits = 6;
+ ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
+ &(state->next), &(state->distbits), state->work);
+ if (ret) {
+ strm->msg = (char *)"invalid distances set";
+ state->mode = BAD;
+ break;
+ }
+ Tracev((stderr, "inflate: codes ok\n"));
+ state->mode = LEN_;
+ if (flush == Z_TREES) goto inf_leave;
+ case LEN_:
+ state->mode = LEN;
+ case LEN:
+ if (have >= 6 && left >= 258) {
+ RESTORE();
+ inflate_fast(strm, out);
+ LOAD();
+ if (state->mode == TYPE)
+ state->back = -1;
+ break;
+ }
+ state->back = 0;
+ for (;;) {
+ here = state->lencode[BITS(state->lenbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if (here.op && (here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = state->lencode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ state->back += last.bits;
+ }
+ DROPBITS(here.bits);
+ state->back += here.bits;
+ state->length = (unsigned)here.val;
+ if ((int)(here.op) == 0) {
+ Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+ "inflate: literal '%c'\n" :
+ "inflate: literal 0x%02x\n", here.val));
+ state->mode = LIT;
+ break;
+ }
+ if (here.op & 32) {
+ Tracevv((stderr, "inflate: end of block\n"));
+ state->back = -1;
+ state->mode = TYPE;
+ break;
+ }
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid literal/length code";
+ state->mode = BAD;
+ break;
+ }
+ state->extra = (unsigned)(here.op) & 15;
+ state->mode = LENEXT;
+ case LENEXT:
+ if (state->extra) {
+ NEEDBITS(state->extra);
+ state->length += BITS(state->extra);
+ DROPBITS(state->extra);
+ state->back += state->extra;
+ }
+ Tracevv((stderr, "inflate: length %u\n", state->length));
+ state->was = state->length;
+ state->mode = DIST;
+ case DIST:
+ for (;;) {
+ here = state->distcode[BITS(state->distbits)];
+ if ((unsigned)(here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ if ((here.op & 0xf0) == 0) {
+ last = here;
+ for (;;) {
+ here = state->distcode[last.val +
+ (BITS(last.bits + last.op) >> last.bits)];
+ if ((unsigned)(last.bits + here.bits) <= bits) break;
+ PULLBYTE();
+ }
+ DROPBITS(last.bits);
+ state->back += last.bits;
+ }
+ DROPBITS(here.bits);
+ state->back += here.bits;
+ if (here.op & 64) {
+ strm->msg = (char *)"invalid distance code";
+ state->mode = BAD;
+ break;
+ }
+ state->offset = (unsigned)here.val;
+ state->extra = (unsigned)(here.op) & 15;
+ state->mode = DISTEXT;
+ case DISTEXT:
+ if (state->extra) {
+ NEEDBITS(state->extra);
+ state->offset += BITS(state->extra);
+ DROPBITS(state->extra);
+ state->back += state->extra;
+ }
+#ifdef INFLATE_STRICT
+ if (state->offset > state->dmax) {
+ strm->msg = (char *)"invalid distance too far back";
+ state->mode = BAD;
+ break;
+ }
+#endif
+ Tracevv((stderr, "inflate: distance %u\n", state->offset));
+ state->mode = MATCH;
+ case MATCH:
+ if (left == 0) goto inf_leave;
+ copy = out - left;
+ if (state->offset > copy) { /* copy from window */
+ copy = state->offset - copy;
+ if (copy > state->whave) {
+ if (state->sane) {
+ strm->msg = (char *)"invalid distance too far back";
+ state->mode = BAD;
+ break;
+ }
+#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ Trace((stderr, "inflate.c too far\n"));
+ copy -= state->whave;
+ if (copy > state->length) copy = state->length;
+ if (copy > left) copy = left;
+ left -= copy;
+ state->length -= copy;
+ do {
+ *put++ = 0;
+ } while (--copy);
+ if (state->length == 0) state->mode = LEN;
+ break;
+#endif
+ }
+ if (copy > state->wnext) {
+ copy -= state->wnext;
+ from = state->window + (state->wsize - copy);
+ }
+ else
+ from = state->window + (state->wnext - copy);
+ if (copy > state->length) copy = state->length;
+ }
+ else { /* copy from output */
+ from = put - state->offset;
+ copy = state->length;
+ }
+ if (copy > left) copy = left;
+ left -= copy;
+ state->length -= copy;
+ do {
+ *put++ = *from++;
+ } while (--copy);
+ if (state->length == 0) state->mode = LEN;
+ break;
+ case LIT:
+ if (left == 0) goto inf_leave;
+ *put++ = (unsigned char)(state->length);
+ left--;
+ state->mode = LEN;
+ break;
+ case CHECK:
+ if (state->wrap) {
+ NEEDBITS(32);
+ out -= left;
+ strm->total_out += out;
+ state->total += out;
+ if ((state->wrap & 4) && out)
+ strm->adler = state->check =
+ UPDATE(state->check, put - out, out);
+ out = left;
+ if ((state->wrap & 4) && (
+#ifdef GUNZIP
+ state->flags ? hold :
+#endif
+ ZSWAP32(hold)) != state->check) {
+ strm->msg = (char *)"incorrect data check";
+ state->mode = BAD;
+ break;
+ }
+ INITBITS();
+ Tracev((stderr, "inflate: check matches trailer\n"));
+ }
+#ifdef GUNZIP
+ state->mode = LENGTH;
+ case LENGTH:
+ if (state->wrap && state->flags) {
+ NEEDBITS(32);
+ if (hold != (state->total & 0xffffffffUL)) {
+ strm->msg = (char *)"incorrect length check";
+ state->mode = BAD;
+ break;
+ }
+ INITBITS();
+ Tracev((stderr, "inflate: length matches trailer\n"));
+ }
+#endif
+ state->mode = DONE;
+ case DONE:
+ ret = Z_STREAM_END;
+ goto inf_leave;
+ case BAD:
+ ret = Z_DATA_ERROR;
+ goto inf_leave;
+ case MEM:
+ return Z_MEM_ERROR;
+ case SYNC:
+ default:
+ return Z_STREAM_ERROR;
+ }
+
+ /*
+ Return from inflate(), updating the total counts and the check value.
+ If there was no progress during the inflate() call, return a buffer
+ error. Call updatewindow() to create and/or update the window state.
+ Note: a memory error from inflate() is non-recoverable.
+ */
+ inf_leave:
+ RESTORE();
+ if (state->wsize || (out != strm->avail_out && state->mode < BAD &&
+ (state->mode < CHECK || flush != Z_FINISH)))
+ if (updatewindow(strm, strm->next_out, out - strm->avail_out)) {
+ state->mode = MEM;
+ return Z_MEM_ERROR;
+ }
+ in -= strm->avail_in;
+ out -= strm->avail_out;
+ strm->total_in += in;
+ strm->total_out += out;
+ state->total += out;
+ if ((state->wrap & 4) && out)
+ strm->adler = state->check =
+ UPDATE(state->check, strm->next_out - out, out);
+ strm->data_type = (int)state->bits + (state->last ? 64 : 0) +
+ (state->mode == TYPE ? 128 : 0) +
+ (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);
+ if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)
+ ret = Z_BUF_ERROR;
+ return ret;
+}
+
+int ZEXPORT inflateEnd(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+ if (inflateStateCheck(strm))
+ return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (state->window != Z_NULL) ZFREE(strm, state->window);
+ ZFREE(strm, strm->state);
+ strm->state = Z_NULL;
+ Tracev((stderr, "inflate: end\n"));
+ return Z_OK;
+}
+
+int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength)
+z_streamp strm;
+Bytef *dictionary;
+uInt *dictLength;
+{
+ struct inflate_state FAR *state;
+
+ /* check state */
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+
+ /* copy dictionary */
+ if (state->whave && dictionary != Z_NULL) {
+ zmemcpy(dictionary, state->window + state->wnext,
+ state->whave - state->wnext);
+ zmemcpy(dictionary + state->whave - state->wnext,
+ state->window, state->wnext);
+ }
+ if (dictLength != Z_NULL)
+ *dictLength = state->whave;
+ return Z_OK;
+}
+
+int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)
+z_streamp strm;
+const Bytef *dictionary;
+uInt dictLength;
+{
+ struct inflate_state FAR *state;
+ unsigned long dictid;
+ int ret;
+
+ /* check state */
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (state->wrap != 0 && state->mode != DICT)
+ return Z_STREAM_ERROR;
+
+ /* check for correct dictionary identifier */
+ if (state->mode == DICT) {
+ dictid = adler32(0L, Z_NULL, 0);
+ dictid = adler32(dictid, dictionary, dictLength);
+ if (dictid != state->check)
+ return Z_DATA_ERROR;
+ }
+
+ /* copy dictionary to window using updatewindow(), which will amend the
+ existing dictionary if appropriate */
+ ret = updatewindow(strm, dictionary + dictLength, dictLength);
+ if (ret) {
+ state->mode = MEM;
+ return Z_MEM_ERROR;
+ }
+ state->havedict = 1;
+ Tracev((stderr, "inflate: dictionary set\n"));
+ return Z_OK;
+}
+
+int ZEXPORT inflateGetHeader(strm, head)
+z_streamp strm;
+gz_headerp head;
+{
+ struct inflate_state FAR *state;
+
+ /* check state */
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;
+
+ /* save header structure */
+ state->head = head;
+ head->done = 0;
+ return Z_OK;
+}
+
+/*
+ Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
+ or when out of input. When called, *have is the number of pattern bytes
+ found in order so far, in 0..3. On return *have is updated to the new
+ state. If on return *have equals four, then the pattern was found and the
+ return value is how many bytes were read including the last byte of the
+ pattern. If *have is less than four, then the pattern has not been found
+ yet and the return value is len. In the latter case, syncsearch() can be
+ called again with more data and the *have state. *have is initialized to
+ zero for the first call.
+ */
+local unsigned syncsearch(have, buf, len)
+unsigned FAR *have;
+const unsigned char FAR *buf;
+unsigned len;
+{
+ unsigned got;
+ unsigned next;
+
+ got = *have;
+ next = 0;
+ while (next < len && got < 4) {
+ if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))
+ got++;
+ else if (buf[next])
+ got = 0;
+ else
+ got = 4 - got;
+ next++;
+ }
+ *have = got;
+ return next;
+}
+
+int ZEXPORT inflateSync(strm)
+z_streamp strm;
+{
+ unsigned len; /* number of bytes to look at or looked at */
+ unsigned long in, out; /* temporary to save total_in and total_out */
+ unsigned char buf[4]; /* to restore bit buffer to byte string */
+ struct inflate_state FAR *state;
+
+ /* check parameters */
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;
+
+ /* if first time, start search in bit buffer */
+ if (state->mode != SYNC) {
+ state->mode = SYNC;
+ state->hold <<= state->bits & 7;
+ state->bits -= state->bits & 7;
+ len = 0;
+ while (state->bits >= 8) {
+ buf[len++] = (unsigned char)(state->hold);
+ state->hold >>= 8;
+ state->bits -= 8;
+ }
+ state->have = 0;
+ syncsearch(&(state->have), buf, len);
+ }
+
+ /* search available input */
+ len = syncsearch(&(state->have), strm->next_in, strm->avail_in);
+ strm->avail_in -= len;
+ strm->next_in += len;
+ strm->total_in += len;
+
+ /* return no joy or set up to restart inflate() on a new block */
+ if (state->have != 4) return Z_DATA_ERROR;
+ in = strm->total_in; out = strm->total_out;
+ inflateReset(strm);
+ strm->total_in = in; strm->total_out = out;
+ state->mode = TYPE;
+ return Z_OK;
+}
+
+/*
+ Returns true if inflate is currently at the end of a block generated by
+ Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
+ implementation to provide an additional safety check. PPP uses
+ Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
+ block. When decompressing, PPP checks that at the end of input packet,
+ inflate is waiting for these length bytes.
+ */
+int ZEXPORT inflateSyncPoint(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ return state->mode == STORED && state->bits == 0;
+}
+
+int ZEXPORT inflateCopy(dest, source)
+z_streamp dest;
+z_streamp source;
+{
+ struct inflate_state FAR *state;
+ struct inflate_state FAR *copy;
+ unsigned char FAR *window;
+ unsigned wsize;
+
+ /* check input */
+ if (inflateStateCheck(source) || dest == Z_NULL)
+ return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)source->state;
+
+ /* allocate space */
+ copy = (struct inflate_state FAR *)
+ ZALLOC(source, 1, sizeof(struct inflate_state));
+ if (copy == Z_NULL) return Z_MEM_ERROR;
+ window = Z_NULL;
+ if (state->window != Z_NULL) {
+ window = (unsigned char FAR *)
+ ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));
+ if (window == Z_NULL) {
+ ZFREE(source, copy);
+ return Z_MEM_ERROR;
+ }
+ }
+
+ /* copy state */
+ zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));
+ zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state));
+ copy->strm = dest;
+ if (state->lencode >= state->codes &&
+ state->lencode <= state->codes + ENOUGH - 1) {
+ copy->lencode = copy->codes + (state->lencode - state->codes);
+ copy->distcode = copy->codes + (state->distcode - state->codes);
+ }
+ copy->next = copy->codes + (state->next - state->codes);
+ if (window != Z_NULL) {
+ wsize = 1U << state->wbits;
+ zmemcpy(window, state->window, wsize);
+ }
+ copy->window = window;
+ dest->state = (struct internal_state FAR *)copy;
+ return Z_OK;
+}
+
+int ZEXPORT inflateUndermine(strm, subvert)
+z_streamp strm;
+int subvert;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+ state->sane = !subvert;
+ return Z_OK;
+#else
+ (void)subvert;
+ state->sane = 1;
+ return Z_DATA_ERROR;
+#endif
+}
+
+int ZEXPORT inflateValidate(strm, check)
+z_streamp strm;
+int check;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm)) return Z_STREAM_ERROR;
+ state = (struct inflate_state FAR *)strm->state;
+ if (check)
+ state->wrap |= 4;
+ else
+ state->wrap &= ~4;
+ return Z_OK;
+}
+
+long ZEXPORT inflateMark(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+
+ if (inflateStateCheck(strm))
+ return -(1L << 16);
+ state = (struct inflate_state FAR *)strm->state;
+ return (long)(((unsigned long)((long)state->back)) << 16) +
+ (state->mode == COPY ? state->length :
+ (state->mode == MATCH ? state->was - state->length : 0));
+}
+
+unsigned long ZEXPORT inflateCodesUsed(strm)
+z_streamp strm;
+{
+ struct inflate_state FAR *state;
+ if (inflateStateCheck(strm)) return (unsigned long)-1;
+ state = (struct inflate_state FAR *)strm->state;
+ return (unsigned long)(state->next - state->codes);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.h
new file mode 100644
index 000000000..a46cce6b6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inflate.h
@@ -0,0 +1,125 @@
+/* inflate.h -- internal inflate state definition
+ * Copyright (C) 1995-2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* define NO_GZIP when compiling if you want to disable gzip header and
+ trailer decoding by inflate(). NO_GZIP would be used to avoid linking in
+ the crc code when it is not needed. For shared libraries, gzip decoding
+ should be left enabled. */
+#ifndef NO_GZIP
+# define GUNZIP
+#endif
+
+/* Possible inflate modes between inflate() calls */
+typedef enum {
+ HEAD = 16180, /* i: waiting for magic header */
+ FLAGS, /* i: waiting for method and flags (gzip) */
+ TIME, /* i: waiting for modification time (gzip) */
+ OS, /* i: waiting for extra flags and operating system (gzip) */
+ EXLEN, /* i: waiting for extra length (gzip) */
+ EXTRA, /* i: waiting for extra bytes (gzip) */
+ NAME, /* i: waiting for end of file name (gzip) */
+ COMMENT, /* i: waiting for end of comment (gzip) */
+ HCRC, /* i: waiting for header crc (gzip) */
+ DICTID, /* i: waiting for dictionary check value */
+ DICT, /* waiting for inflateSetDictionary() call */
+ TYPE, /* i: waiting for type bits, including last-flag bit */
+ TYPEDO, /* i: same, but skip check to exit inflate on new block */
+ STORED, /* i: waiting for stored size (length and complement) */
+ COPY_, /* i/o: same as COPY below, but only first time in */
+ COPY, /* i/o: waiting for input or output to copy stored block */
+ TABLE, /* i: waiting for dynamic block table lengths */
+ LENLENS, /* i: waiting for code length code lengths */
+ CODELENS, /* i: waiting for length/lit and distance code lengths */
+ LEN_, /* i: same as LEN below, but only first time in */
+ LEN, /* i: waiting for length/lit/eob code */
+ LENEXT, /* i: waiting for length extra bits */
+ DIST, /* i: waiting for distance code */
+ DISTEXT, /* i: waiting for distance extra bits */
+ MATCH, /* o: waiting for output space to copy string */
+ LIT, /* o: waiting for output space to write literal */
+ CHECK, /* i: waiting for 32-bit check value */
+ LENGTH, /* i: waiting for 32-bit length (gzip) */
+ DONE, /* finished check, done -- remain here until reset */
+ BAD, /* got a data error -- remain here until reset */
+ MEM, /* got an inflate() memory error -- remain here until reset */
+ SYNC /* looking for synchronization bytes to restart inflate() */
+} inflate_mode;
+
+/*
+ State transitions between above modes -
+
+ (most modes can go to BAD or MEM on error -- not shown for clarity)
+
+ Process header:
+ HEAD -> (gzip) or (zlib) or (raw)
+ (gzip) -> FLAGS -> TIME -> OS -> EXLEN -> EXTRA -> NAME -> COMMENT ->
+ HCRC -> TYPE
+ (zlib) -> DICTID or TYPE
+ DICTID -> DICT -> TYPE
+ (raw) -> TYPEDO
+ Read deflate blocks:
+ TYPE -> TYPEDO -> STORED or TABLE or LEN_ or CHECK
+ STORED -> COPY_ -> COPY -> TYPE
+ TABLE -> LENLENS -> CODELENS -> LEN_
+ LEN_ -> LEN
+ Read deflate codes in fixed or dynamic block:
+ LEN -> LENEXT or LIT or TYPE
+ LENEXT -> DIST -> DISTEXT -> MATCH -> LEN
+ LIT -> LEN
+ Process trailer:
+ CHECK -> LENGTH -> DONE
+ */
+
+/* State maintained between inflate() calls -- approximately 7K bytes, not
+ including the allocated sliding window, which is up to 32K bytes. */
+struct inflate_state {
+ z_streamp strm; /* pointer back to this zlib stream */
+ inflate_mode mode; /* current inflate mode */
+ int last; /* true if processing last block */
+ int wrap; /* bit 0 true for zlib, bit 1 true for gzip,
+ bit 2 true to validate check value */
+ int havedict; /* true if dictionary provided */
+ int flags; /* gzip header method and flags (0 if zlib) */
+ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */
+ unsigned long check; /* protected copy of check value */
+ unsigned long total; /* protected copy of output count */
+ gz_headerp head; /* where to save gzip header information */
+ /* sliding window */
+ unsigned wbits; /* log base 2 of requested window size */
+ unsigned wsize; /* window size or zero if not using window */
+ unsigned whave; /* valid bytes in the window */
+ unsigned wnext; /* window write index */
+ unsigned char FAR *window; /* allocated sliding window, if needed */
+ /* bit accumulator */
+ unsigned long hold; /* input bit accumulator */
+ unsigned bits; /* number of bits in "in" */
+ /* for string and stored block copying */
+ unsigned length; /* literal or length of data to copy */
+ unsigned offset; /* distance back to copy string from */
+ /* for table and code decoding */
+ unsigned extra; /* extra bits needed */
+ /* fixed and dynamic code tables */
+ code const FAR *lencode; /* starting table for length/literal codes */
+ code const FAR *distcode; /* starting table for distance codes */
+ unsigned lenbits; /* index bits for lencode */
+ unsigned distbits; /* index bits for distcode */
+ /* dynamic table building */
+ unsigned ncode; /* number of code length code lengths */
+ unsigned nlen; /* number of length code lengths */
+ unsigned ndist; /* number of distance code lengths */
+ unsigned have; /* number of code lengths in lens[] */
+ code FAR *next; /* next available space in codes[] */
+ unsigned short lens[320]; /* temporary storage for code lengths */
+ unsigned short work[288]; /* work area for code table building */
+ code codes[ENOUGH]; /* space for code tables */
+ int sane; /* if false, allow invalid distance too far */
+ int back; /* bits back of last unprocessed length/lit */
+ unsigned was; /* initial length of match */
+};
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.c
new file mode 100644
index 000000000..2ea08fc13
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.c
@@ -0,0 +1,304 @@
+/* inftrees.c -- generate Huffman trees for efficient decoding
+ * Copyright (C) 1995-2017 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+#include "zutil.h"
+#include "inftrees.h"
+
+#define MAXBITS 15
+
+const char inflate_copyright[] =
+ " inflate 1.2.11 Copyright 1995-2017 Mark Adler ";
+/*
+ If you use the zlib library in a product, an acknowledgment is welcome
+ in the documentation of your product. If for some reason you cannot
+ include such an acknowledgment, I would appreciate that you keep this
+ copyright string in the executable of your product.
+ */
+
+/*
+ Build a set of tables to decode the provided canonical Huffman code.
+ The code lengths are lens[0..codes-1]. The result starts at *table,
+ whose indices are 0..2^bits-1. work is a writable array of at least
+ lens shorts, which is used as a work area. type is the type of code
+ to be generated, CODES, LENS, or DISTS. On return, zero is success,
+ -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
+ on return points to the next available entry's address. bits is the
+ requested root table index bits, and on return it is the actual root
+ table index bits. It will differ if the request is greater than the
+ longest code or if it is less than the shortest code.
+ */
+int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work)
+codetype type;
+unsigned short FAR *lens;
+unsigned codes;
+code FAR * FAR *table;
+unsigned FAR *bits;
+unsigned short FAR *work;
+{
+ unsigned len; /* a code's length in bits */
+ unsigned sym; /* index of code symbols */
+ unsigned min, max; /* minimum and maximum code lengths */
+ unsigned root; /* number of index bits for root table */
+ unsigned curr; /* number of index bits for current table */
+ unsigned drop; /* code bits to drop for sub-table */
+ int left; /* number of prefix codes available */
+ unsigned used; /* code entries in table used */
+ unsigned huff; /* Huffman code */
+ unsigned incr; /* for incrementing code, index */
+ unsigned fill; /* index for replicating entries */
+ unsigned low; /* low bits for current root entry */
+ unsigned mask; /* mask for low root bits */
+ code here; /* table entry for duplication */
+ code FAR *next; /* next available space in table */
+ const unsigned short FAR *base; /* base value table to use */
+ const unsigned short FAR *extra; /* extra bits table to use */
+ unsigned match; /* use base and extra for symbol >= match */
+ unsigned short count[MAXBITS+1]; /* number of codes of each length */
+ unsigned short offs[MAXBITS+1]; /* offsets in table for each length */
+ static const unsigned short lbase[31] = { /* Length codes 257..285 base */
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+ 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
+ static const unsigned short lext[31] = { /* Length codes 257..285 extra */
+ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
+ 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202};
+ static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
+ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+ 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+ 8193, 12289, 16385, 24577, 0, 0};
+ static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
+ 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
+ 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
+ 28, 28, 29, 29, 64, 64};
+
+ /*
+ Process a set of code lengths to create a canonical Huffman code. The
+ code lengths are lens[0..codes-1]. Each length corresponds to the
+ symbols 0..codes-1. The Huffman code is generated by first sorting the
+ symbols by length from short to long, and retaining the symbol order
+ for codes with equal lengths. Then the code starts with all zero bits
+ for the first code of the shortest length, and the codes are integer
+ increments for the same length, and zeros are appended as the length
+ increases. For the deflate format, these bits are stored backwards
+ from their more natural integer increment ordering, and so when the
+ decoding tables are built in the large loop below, the integer codes
+ are incremented backwards.
+
+ This routine assumes, but does not check, that all of the entries in
+ lens[] are in the range 0..MAXBITS. The caller must assure this.
+ 1..MAXBITS is interpreted as that code length. zero means that that
+ symbol does not occur in this code.
+
+ The codes are sorted by computing a count of codes for each length,
+ creating from that a table of starting indices for each length in the
+ sorted table, and then entering the symbols in order in the sorted
+ table. The sorted table is work[], with that space being provided by
+ the caller.
+
+ The length counts are used for other purposes as well, i.e. finding
+ the minimum and maximum length codes, determining if there are any
+ codes at all, checking for a valid set of lengths, and looking ahead
+ at length counts to determine sub-table sizes when building the
+ decoding tables.
+ */
+
+ /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+ for (len = 0; len <= MAXBITS; len++)
+ count[len] = 0;
+ for (sym = 0; sym < codes; sym++)
+ count[lens[sym]]++;
+
+ /* bound code lengths, force root to be within code lengths */
+ root = *bits;
+ for (max = MAXBITS; max >= 1; max--)
+ if (count[max] != 0) break;
+ if (root > max) root = max;
+ if (max == 0) { /* no symbols to code at all */
+ here.op = (unsigned char)64; /* invalid code marker */
+ here.bits = (unsigned char)1;
+ here.val = (unsigned short)0;
+ *(*table)++ = here; /* make a table to force an error */
+ *(*table)++ = here;
+ *bits = 1;
+ return 0; /* no symbols, but wait for decoding to report error */
+ }
+ for (min = 1; min < max; min++)
+ if (count[min] != 0) break;
+ if (root < min) root = min;
+
+ /* check for an over-subscribed or incomplete set of lengths */
+ left = 1;
+ for (len = 1; len <= MAXBITS; len++) {
+ left <<= 1;
+ left -= count[len];
+ if (left < 0) return -1; /* over-subscribed */
+ }
+ if (left > 0 && (type == CODES || max != 1))
+ return -1; /* incomplete set */
+
+ /* generate offsets into symbol table for each length for sorting */
+ offs[1] = 0;
+ for (len = 1; len < MAXBITS; len++)
+ offs[len + 1] = offs[len] + count[len];
+
+ /* sort symbols by length, by symbol order within each length */
+ for (sym = 0; sym < codes; sym++)
+ if (lens[sym] != 0) work[offs[lens[sym]]++] = (unsigned short)sym;
+
+ /*
+ Create and fill in decoding tables. In this loop, the table being
+ filled is at next and has curr index bits. The code being used is huff
+ with length len. That code is converted to an index by dropping drop
+ bits off of the bottom. For codes where len is less than drop + curr,
+ those top drop + curr - len bits are incremented through all values to
+ fill the table with replicated entries.
+
+ root is the number of index bits for the root table. When len exceeds
+ root, sub-tables are created pointed to by the root entry with an index
+ of the low root bits of huff. This is saved in low to check for when a
+ new sub-table should be started. drop is zero when the root table is
+ being filled, and drop is root when sub-tables are being filled.
+
+ When a new sub-table is needed, it is necessary to look ahead in the
+ code lengths to determine what size sub-table is needed. The length
+ counts are used for this, and so count[] is decremented as codes are
+ entered in the tables.
+
+ used keeps track of how many table entries have been allocated from the
+ provided *table space. It is checked for LENS and DIST tables against
+ the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+ the initial root table size constants. See the comments in inftrees.h
+ for more information.
+
+ sym increments through all symbols, and the loop terminates when
+ all codes of length max, i.e. all codes, have been processed. This
+ routine permits incomplete codes, so another loop after this one fills
+ in the rest of the decoding tables with invalid code markers.
+ */
+
+ /* set up for code type */
+ switch (type) {
+ case CODES:
+ base = extra = work; /* dummy value--not used */
+ match = 20;
+ break;
+ case LENS:
+ base = lbase;
+ extra = lext;
+ match = 257;
+ break;
+ default: /* DISTS */
+ base = dbase;
+ extra = dext;
+ match = 0;
+ }
+
+ /* initialize state for loop */
+ huff = 0; /* starting code */
+ sym = 0; /* starting code symbol */
+ len = min; /* starting code length */
+ next = *table; /* current table to fill in */
+ curr = root; /* current table index bits */
+ drop = 0; /* current bits to drop from code for index */
+ low = (unsigned)(-1); /* trigger new sub-table when len > root */
+ used = 1U << root; /* use root table entries */
+ mask = used - 1; /* mask for comparing low */
+
+ /* check available table space */
+ if ((type == LENS && used > ENOUGH_LENS) ||
+ (type == DISTS && used > ENOUGH_DISTS))
+ return 1;
+
+ /* process all codes and make table entries */
+ for (;;) {
+ /* create table entry */
+ here.bits = (unsigned char)(len - drop);
+ if (work[sym] + 1U < match) {
+ here.op = (unsigned char)0;
+ here.val = work[sym];
+ }
+ else if (work[sym] >= match) {
+ here.op = (unsigned char)(extra[work[sym] - match]);
+ here.val = base[work[sym] - match];
+ }
+ else {
+ here.op = (unsigned char)(32 + 64); /* end of block */
+ here.val = 0;
+ }
+
+ /* replicate for those indices with low len bits equal to huff */
+ incr = 1U << (len - drop);
+ fill = 1U << curr;
+ min = fill; /* save offset to next table */
+ do {
+ fill -= incr;
+ next[(huff >> drop) + fill] = here;
+ } while (fill != 0);
+
+ /* backwards increment the len-bit code huff */
+ incr = 1U << (len - 1);
+ while (huff & incr)
+ incr >>= 1;
+ if (incr != 0) {
+ huff &= incr - 1;
+ huff += incr;
+ }
+ else
+ huff = 0;
+
+ /* go to next symbol, update count, len */
+ sym++;
+ if (--(count[len]) == 0) {
+ if (len == max) break;
+ len = lens[work[sym]];
+ }
+
+ /* create new sub-table if needed */
+ if (len > root && (huff & mask) != low) {
+ /* if first time, transition to sub-tables */
+ if (drop == 0)
+ drop = root;
+
+ /* increment past last table */
+ next += min; /* here min is 1 << curr */
+
+ /* determine length of next table */
+ curr = len - drop;
+ left = (int)(1 << curr);
+ while (curr + drop < max) {
+ left -= count[curr + drop];
+ if (left <= 0) break;
+ curr++;
+ left <<= 1;
+ }
+
+ /* check for enough space */
+ used += 1U << curr;
+ if ((type == LENS && used > ENOUGH_LENS) ||
+ (type == DISTS && used > ENOUGH_DISTS))
+ return 1;
+
+ /* point entry in root table to sub-table */
+ low = huff & mask;
+ (*table)[low].op = (unsigned char)curr;
+ (*table)[low].bits = (unsigned char)root;
+ (*table)[low].val = (unsigned short)(next - *table);
+ }
+ }
+
+ /* fill in remaining table entry if code is incomplete (guaranteed to have
+ at most one remaining entry, since if the code is incomplete, the
+ maximum code length that was allowed to get this far is one bit) */
+ if (huff != 0) {
+ here.op = (unsigned char)64; /* invalid code marker */
+ here.bits = (unsigned char)(len - drop);
+ here.val = (unsigned short)0;
+ next[huff] = here;
+ }
+
+ /* set return parameters */
+ *table += used;
+ *bits = root;
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.h
new file mode 100644
index 000000000..baa53a0b1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/inftrees.h
@@ -0,0 +1,62 @@
+/* inftrees.h -- header to use inftrees.c
+ * Copyright (C) 1995-2005, 2010 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* Structure for decoding tables. Each entry provides either the
+ information needed to do the operation requested by the code that
+ indexed that table entry, or it provides a pointer to another
+ table that indexes more bits of the code. op indicates whether
+ the entry is a pointer to another table, a literal, a length or
+ distance, an end-of-block, or an invalid code. For a table
+ pointer, the low four bits of op is the number of index bits of
+ that table. For a length or distance, the low four bits of op
+ is the number of extra bits to get after the code. bits is
+ the number of bits in this code or part of the code to drop off
+ of the bit buffer. val is the actual byte to output in the case
+ of a literal, the base length or distance, or the offset from
+ the current table to the next table. Each entry is four bytes. */
+typedef struct {
+ unsigned char op; /* operation, extra bits, table bits */
+ unsigned char bits; /* bits in this part of the code */
+ unsigned short val; /* offset in table or code value */
+} code;
+
+/* op values as set by inflate_table():
+ 00000000 - literal
+ 0000tttt - table link, tttt != 0 is the number of table index bits
+ 0001eeee - length or distance, eeee is the number of extra bits
+ 01100000 - end of block
+ 01000000 - invalid code
+ */
+
+/* Maximum size of the dynamic table. The maximum number of code structures is
+ 1444, which is the sum of 852 for literal/length codes and 592 for distance
+ codes. These values were found by exhaustive searches using the program
+ examples/enough.c found in the zlib distribtution. The arguments to that
+ program are the number of symbols, the initial root table size, and the
+ maximum bit length of a code. "enough 286 9 15" for literal/length codes
+ returns returns 852, and "enough 30 6 15" for distance codes returns 592.
+ The initial root table size (9 or 6) is found in the fifth argument of the
+ inflate_table() calls in inflate.c and infback.c. If the root table size is
+ changed, then these maximum sizes would be need to be recalculated and
+ updated. */
+#define ENOUGH_LENS 852
+#define ENOUGH_DISTS 592
+#define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
+
+/* Type of code to build for inflate_table() */
+typedef enum {
+ CODES,
+ LENS,
+ DISTS
+} codetype;
+
+int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
+ unsigned codes, code FAR * FAR *table,
+ unsigned FAR *bits, unsigned short FAR *work));
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/make_vms.com b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/make_vms.com
new file mode 100644
index 000000000..65e9d0cbc
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/make_vms.com
@@ -0,0 +1,867 @@
+$! make libz under VMS written by
+$! Martin P.J. Zinser
+$!
+$! In case of problems with the install you might contact me at
+$! zinser@zinser.no-ip.info(preferred) or
+$! martin.zinser@eurexchange.com (work)
+$!
+$! Make procedure history for Zlib
+$!
+$!------------------------------------------------------------------------------
+$! Version history
+$! 0.01 20060120 First version to receive a number
+$! 0.02 20061008 Adapt to new Makefile.in
+$! 0.03 20091224 Add support for large file check
+$! 0.04 20100110 Add new gzclose, gzlib, gzread, gzwrite
+$! 0.05 20100221 Exchange zlibdefs.h by zconf.h.in
+$! 0.06 20120111 Fix missing amiss_err, update zconf_h.in, fix new exmples
+$! subdir path, update module search in makefile.in
+$! 0.07 20120115 Triggered by work done by Alexey Chupahin completly redesigned
+$! shared image creation
+$! 0.08 20120219 Make it work on VAX again, pre-load missing symbols to shared
+$! image
+$! 0.09 20120305 SMS. P1 sets builder ("MMK", "MMS", " " (built-in)).
+$! "" -> automatic, preference: MMK, MMS, built-in.
+$!
+$ on error then goto err_exit
+$!
+$ true = 1
+$ false = 0
+$ tmpnam = "temp_" + f$getjpi("","pid")
+$ tt = tmpnam + ".txt"
+$ tc = tmpnam + ".c"
+$ th = tmpnam + ".h"
+$ define/nolog tconfig 'th'
+$ its_decc = false
+$ its_vaxc = false
+$ its_gnuc = false
+$ s_case = False
+$!
+$! Setup variables holding "config" information
+$!
+$ Make = "''p1'"
+$ name = "Zlib"
+$ version = "?.?.?"
+$ v_string = "ZLIB_VERSION"
+$ v_file = "zlib.h"
+$ ccopt = "/include = []"
+$ lopts = ""
+$ dnsrl = ""
+$ aconf_in_file = "zconf.h.in#zconf.h_in#zconf_h.in"
+$ conf_check_string = ""
+$ linkonly = false
+$ optfile = name + ".opt"
+$ mapfile = name + ".map"
+$ libdefs = ""
+$ vax = f$getsyi("HW_MODEL").lt.1024
+$ axp = f$getsyi("HW_MODEL").ge.1024 .and. f$getsyi("HW_MODEL").lt.4096
+$ ia64 = f$getsyi("HW_MODEL").ge.4096
+$!
+$! 2012-03-05 SMS.
+$! Why is this needed? And if it is needed, why not simply ".not. vax"?
+$!
+$!!! if axp .or. ia64 then set proc/parse=extended
+$!
+$ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL")
+$ mydef = F$parse(whoami,,,"DEVICE")
+$ mydir = f$parse(whoami,,,"DIRECTORY") - "]["
+$ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type")
+$!
+$! Check for MMK/MMS
+$!
+$ if (Make .eqs. "")
+$ then
+$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
+$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
+$ else
+$ Make = f$edit( Make, "trim")
+$ endif
+$!
+$ gosub find_version
+$!
+$ open/write topt tmp.opt
+$ open/write optf 'optfile'
+$!
+$ gosub check_opts
+$!
+$! Look for the compiler used
+$!
+$ gosub check_compiler
+$ close topt
+$ close optf
+$!
+$ if its_decc
+$ then
+$ ccopt = "/prefix=all" + ccopt
+$ if f$trnlnm("SYS") .eqs. ""
+$ then
+$ if axp
+$ then
+$ define sys sys$library:
+$ else
+$ ccopt = "/decc" + ccopt
+$ define sys decc$library_include:
+$ endif
+$ endif
+$!
+$! 2012-03-05 SMS.
+$! Why /NAMES = AS_IS? Why not simply ".not. vax"? And why not on VAX?
+$!
+$ if axp .or. ia64
+$ then
+$ ccopt = ccopt + "/name=as_is/opt=(inline=speed)"
+$ s_case = true
+$ endif
+$ endif
+$ if its_vaxc .or. its_gnuc
+$ then
+$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
+$ endif
+$!
+$! Build a fake configure input header
+$!
+$ open/write conf_hin config.hin
+$ write conf_hin "#undef _LARGEFILE64_SOURCE"
+$ close conf_hin
+$!
+$!
+$ i = 0
+$FIND_ACONF:
+$ fname = f$element(i,"#",aconf_in_file)
+$ if fname .eqs. "#" then goto AMISS_ERR
+$ if f$search(fname) .eqs. ""
+$ then
+$ i = i + 1
+$ goto find_aconf
+$ endif
+$ open/read/err=aconf_err aconf_in 'fname'
+$ open/write aconf zconf.h
+$ACONF_LOOP:
+$ read/end_of_file=aconf_exit aconf_in line
+$ work = f$edit(line, "compress,trim")
+$ if f$extract(0,6,work) .nes. "#undef"
+$ then
+$ if f$extract(0,12,work) .nes. "#cmakedefine"
+$ then
+$ write aconf line
+$ endif
+$ else
+$ cdef = f$element(1," ",work)
+$ gosub check_config
+$ endif
+$ goto aconf_loop
+$ACONF_EXIT:
+$ write aconf ""
+$ write aconf "/* VMS specifics added by make_vms.com: */"
+$ write aconf "#define VMS 1"
+$ write aconf "#include <unistd.h>"
+$ write aconf "#include <unixio.h>"
+$ write aconf "#ifdef _LARGEFILE"
+$ write aconf "# define off64_t __off64_t"
+$ write aconf "# define fopen64 fopen"
+$ write aconf "# define fseeko64 fseeko"
+$ write aconf "# define lseek64 lseek"
+$ write aconf "# define ftello64 ftell"
+$ write aconf "#endif"
+$ write aconf "#if !defined( __VAX) && (__CRTL_VER >= 70312000)"
+$ write aconf "# define HAVE_VSNPRINTF"
+$ write aconf "#endif"
+$ close aconf_in
+$ close aconf
+$ if f$search("''th'") .nes. "" then delete 'th';*
+$! Build the thing plain or with mms
+$!
+$ write sys$output "Compiling Zlib sources ..."
+$ if make.eqs.""
+$ then
+$ if (f$search( "example.obj;*") .nes. "") then delete example.obj;*
+$ if (f$search( "minigzip.obj;*") .nes. "") then delete minigzip.obj;*
+$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" -
+ adler32.c zlib.h zconf.h
+$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" -
+ compress.c zlib.h zconf.h
+$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" -
+ crc32.c zlib.h zconf.h
+$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" -
+ deflate.c deflate.h zutil.h zlib.h zconf.h
+$ CALL MAKE gzclose.OBJ "CC ''CCOPT' gzclose" -
+ gzclose.c zutil.h zlib.h zconf.h
+$ CALL MAKE gzlib.OBJ "CC ''CCOPT' gzlib" -
+ gzlib.c zutil.h zlib.h zconf.h
+$ CALL MAKE gzread.OBJ "CC ''CCOPT' gzread" -
+ gzread.c zutil.h zlib.h zconf.h
+$ CALL MAKE gzwrite.OBJ "CC ''CCOPT' gzwrite" -
+ gzwrite.c zutil.h zlib.h zconf.h
+$ CALL MAKE infback.OBJ "CC ''CCOPT' infback" -
+ infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h
+$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" -
+ inffast.c zutil.h zlib.h zconf.h inffast.h
+$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" -
+ inflate.c zutil.h zlib.h zconf.h infblock.h
+$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" -
+ inftrees.c zutil.h zlib.h zconf.h inftrees.h
+$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" -
+ trees.c deflate.h zutil.h zlib.h zconf.h
+$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" -
+ uncompr.c zlib.h zconf.h
+$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" -
+ zutil.c zutil.h zlib.h zconf.h
+$ write sys$output "Building Zlib ..."
+$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ
+$ write sys$output "Building example..."
+$ CALL MAKE example.OBJ "CC ''CCOPT' [.test]example" -
+ [.test]example.c zlib.h zconf.h
+$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb
+$ write sys$output "Building minigzip..."
+$ CALL MAKE minigzip.OBJ "CC ''CCOPT' [.test]minigzip" -
+ [.test]minigzip.c zlib.h zconf.h
+$ call make minigzip.exe -
+ "LINK minigzip,libz.olb/lib" -
+ minigzip.obj libz.olb
+$ else
+$ gosub crea_mms
+$ write sys$output "Make ''name' ''version' with ''Make' "
+$ 'make'
+$ endif
+$!
+$! Create shareable image
+$!
+$ gosub crea_olist
+$ write sys$output "Creating libzshr.exe"
+$ call map_2_shopt 'mapfile' 'optfile'
+$ LINK_'lopts'/SHARE=libzshr.exe modules.opt/opt,'optfile'/opt
+$ write sys$output "Zlib build completed"
+$ delete/nolog tmp.opt;*
+$ exit
+$AMISS_ERR:
+$ write sys$output "No source for config.hin found."
+$ write sys$output "Tried any of ''aconf_in_file'"
+$ goto err_exit
+$CC_ERR:
+$ write sys$output "C compiler required to build ''name'"
+$ goto err_exit
+$ERR_EXIT:
+$ set message/facil/ident/sever/text
+$ close/nolog optf
+$ close/nolog topt
+$ close/nolog aconf_in
+$ close/nolog aconf
+$ close/nolog out
+$ close/nolog min
+$ close/nolog mod
+$ close/nolog h_in
+$ write sys$output "Exiting..."
+$ exit 2
+$!
+$!
+$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES
+$ V = 'F$Verify(0)
+$! P1 = What we are trying to make
+$! P2 = Command to make it
+$! P3 - P8 What it depends on
+$
+$ If F$Search(P1) .Eqs. "" Then Goto Makeit
+$ Time = F$CvTime(F$File(P1,"RDT"))
+$arg=3
+$Loop:
+$ Argument = P'arg
+$ If Argument .Eqs. "" Then Goto Exit
+$ El=0
+$Loop2:
+$ File = F$Element(El," ",Argument)
+$ If File .Eqs. " " Then Goto Endl
+$ AFile = ""
+$Loop3:
+$ OFile = AFile
+$ AFile = F$Search(File)
+$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl
+$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit
+$ Goto Loop3
+$NextEL:
+$ El = El + 1
+$ Goto Loop2
+$EndL:
+$ arg=arg+1
+$ If arg .Le. 8 Then Goto Loop
+$ Goto Exit
+$
+$Makeit:
+$ VV=F$VERIFY(0)
+$ write sys$output P2
+$ 'P2
+$ VV='F$Verify(VV)
+$Exit:
+$ If V Then Set Verify
+$ENDSUBROUTINE
+$!------------------------------------------------------------------------------
+$!
+$! Check command line options and set symbols accordingly
+$!
+$!------------------------------------------------------------------------------
+$! Version history
+$! 0.01 20041206 First version to receive a number
+$! 0.02 20060126 Add new "HELP" target
+$ CHECK_OPTS:
+$ i = 1
+$ OPT_LOOP:
+$ if i .lt. 9
+$ then
+$ cparm = f$edit(p'i',"upcase")
+$!
+$! Check if parameter actually contains something
+$!
+$ if f$edit(cparm,"trim") .nes. ""
+$ then
+$ if cparm .eqs. "DEBUG"
+$ then
+$ ccopt = ccopt + "/noopt/deb"
+$ lopts = lopts + "/deb"
+$ endif
+$ if f$locate("CCOPT=",cparm) .lt. f$length(cparm)
+$ then
+$ start = f$locate("=",cparm) + 1
+$ len = f$length(cparm) - start
+$ ccopt = ccopt + f$extract(start,len,cparm)
+$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) -
+ then s_case = true
+$ endif
+$ if cparm .eqs. "LINK" then linkonly = true
+$ if f$locate("LOPTS=",cparm) .lt. f$length(cparm)
+$ then
+$ start = f$locate("=",cparm) + 1
+$ len = f$length(cparm) - start
+$ lopts = lopts + f$extract(start,len,cparm)
+$ endif
+$ if f$locate("CC=",cparm) .lt. f$length(cparm)
+$ then
+$ start = f$locate("=",cparm) + 1
+$ len = f$length(cparm) - start
+$ cc_com = f$extract(start,len,cparm)
+ if (cc_com .nes. "DECC") .and. -
+ (cc_com .nes. "VAXC") .and. -
+ (cc_com .nes. "GNUC")
+$ then
+$ write sys$output "Unsupported compiler choice ''cc_com' ignored"
+$ write sys$output "Use DECC, VAXC, or GNUC instead"
+$ else
+$ if cc_com .eqs. "DECC" then its_decc = true
+$ if cc_com .eqs. "VAXC" then its_vaxc = true
+$ if cc_com .eqs. "GNUC" then its_gnuc = true
+$ endif
+$ endif
+$ if f$locate("MAKE=",cparm) .lt. f$length(cparm)
+$ then
+$ start = f$locate("=",cparm) + 1
+$ len = f$length(cparm) - start
+$ mmks = f$extract(start,len,cparm)
+$ if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS")
+$ then
+$ make = mmks
+$ else
+$ write sys$output "Unsupported make choice ''mmks' ignored"
+$ write sys$output "Use MMK or MMS instead"
+$ endif
+$ endif
+$ if cparm .eqs. "HELP" then gosub bhelp
+$ endif
+$ i = i + 1
+$ goto opt_loop
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Look for the compiler used
+$!
+$! Version history
+$! 0.01 20040223 First version to receive a number
+$! 0.02 20040229 Save/set value of decc$no_rooted_search_lists
+$! 0.03 20060202 Extend handling of GNU C
+$! 0.04 20090402 Compaq -> hp
+$CHECK_COMPILER:
+$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc))
+$ then
+$ its_decc = (f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "")
+$ its_vaxc = .not. its_decc .and. (F$Search("SYS$System:VAXC.Exe") .nes. "")
+$ its_gnuc = .not. (its_decc .or. its_vaxc) .and. (f$trnlnm("gnu_cc") .nes. "")
+$ endif
+$!
+$! Exit if no compiler available
+$!
+$ if (.not. (its_decc .or. its_vaxc .or. its_gnuc))
+$ then goto CC_ERR
+$ else
+$ if its_decc
+$ then
+$ write sys$output "CC compiler check ... hp C"
+$ if f$trnlnm("decc$no_rooted_search_lists") .nes. ""
+$ then
+$ dnrsl = f$trnlnm("decc$no_rooted_search_lists")
+$ endif
+$ define/nolog decc$no_rooted_search_lists 1
+$ else
+$ if its_vaxc then write sys$output "CC compiler check ... VAX C"
+$ if its_gnuc
+$ then
+$ write sys$output "CC compiler check ... GNU C"
+$ if f$trnlnm(topt) then write topt "gnu_cc:[000000]gcclib.olb/lib"
+$ if f$trnlnm(optf) then write optf "gnu_cc:[000000]gcclib.olb/lib"
+$ cc = "gcc"
+$ endif
+$ if f$trnlnm(topt) then write topt "sys$share:vaxcrtl.exe/share"
+$ if f$trnlnm(optf) then write optf "sys$share:vaxcrtl.exe/share"
+$ endif
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! If MMS/MMK are available dump out the descrip.mms if required
+$!
+$CREA_MMS:
+$ write sys$output "Creating descrip.mms..."
+$ create descrip.mms
+$ open/append out descrip.mms
+$ copy sys$input: out
+$ deck
+# descrip.mms: MMS description file for building zlib on VMS
+# written by Martin P.J. Zinser
+# <zinser@zinser.no-ip.info or martin.zinser@eurexchange.com>
+
+OBJS = adler32.obj, compress.obj, crc32.obj, gzclose.obj, gzlib.obj\
+ gzread.obj, gzwrite.obj, uncompr.obj, infback.obj\
+ deflate.obj, trees.obj, zutil.obj, inflate.obj, \
+ inftrees.obj, inffast.obj
+
+$ eod
+$ write out "CFLAGS=", ccopt
+$ write out "LOPTS=", lopts
+$ write out "all : example.exe minigzip.exe libz.olb"
+$ copy sys$input: out
+$ deck
+ @ write sys$output " Example applications available"
+
+libz.olb : libz.olb($(OBJS))
+ @ write sys$output " libz available"
+
+example.exe : example.obj libz.olb
+ link $(LOPTS) example,libz.olb/lib
+
+minigzip.exe : minigzip.obj libz.olb
+ link $(LOPTS) minigzip,libz.olb/lib
+
+clean :
+ delete *.obj;*,libz.olb;*,*.opt;*,*.exe;*
+
+
+# Other dependencies.
+adler32.obj : adler32.c zutil.h zlib.h zconf.h
+compress.obj : compress.c zlib.h zconf.h
+crc32.obj : crc32.c zutil.h zlib.h zconf.h
+deflate.obj : deflate.c deflate.h zutil.h zlib.h zconf.h
+example.obj : [.test]example.c zlib.h zconf.h
+gzclose.obj : gzclose.c zutil.h zlib.h zconf.h
+gzlib.obj : gzlib.c zutil.h zlib.h zconf.h
+gzread.obj : gzread.c zutil.h zlib.h zconf.h
+gzwrite.obj : gzwrite.c zutil.h zlib.h zconf.h
+inffast.obj : inffast.c zutil.h zlib.h zconf.h inftrees.h inffast.h
+inflate.obj : inflate.c zutil.h zlib.h zconf.h
+inftrees.obj : inftrees.c zutil.h zlib.h zconf.h inftrees.h
+minigzip.obj : [.test]minigzip.c zlib.h zconf.h
+trees.obj : trees.c deflate.h zutil.h zlib.h zconf.h
+uncompr.obj : uncompr.c zlib.h zconf.h
+zutil.obj : zutil.c zutil.h zlib.h zconf.h
+infback.obj : infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h
+$ eod
+$ close out
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Read list of core library sources from makefile.in and create options
+$! needed to build shareable image
+$!
+$CREA_OLIST:
+$ open/read min makefile.in
+$ open/write mod modules.opt
+$ src_check_list = "OBJZ =#OBJG ="
+$MRLOOP:
+$ read/end=mrdone min rec
+$ i = 0
+$SRC_CHECK_LOOP:
+$ src_check = f$element(i, "#", src_check_list)
+$ i = i+1
+$ if src_check .eqs. "#" then goto mrloop
+$ if (f$extract(0,6,rec) .nes. src_check) then goto src_check_loop
+$ rec = rec - src_check
+$ gosub extra_filnam
+$ if (f$element(1,"\",rec) .eqs. "\") then goto mrloop
+$MRSLOOP:
+$ read/end=mrdone min rec
+$ gosub extra_filnam
+$ if (f$element(1,"\",rec) .nes. "\") then goto mrsloop
+$MRDONE:
+$ close min
+$ close mod
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Take record extracted in crea_olist and split it into single filenames
+$!
+$EXTRA_FILNAM:
+$ myrec = f$edit(rec - "\", "trim,compress")
+$ i = 0
+$FELOOP:
+$ srcfil = f$element(i," ", myrec)
+$ if (srcfil .nes. " ")
+$ then
+$ write mod f$parse(srcfil,,,"NAME"), ".obj"
+$ i = i + 1
+$ goto feloop
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Find current Zlib version number
+$!
+$FIND_VERSION:
+$ open/read h_in 'v_file'
+$hloop:
+$ read/end=hdone h_in rec
+$ rec = f$edit(rec,"TRIM")
+$ if (f$extract(0,1,rec) .nes. "#") then goto hloop
+$ rec = f$edit(rec - "#", "TRIM")
+$ if f$element(0," ",rec) .nes. "define" then goto hloop
+$ if f$element(1," ",rec) .eqs. v_string
+$ then
+$ version = 'f$element(2," ",rec)'
+$ goto hdone
+$ endif
+$ goto hloop
+$hdone:
+$ close h_in
+$ return
+$!------------------------------------------------------------------------------
+$!
+$CHECK_CONFIG:
+$!
+$ in_ldef = f$locate(cdef,libdefs)
+$ if (in_ldef .lt. f$length(libdefs))
+$ then
+$ write aconf "#define ''cdef' 1"
+$ libdefs = f$extract(0,in_ldef,libdefs) + -
+ f$extract(in_ldef + f$length(cdef) + 1, -
+ f$length(libdefs) - in_ldef - f$length(cdef) - 1, -
+ libdefs)
+$ else
+$ if (f$type('cdef') .eqs. "INTEGER")
+$ then
+$ write aconf "#define ''cdef' ", 'cdef'
+$ else
+$ if (f$type('cdef') .eqs. "STRING")
+$ then
+$ write aconf "#define ''cdef' ", """", '''cdef'', """"
+$ else
+$ gosub check_cc_def
+$ endif
+$ endif
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Check if this is a define relating to the properties of the C/C++
+$! compiler
+$!
+$ CHECK_CC_DEF:
+$ if (cdef .eqs. "_LARGEFILE64_SOURCE")
+$ then
+$ copy sys$input: 'tc'
+$ deck
+#include "tconfig"
+#define _LARGEFILE
+#include <stdio.h>
+
+int main(){
+FILE *fp;
+ fp = fopen("temp.txt","r");
+ fseeko(fp,1,SEEK_SET);
+ fclose(fp);
+}
+
+$ eod
+$ test_inv = false
+$ comm_h = false
+$ gosub cc_prop_check
+$ return
+$ endif
+$ write aconf "/* ", line, " */"
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Check for properties of C/C++ compiler
+$!
+$! Version history
+$! 0.01 20031020 First version to receive a number
+$! 0.02 20031022 Added logic for defines with value
+$! 0.03 20040309 Make sure local config file gets not deleted
+$! 0.04 20041230 Also write include for configure run
+$! 0.05 20050103 Add processing of "comment defines"
+$CC_PROP_CHECK:
+$ cc_prop = true
+$ is_need = false
+$ is_need = (f$extract(0,4,cdef) .eqs. "NEED") .or. (test_inv .eq. true)
+$ if f$search(th) .eqs. "" then create 'th'
+$ set message/nofac/noident/nosever/notext
+$ on error then continue
+$ cc 'tmpnam'
+$ if .not. ($status) then cc_prop = false
+$ on error then continue
+$! The headers might lie about the capabilities of the RTL
+$ link 'tmpnam',tmp.opt/opt
+$ if .not. ($status) then cc_prop = false
+$ set message/fac/ident/sever/text
+$ on error then goto err_exit
+$ delete/nolog 'tmpnam'.*;*/exclude='th'
+$ if (cc_prop .and. .not. is_need) .or. -
+ (.not. cc_prop .and. is_need)
+$ then
+$ write sys$output "Checking for ''cdef'... yes"
+$ if f$type('cdef_val'_yes) .nes. ""
+$ then
+$ if f$type('cdef_val'_yes) .eqs. "INTEGER" -
+ then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_yes)
+$ if f$type('cdef_val'_yes) .eqs. "STRING" -
+ then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_yes)
+$ else
+$ call write_config f$fao("#define !AS 1",cdef)
+$ endif
+$ if (cdef .eqs. "HAVE_FSEEKO") .or. (cdef .eqs. "_LARGE_FILES") .or. -
+ (cdef .eqs. "_LARGEFILE64_SOURCE") then -
+ call write_config f$string("#define _LARGEFILE 1")
+$ else
+$ write sys$output "Checking for ''cdef'... no"
+$ if (comm_h)
+$ then
+ call write_config f$fao("/* !AS */",line)
+$ else
+$ if f$type('cdef_val'_no) .nes. ""
+$ then
+$ if f$type('cdef_val'_no) .eqs. "INTEGER" -
+ then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_no)
+$ if f$type('cdef_val'_no) .eqs. "STRING" -
+ then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_no)
+$ else
+$ call write_config f$fao("#undef !AS",cdef)
+$ endif
+$ endif
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Check for properties of C/C++ compiler with multiple result values
+$!
+$! Version history
+$! 0.01 20040127 First version
+$! 0.02 20050103 Reconcile changes from cc_prop up to version 0.05
+$CC_MPROP_CHECK:
+$ cc_prop = true
+$ i = 1
+$ idel = 1
+$ MT_LOOP:
+$ if f$type(result_'i') .eqs. "STRING"
+$ then
+$ set message/nofac/noident/nosever/notext
+$ on error then continue
+$ cc 'tmpnam'_'i'
+$ if .not. ($status) then cc_prop = false
+$ on error then continue
+$! The headers might lie about the capabilities of the RTL
+$ link 'tmpnam'_'i',tmp.opt/opt
+$ if .not. ($status) then cc_prop = false
+$ set message/fac/ident/sever/text
+$ on error then goto err_exit
+$ delete/nolog 'tmpnam'_'i'.*;*
+$ if (cc_prop)
+$ then
+$ write sys$output "Checking for ''cdef'... ", mdef_'i'
+$ if f$type(mdef_'i') .eqs. "INTEGER" -
+ then call write_config f$fao("#define !AS !UL",cdef,mdef_'i')
+$ if f$type('cdef_val'_yes) .eqs. "STRING" -
+ then call write_config f$fao("#define !AS !AS",cdef,mdef_'i')
+$ goto msym_clean
+$ else
+$ i = i + 1
+$ goto mt_loop
+$ endif
+$ endif
+$ write sys$output "Checking for ''cdef'... no"
+$ call write_config f$fao("#undef !AS",cdef)
+$ MSYM_CLEAN:
+$ if (idel .le. msym_max)
+$ then
+$ delete/sym mdef_'idel'
+$ idel = idel + 1
+$ goto msym_clean
+$ endif
+$ return
+$!------------------------------------------------------------------------------
+$!
+$! Write configuration to both permanent and temporary config file
+$!
+$! Version history
+$! 0.01 20031029 First version to receive a number
+$!
+$WRITE_CONFIG: SUBROUTINE
+$ write aconf 'p1'
+$ open/append confh 'th'
+$ write confh 'p1'
+$ close confh
+$ENDSUBROUTINE
+$!------------------------------------------------------------------------------
+$!
+$! Analyze the project map file and create the symbol vector for a shareable
+$! image from it
+$!
+$! Version history
+$! 0.01 20120128 First version
+$! 0.02 20120226 Add pre-load logic
+$!
+$ MAP_2_SHOPT: Subroutine
+$!
+$ SAY := "WRITE_ SYS$OUTPUT"
+$!
+$ IF F$SEARCH("''P1'") .EQS. ""
+$ THEN
+$ SAY "MAP_2_SHOPT-E-NOSUCHFILE: Error, inputfile ''p1' not available"
+$ goto exit_m2s
+$ ENDIF
+$ IF "''P2'" .EQS. ""
+$ THEN
+$ SAY "MAP_2_SHOPT: Error, no output file provided"
+$ goto exit_m2s
+$ ENDIF
+$!
+$ module1 = "deflate#deflateEnd#deflateInit_#deflateParams#deflateSetDictionary"
+$ module2 = "gzclose#gzerror#gzgetc#gzgets#gzopen#gzprintf#gzputc#gzputs#gzread"
+$ module3 = "gzseek#gztell#inflate#inflateEnd#inflateInit_#inflateSetDictionary"
+$ module4 = "inflateSync#uncompress#zlibVersion#compress"
+$ open/read map 'p1
+$ if axp .or. ia64
+$ then
+$ open/write aopt a.opt
+$ open/write bopt b.opt
+$ write aopt " CASE_SENSITIVE=YES"
+$ write bopt "SYMBOL_VECTOR= (-"
+$ mod_sym_num = 1
+$ MOD_SYM_LOOP:
+$ if f$type(module'mod_sym_num') .nes. ""
+$ then
+$ mod_in = 0
+$ MOD_SYM_IN:
+$ shared_proc = f$element(mod_in, "#", module'mod_sym_num')
+$ if shared_proc .nes. "#"
+$ then
+$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",-
+ f$edit(shared_proc,"upcase"),shared_proc)
+$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc)
+$ mod_in = mod_in + 1
+$ goto mod_sym_in
+$ endif
+$ mod_sym_num = mod_sym_num + 1
+$ goto mod_sym_loop
+$ endif
+$MAP_LOOP:
+$ read/end=map_end map line
+$ if (f$locate("{",line).lt. f$length(line)) .or. -
+ (f$locate("global:", line) .lt. f$length(line))
+$ then
+$ proc = true
+$ goto map_loop
+$ endif
+$ if f$locate("}",line).lt. f$length(line) then proc = false
+$ if f$locate("local:", line) .lt. f$length(line) then proc = false
+$ if proc
+$ then
+$ shared_proc = f$edit(line,"collapse")
+$ chop_semi = f$locate(";", shared_proc)
+$ if chop_semi .lt. f$length(shared_proc) then -
+ shared_proc = f$extract(0, chop_semi, shared_proc)
+$ write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",-
+ f$edit(shared_proc,"upcase"),shared_proc)
+$ write bopt f$fao("!AS=PROCEDURE,-",shared_proc)
+$ endif
+$ goto map_loop
+$MAP_END:
+$ close/nolog aopt
+$ close/nolog bopt
+$ open/append libopt 'p2'
+$ open/read aopt a.opt
+$ open/read bopt b.opt
+$ALOOP:
+$ read/end=aloop_end aopt line
+$ write libopt line
+$ goto aloop
+$ALOOP_END:
+$ close/nolog aopt
+$ sv = ""
+$BLOOP:
+$ read/end=bloop_end bopt svn
+$ if (svn.nes."")
+$ then
+$ if (sv.nes."") then write libopt sv
+$ sv = svn
+$ endif
+$ goto bloop
+$BLOOP_END:
+$ write libopt f$extract(0,f$length(sv)-2,sv), "-"
+$ write libopt ")"
+$ close/nolog bopt
+$ delete/nolog/noconf a.opt;*,b.opt;*
+$ else
+$ if vax
+$ then
+$ open/append libopt 'p2'
+$ mod_sym_num = 1
+$ VMOD_SYM_LOOP:
+$ if f$type(module'mod_sym_num') .nes. ""
+$ then
+$ mod_in = 0
+$ VMOD_SYM_IN:
+$ shared_proc = f$element(mod_in, "#", module'mod_sym_num')
+$ if shared_proc .nes. "#"
+$ then
+$ write libopt f$fao("UNIVERSAL=!AS",-
+ f$edit(shared_proc,"upcase"))
+$ mod_in = mod_in + 1
+$ goto vmod_sym_in
+$ endif
+$ mod_sym_num = mod_sym_num + 1
+$ goto vmod_sym_loop
+$ endif
+$VMAP_LOOP:
+$ read/end=vmap_end map line
+$ if (f$locate("{",line).lt. f$length(line)) .or. -
+ (f$locate("global:", line) .lt. f$length(line))
+$ then
+$ proc = true
+$ goto vmap_loop
+$ endif
+$ if f$locate("}",line).lt. f$length(line) then proc = false
+$ if f$locate("local:", line) .lt. f$length(line) then proc = false
+$ if proc
+$ then
+$ shared_proc = f$edit(line,"collapse")
+$ chop_semi = f$locate(";", shared_proc)
+$ if chop_semi .lt. f$length(shared_proc) then -
+ shared_proc = f$extract(0, chop_semi, shared_proc)
+$ write libopt f$fao("UNIVERSAL=!AS",-
+ f$edit(shared_proc,"upcase"))
+$ endif
+$ goto vmap_loop
+$VMAP_END:
+$ else
+$ write sys$output "Unknown Architecture (Not VAX, AXP, or IA64)"
+$ write sys$output "No options file created"
+$ endif
+$ endif
+$ EXIT_M2S:
+$ close/nolog map
+$ close/nolog libopt
+$ endsubroutine
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.bor b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.bor
new file mode 100644
index 000000000..3d12a2c25
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.bor
@@ -0,0 +1,115 @@
+# Makefile for zlib
+# Borland C++
+# Last updated: 15-Mar-2003
+
+# To use, do "make -fmakefile.bor"
+# To compile in small model, set below: MODEL=s
+
+# WARNING: the small model is supported but only for small values of
+# MAX_WBITS and MAX_MEM_LEVEL. For example:
+# -DMAX_WBITS=11 -DDEF_WBITS=11 -DMAX_MEM_LEVEL=3
+# If you wish to reduce the memory requirements (default 256K for big
+# objects plus a few K), you can add to the LOC macro below:
+# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
+# See zconf.h for details about the memory requirements.
+
+# ------------ Turbo C++, Borland C++ ------------
+
+# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7)
+# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or added
+# to the declaration of LOC here:
+LOC = $(LOCAL_ZLIB)
+
+# type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
+CPU_TYP = 0
+
+# memory model: one of s, m, c, l (small, medium, compact, large)
+MODEL=l
+
+# replace bcc with tcc for Turbo C++ 1.0, with bcc32 for the 32 bit version
+CC=bcc
+LD=bcc
+AR=tlib
+
+# compiler flags
+# replace "-O2" by "-O -G -a -d" for Turbo C++ 1.0
+CFLAGS=-O2 -Z -m$(MODEL) $(LOC)
+
+LDFLAGS=-m$(MODEL) -f-
+
+
+# variables
+ZLIB_LIB = zlib_$(MODEL).lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj
+OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(CFLAGS) $*.c
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+
+
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2)
+ -del $(ZLIB_LIB)
+ $(AR) $(ZLIB_LIB) $(OBJP1)
+ $(AR) $(ZLIB_LIB) $(OBJP2)
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
+
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+clean:
+ -del *.obj
+ -del *.lib
+ -del *.exe
+ -del zlib_*.bak
+ -del foo.gz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.dj2 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.dj2
new file mode 100644
index 000000000..59d2037d6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.dj2
@@ -0,0 +1,104 @@
+# Makefile for zlib. Modified for djgpp v2.0 by F. J. Donahoe, 3/15/96.
+# Copyright (C) 1995-1998 Jean-loup Gailly.
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile, or to compile and test, type:
+#
+# make -fmakefile.dj2; make test -fmakefile.dj2
+#
+# To install libz.a, zconf.h and zlib.h in the djgpp directories, type:
+#
+# make install -fmakefile.dj2
+#
+# after first defining LIBRARY_PATH and INCLUDE_PATH in djgpp.env as
+# in the sample below if the pattern of the DJGPP distribution is to
+# be followed. Remember that, while <sp>'es around <=> are ignored in
+# makefiles, they are *not* in batch files or in djgpp.env.
+# - - - - -
+# [make]
+# INCLUDE_PATH=%\>;INCLUDE_PATH%%\DJDIR%\include
+# LIBRARY_PATH=%\>;LIBRARY_PATH%%\DJDIR%\lib
+# BUTT=-m486
+# - - - - -
+# Alternately, these variables may be defined below, overriding the values
+# in djgpp.env, as
+# INCLUDE_PATH=c:\usr\include
+# LIBRARY_PATH=c:\usr\lib
+
+CC=gcc
+
+#CFLAGS=-MMD -O
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-MMD -g -DZLIB_DEBUG
+CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+ -Wstrict-prototypes -Wmissing-prototypes
+
+# If cp.exe is available, replace "copy /Y" with "cp -fp" .
+CP=copy /Y
+# If gnu install.exe is available, replace $(CP) with ginstall.
+INSTALL=$(CP)
+# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
+RM=del
+LDLIBS=-L. -lz
+LD=$(CC) -s -o
+LDSHARED=$(CC)
+
+INCL=zlib.h zconf.h
+LIBS=libz.a
+
+AR=ar rcs
+
+prefix=/usr/local
+exec_prefix = $(prefix)
+
+OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \
+ uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
+
+OBJA =
+# to use the asm code: make OBJA=match.o
+
+TEST_OBJS = example.o minigzip.o
+
+all: example.exe minigzip.exe
+
+check: test
+test: all
+ ./example
+ echo hello world | .\minigzip | .\minigzip -d
+
+%.o : %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+libz.a: $(OBJS) $(OBJA)
+ $(AR) $@ $(OBJS) $(OBJA)
+
+%.exe : %.o $(LIBS)
+ $(LD) $@ $< $(LDLIBS)
+
+# INCLUDE_PATH and LIBRARY_PATH were set for [make] in djgpp.env .
+
+.PHONY : uninstall clean
+
+install: $(INCL) $(LIBS)
+ -@if not exist $(INCLUDE_PATH)\nul mkdir $(INCLUDE_PATH)
+ -@if not exist $(LIBRARY_PATH)\nul mkdir $(LIBRARY_PATH)
+ $(INSTALL) zlib.h $(INCLUDE_PATH)
+ $(INSTALL) zconf.h $(INCLUDE_PATH)
+ $(INSTALL) libz.a $(LIBRARY_PATH)
+
+uninstall:
+ $(RM) $(INCLUDE_PATH)\zlib.h
+ $(RM) $(INCLUDE_PATH)\zconf.h
+ $(RM) $(LIBRARY_PATH)\libz.a
+
+clean:
+ $(RM) *.d
+ $(RM) *.o
+ $(RM) *.exe
+ $(RM) libz.a
+ $(RM) foo.gz
+
+DEPS := $(wildcard *.d)
+ifneq ($(DEPS),)
+include $(DEPS)
+endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.emx b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.emx
new file mode 100644
index 000000000..e30f67bed
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.emx
@@ -0,0 +1,69 @@
+# Makefile for zlib. Modified for emx 0.9c by Chr. Spieler, 6/17/98.
+# Copyright (C) 1995-1998 Jean-loup Gailly.
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile, or to compile and test, type:
+#
+# make -fmakefile.emx; make test -fmakefile.emx
+#
+
+CC=gcc
+
+#CFLAGS=-MMD -O
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-MMD -g -DZLIB_DEBUG
+CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+ -Wstrict-prototypes -Wmissing-prototypes
+
+# If cp.exe is available, replace "copy /Y" with "cp -fp" .
+CP=copy /Y
+# If gnu install.exe is available, replace $(CP) with ginstall.
+INSTALL=$(CP)
+# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
+RM=del
+LDLIBS=-L. -lzlib
+LD=$(CC) -s -o
+LDSHARED=$(CC)
+
+INCL=zlib.h zconf.h
+LIBS=zlib.a
+
+AR=ar rcs
+
+prefix=/usr/local
+exec_prefix = $(prefix)
+
+OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \
+ uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
+
+TEST_OBJS = example.o minigzip.o
+
+all: example.exe minigzip.exe
+
+test: all
+ ./example
+ echo hello world | .\minigzip | .\minigzip -d
+
+%.o : %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+zlib.a: $(OBJS)
+ $(AR) $@ $(OBJS)
+
+%.exe : %.o $(LIBS)
+ $(LD) $@ $< $(LDLIBS)
+
+
+.PHONY : clean
+
+clean:
+ $(RM) *.d
+ $(RM) *.o
+ $(RM) *.exe
+ $(RM) zlib.a
+ $(RM) foo.gz
+
+DEPS := $(wildcard *.d)
+ifneq ($(DEPS),)
+include $(DEPS)
+endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.msc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.msc
new file mode 100644
index 000000000..ae8378615
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.msc
@@ -0,0 +1,112 @@
+# Makefile for zlib
+# Microsoft C 5.1 or later
+# Last updated: 19-Mar-2003
+
+# To use, do "make makefile.msc"
+# To compile in small model, set below: MODEL=S
+
+# If you wish to reduce the memory requirements (default 256K for big
+# objects plus a few K), you can add to the LOC macro below:
+# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
+# See zconf.h for details about the memory requirements.
+
+# ------------- Microsoft C 5.1 and later -------------
+
+# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7)
+# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or added
+# to the declaration of LOC here:
+LOC = $(LOCAL_ZLIB)
+
+# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
+CPU_TYP = 0
+
+# Memory model: one of S, M, C, L (small, medium, compact, large)
+MODEL=L
+
+CC=cl
+CFLAGS=-nologo -A$(MODEL) -G$(CPU_TYP) -W3 -Oait -Gs $(LOC)
+#-Ox generates bad code with MSC 5.1
+LIB_CFLAGS=-Zl $(CFLAGS)
+
+LD=link
+LDFLAGS=/noi/e/st:0x1500/noe/farcall/packcode
+# "/farcall/packcode" are only useful for `large code' memory models
+# but should be a "no-op" for small code models.
+
+
+# variables
+ZLIB_LIB = zlib_$(MODEL).lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(LIB_CFLAGS) $*.c
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+ $(CC) -c $(CFLAGS) $*.c
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+ $(CC) -c $(CFLAGS) $*.c
+
+
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2)
+ if exist $(ZLIB_LIB) del $(ZLIB_LIB)
+ lib $(ZLIB_LIB) $(OBJ1);
+ lib $(ZLIB_LIB) $(OBJ2);
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj,,,$(ZLIB_LIB);
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj,,,$(ZLIB_LIB);
+
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+clean:
+ -del *.obj
+ -del *.lib
+ -del *.exe
+ -del *.map
+ -del zlib_*.bak
+ -del foo.gz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.tc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.tc
new file mode 100644
index 000000000..5aec82a9d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/msdos/Makefile.tc
@@ -0,0 +1,100 @@
+# Makefile for zlib
+# Turbo C 2.01, Turbo C++ 1.01
+# Last updated: 15-Mar-2003
+
+# To use, do "make -fmakefile.tc"
+# To compile in small model, set below: MODEL=s
+
+# WARNING: the small model is supported but only for small values of
+# MAX_WBITS and MAX_MEM_LEVEL. For example:
+# -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
+# If you wish to reduce the memory requirements (default 256K for big
+# objects plus a few K), you can add to CFLAGS below:
+# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
+# See zconf.h for details about the memory requirements.
+
+# ------------ Turbo C 2.01, Turbo C++ 1.01 ------------
+MODEL=l
+CC=tcc
+LD=tcc
+AR=tlib
+# CFLAGS=-O2 -G -Z -m$(MODEL) -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
+CFLAGS=-O2 -G -Z -m$(MODEL)
+LDFLAGS=-m$(MODEL) -f-
+
+
+# variables
+ZLIB_LIB = zlib_$(MODEL).lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj
+OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(CFLAGS) $*.c
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+
+
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2)
+ -del $(ZLIB_LIB)
+ $(AR) $(ZLIB_LIB) $(OBJP1)
+ $(AR) $(ZLIB_LIB) $(OBJP2)
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
+
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+clean:
+ -del *.obj
+ -del *.lib
+ -del *.exe
+ -del zlib_*.bak
+ -del foo.gz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/Makefile b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/Makefile
new file mode 100644
index 000000000..21337d01a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/Makefile
@@ -0,0 +1,126 @@
+#---------------------------------------------------------------------------------
+.SUFFIXES:
+#---------------------------------------------------------------------------------
+
+ifeq ($(strip $(DEVKITARM)),)
+$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
+endif
+
+include $(DEVKITARM)/ds_rules
+
+#---------------------------------------------------------------------------------
+# TARGET is the name of the output
+# BUILD is the directory where object files & intermediate files will be placed
+# SOURCES is a list of directories containing source code
+# DATA is a list of directories containing data files
+# INCLUDES is a list of directories containing header files
+#---------------------------------------------------------------------------------
+TARGET := $(shell basename $(CURDIR))
+BUILD := build
+SOURCES := ../../
+DATA := data
+INCLUDES := include
+
+#---------------------------------------------------------------------------------
+# options for code generation
+#---------------------------------------------------------------------------------
+ARCH := -mthumb -mthumb-interwork
+
+CFLAGS := -Wall -O2\
+ -march=armv5te -mtune=arm946e-s \
+ -fomit-frame-pointer -ffast-math \
+ $(ARCH)
+
+CFLAGS += $(INCLUDE) -DARM9
+CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
+
+ASFLAGS := $(ARCH) -march=armv5te -mtune=arm946e-s
+LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
+
+#---------------------------------------------------------------------------------
+# list of directories containing libraries, this must be the top level containing
+# include and lib
+#---------------------------------------------------------------------------------
+LIBDIRS := $(LIBNDS)
+
+#---------------------------------------------------------------------------------
+# no real need to edit anything past this point unless you need to add additional
+# rules for different file extensions
+#---------------------------------------------------------------------------------
+ifneq ($(BUILD),$(notdir $(CURDIR)))
+#---------------------------------------------------------------------------------
+
+export OUTPUT := $(CURDIR)/lib/libz.a
+
+export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
+ $(foreach dir,$(DATA),$(CURDIR)/$(dir))
+
+export DEPSDIR := $(CURDIR)/$(BUILD)
+
+CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
+CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
+SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
+BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
+
+#---------------------------------------------------------------------------------
+# use CXX for linking C++ projects, CC for standard C
+#---------------------------------------------------------------------------------
+ifeq ($(strip $(CPPFILES)),)
+#---------------------------------------------------------------------------------
+ export LD := $(CC)
+#---------------------------------------------------------------------------------
+else
+#---------------------------------------------------------------------------------
+ export LD := $(CXX)
+#---------------------------------------------------------------------------------
+endif
+#---------------------------------------------------------------------------------
+
+export OFILES := $(addsuffix .o,$(BINFILES)) \
+ $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
+
+export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
+ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
+ -I$(CURDIR)/$(BUILD)
+
+.PHONY: $(BUILD) clean all
+
+#---------------------------------------------------------------------------------
+all: $(BUILD)
+ @[ -d $@ ] || mkdir -p include
+ @cp ../../*.h include
+
+lib:
+ @[ -d $@ ] || mkdir -p $@
+
+$(BUILD): lib
+ @[ -d $@ ] || mkdir -p $@
+ @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
+
+#---------------------------------------------------------------------------------
+clean:
+ @echo clean ...
+ @rm -fr $(BUILD) lib
+
+#---------------------------------------------------------------------------------
+else
+
+DEPENDS := $(OFILES:.o=.d)
+
+#---------------------------------------------------------------------------------
+# main targets
+#---------------------------------------------------------------------------------
+$(OUTPUT) : $(OFILES)
+
+#---------------------------------------------------------------------------------
+%.bin.o : %.bin
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+
+-include $(DEPENDS)
+
+#---------------------------------------------------------------------------------------
+endif
+#---------------------------------------------------------------------------------------
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/README
new file mode 100644
index 000000000..ba7a37dbe
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/nintendods/README
@@ -0,0 +1,5 @@
+This Makefile requires devkitARM (http://www.devkitpro.org/category/devkitarm/) and works inside "contrib/nds". It is based on a devkitARM template.
+
+Eduardo Costa <eduardo.m.costa@gmail.com>
+January 3, 2009
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.emx b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.emx
new file mode 100644
index 000000000..612b03791
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.emx
@@ -0,0 +1,69 @@
+# Makefile for zlib. Modified for emx/rsxnt by Chr. Spieler, 6/16/98.
+# Copyright (C) 1995-1998 Jean-loup Gailly.
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile, or to compile and test, type:
+#
+# make -fmakefile.emx; make test -fmakefile.emx
+#
+
+CC=gcc -Zwin32
+
+#CFLAGS=-MMD -O
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-MMD -g -DZLIB_DEBUG
+CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+ -Wstrict-prototypes -Wmissing-prototypes
+
+# If cp.exe is available, replace "copy /Y" with "cp -fp" .
+CP=copy /Y
+# If gnu install.exe is available, replace $(CP) with ginstall.
+INSTALL=$(CP)
+# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
+RM=del
+LDLIBS=-L. -lzlib
+LD=$(CC) -s -o
+LDSHARED=$(CC)
+
+INCL=zlib.h zconf.h
+LIBS=zlib.a
+
+AR=ar rcs
+
+prefix=/usr/local
+exec_prefix = $(prefix)
+
+OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
+ gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
+
+TEST_OBJS = example.o minigzip.o
+
+all: example.exe minigzip.exe
+
+test: all
+ ./example
+ echo hello world | .\minigzip | .\minigzip -d
+
+%.o : %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+zlib.a: $(OBJS)
+ $(AR) $@ $(OBJS)
+
+%.exe : %.o $(LIBS)
+ $(LD) $@ $< $(LDLIBS)
+
+
+.PHONY : clean
+
+clean:
+ $(RM) *.d
+ $(RM) *.o
+ $(RM) *.exe
+ $(RM) zlib.a
+ $(RM) foo.gz
+
+DEPS := $(wildcard *.d)
+ifneq ($(DEPS),)
+include $(DEPS)
+endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.riscos b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.riscos
new file mode 100644
index 000000000..57e29d3fb
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/Makefile.riscos
@@ -0,0 +1,151 @@
+# Project: zlib_1_03
+# Patched for zlib 1.1.2 rw@shadow.org.uk 19980430
+# test works out-of-the-box, installs `somewhere' on demand
+
+# Toolflags:
+CCflags = -c -depend !Depend -IC: -g -throwback -DRISCOS -fah
+C++flags = -c -depend !Depend -IC: -throwback
+Linkflags = -aif -c++ -o $@
+ObjAsmflags = -throwback -NoCache -depend !Depend
+CMHGflags =
+LibFileflags = -c -l -o $@
+Squeezeflags = -o $@
+
+# change the line below to where _you_ want the library installed.
+libdest = lib:zlib
+
+# Final targets:
+@.lib: @.o.adler32 @.o.compress @.o.crc32 @.o.deflate @.o.gzio \
+ @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil @.o.trees \
+ @.o.uncompr @.o.zutil
+ LibFile $(LibFileflags) @.o.adler32 @.o.compress @.o.crc32 @.o.deflate \
+ @.o.gzio @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil \
+ @.o.trees @.o.uncompr @.o.zutil
+test: @.minigzip @.example @.lib
+ @copy @.lib @.libc A~C~DF~L~N~P~Q~RS~TV
+ @echo running tests: hang on.
+ @/@.minigzip -f -9 libc
+ @/@.minigzip -d libc-gz
+ @/@.minigzip -f -1 libc
+ @/@.minigzip -d libc-gz
+ @/@.minigzip -h -9 libc
+ @/@.minigzip -d libc-gz
+ @/@.minigzip -h -1 libc
+ @/@.minigzip -d libc-gz
+ @/@.minigzip -9 libc
+ @/@.minigzip -d libc-gz
+ @/@.minigzip -1 libc
+ @/@.minigzip -d libc-gz
+ @diff @.lib @.libc
+ @echo that should have reported '@.lib and @.libc identical' if you have diff.
+ @/@.example @.fred @.fred
+ @echo that will have given lots of hello!'s.
+
+@.minigzip: @.o.minigzip @.lib C:o.Stubs
+ Link $(Linkflags) @.o.minigzip @.lib C:o.Stubs
+@.example: @.o.example @.lib C:o.Stubs
+ Link $(Linkflags) @.o.example @.lib C:o.Stubs
+
+install: @.lib
+ cdir $(libdest)
+ cdir $(libdest).h
+ @copy @.h.zlib $(libdest).h.zlib A~C~DF~L~N~P~Q~RS~TV
+ @copy @.h.zconf $(libdest).h.zconf A~C~DF~L~N~P~Q~RS~TV
+ @copy @.lib $(libdest).lib A~C~DF~L~N~P~Q~RS~TV
+ @echo okay, installed zlib in $(libdest)
+
+clean:; remove @.minigzip
+ remove @.example
+ remove @.libc
+ -wipe @.o.* F~r~cV
+ remove @.fred
+
+# User-editable dependencies:
+.c.o:
+ cc $(ccflags) -o $@ $<
+
+# Static dependencies:
+
+# Dynamic dependencies:
+o.example: c.example
+o.example: h.zlib
+o.example: h.zconf
+o.minigzip: c.minigzip
+o.minigzip: h.zlib
+o.minigzip: h.zconf
+o.adler32: c.adler32
+o.adler32: h.zlib
+o.adler32: h.zconf
+o.compress: c.compress
+o.compress: h.zlib
+o.compress: h.zconf
+o.crc32: c.crc32
+o.crc32: h.zlib
+o.crc32: h.zconf
+o.deflate: c.deflate
+o.deflate: h.deflate
+o.deflate: h.zutil
+o.deflate: h.zlib
+o.deflate: h.zconf
+o.gzio: c.gzio
+o.gzio: h.zutil
+o.gzio: h.zlib
+o.gzio: h.zconf
+o.infblock: c.infblock
+o.infblock: h.zutil
+o.infblock: h.zlib
+o.infblock: h.zconf
+o.infblock: h.infblock
+o.infblock: h.inftrees
+o.infblock: h.infcodes
+o.infblock: h.infutil
+o.infcodes: c.infcodes
+o.infcodes: h.zutil
+o.infcodes: h.zlib
+o.infcodes: h.zconf
+o.infcodes: h.inftrees
+o.infcodes: h.infblock
+o.infcodes: h.infcodes
+o.infcodes: h.infutil
+o.infcodes: h.inffast
+o.inffast: c.inffast
+o.inffast: h.zutil
+o.inffast: h.zlib
+o.inffast: h.zconf
+o.inffast: h.inftrees
+o.inffast: h.infblock
+o.inffast: h.infcodes
+o.inffast: h.infutil
+o.inffast: h.inffast
+o.inflate: c.inflate
+o.inflate: h.zutil
+o.inflate: h.zlib
+o.inflate: h.zconf
+o.inflate: h.infblock
+o.inftrees: c.inftrees
+o.inftrees: h.zutil
+o.inftrees: h.zlib
+o.inftrees: h.zconf
+o.inftrees: h.inftrees
+o.inftrees: h.inffixed
+o.infutil: c.infutil
+o.infutil: h.zutil
+o.infutil: h.zlib
+o.infutil: h.zconf
+o.infutil: h.infblock
+o.infutil: h.inftrees
+o.infutil: h.infcodes
+o.infutil: h.infutil
+o.trees: c.trees
+o.trees: h.deflate
+o.trees: h.zutil
+o.trees: h.zlib
+o.trees: h.zconf
+o.trees: h.trees
+o.uncompr: c.uncompr
+o.uncompr: h.zlib
+o.uncompr: h.zconf
+o.zutil: c.zutil
+o.zutil: h.zutil
+o.zutil: h.zlib
+o.zutil: h.zconf
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/README b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/README
new file mode 100644
index 000000000..800bf0798
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/README
@@ -0,0 +1,3 @@
+This directory contains files that have not been updated for zlib 1.2.x
+
+(Volunteers are encouraged to help clean this up. Thanks.)
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/descrip.mms b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/descrip.mms
new file mode 100644
index 000000000..7066da5b5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/descrip.mms
@@ -0,0 +1,48 @@
+# descrip.mms: MMS description file for building zlib on VMS
+# written by Martin P.J. Zinser <m.zinser@gsi.de>
+
+cc_defs =
+c_deb =
+
+.ifdef __DECC__
+pref = /prefix=all
+.endif
+
+OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\
+ deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\
+ inftrees.obj, infcodes.obj, infutil.obj, inffast.obj
+
+CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF)
+
+all : example.exe minigzip.exe
+ @ write sys$output " Example applications available"
+libz.olb : libz.olb($(OBJS))
+ @ write sys$output " libz available"
+
+example.exe : example.obj libz.olb
+ link example,libz.olb/lib
+
+minigzip.exe : minigzip.obj libz.olb
+ link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib
+
+clean :
+ delete *.obj;*,libz.olb;*
+
+
+# Other dependencies.
+adler32.obj : zutil.h zlib.h zconf.h
+compress.obj : zlib.h zconf.h
+crc32.obj : zutil.h zlib.h zconf.h
+deflate.obj : deflate.h zutil.h zlib.h zconf.h
+example.obj : zlib.h zconf.h
+gzio.obj : zutil.h zlib.h zconf.h
+infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
+infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h
+inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
+inflate.obj : zutil.h zlib.h zconf.h infblock.h
+inftrees.obj : zutil.h zlib.h zconf.h inftrees.h
+infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h
+minigzip.obj : zlib.h zconf.h
+trees.obj : deflate.h zutil.h zlib.h zconf.h
+uncompr.obj : zlib.h zconf.h
+zutil.obj : zutil.h zlib.h zconf.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/Makefile.os2 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/Makefile.os2
new file mode 100644
index 000000000..bb426c0d8
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/Makefile.os2
@@ -0,0 +1,136 @@
+# Makefile for zlib under OS/2 using GCC (PGCC)
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile and test, type:
+# cp Makefile.os2 ..
+# cd ..
+# make -f Makefile.os2 test
+
+# This makefile will build a static library z.lib, a shared library
+# z.dll and a import library zdll.lib. You can use either z.lib or
+# zdll.lib by specifying either -lz or -lzdll on gcc's command line
+
+CC=gcc -Zomf -s
+
+CFLAGS=-O6 -Wall
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-g -DZLIB_DEBUG
+#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+# -Wstrict-prototypes -Wmissing-prototypes
+
+#################### BUG WARNING: #####################
+## infcodes.c hits a bug in pgcc-1.0, so you have to use either
+## -O# where # <= 4 or one of (-fno-ommit-frame-pointer or -fno-force-mem)
+## This bug is reportedly fixed in pgcc >1.0, but this was not tested
+CFLAGS+=-fno-force-mem
+
+LDFLAGS=-s -L. -lzdll -Zcrtdll
+LDSHARED=$(CC) -s -Zomf -Zdll -Zcrtdll
+
+VER=1.1.0
+ZLIB=z.lib
+SHAREDLIB=z.dll
+SHAREDLIBIMP=zdll.lib
+LIBS=$(ZLIB) $(SHAREDLIB) $(SHAREDLIBIMP)
+
+AR=emxomfar cr
+IMPLIB=emximp
+RANLIB=echo
+TAR=tar
+SHELL=bash
+
+prefix=/usr/local
+exec_prefix = $(prefix)
+
+OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
+ zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
+
+TEST_OBJS = example.o minigzip.o
+
+DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] *.[ch] descrip.mms \
+ algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \
+ nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \
+ contrib/asm386/*.asm contrib/asm386/*.c \
+ contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/iostream/*.cpp \
+ contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \
+ contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32
+
+all: example.exe minigzip.exe
+
+test: all
+ @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
+ echo hello world | ./minigzip | ./minigzip -d || \
+ echo ' *** minigzip test FAILED ***' ; \
+ if ./example; then \
+ echo ' *** zlib test OK ***'; \
+ else \
+ echo ' *** zlib test FAILED ***'; \
+ fi
+
+$(ZLIB): $(OBJS)
+ $(AR) $@ $(OBJS)
+ -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
+
+$(SHAREDLIB): $(OBJS) os2/z.def
+ $(LDSHARED) -o $@ $^
+
+$(SHAREDLIBIMP): os2/z.def
+ $(IMPLIB) -o $@ $^
+
+example.exe: example.o $(LIBS)
+ $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
+
+minigzip.exe: minigzip.o $(LIBS)
+ $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
+
+clean:
+ rm -f *.o *~ example minigzip libz.a libz.so* foo.gz
+
+distclean: clean
+
+zip:
+ mv Makefile Makefile~; cp -p Makefile.in Makefile
+ rm -f test.c ztest*.c
+ v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
+ zip -ul9 zlib$$v $(DISTFILES)
+ mv Makefile~ Makefile
+
+dist:
+ mv Makefile Makefile~; cp -p Makefile.in Makefile
+ rm -f test.c ztest*.c
+ d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
+ rm -f $$d.tar.gz; \
+ if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \
+ files=""; \
+ for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \
+ cd ..; \
+ GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \
+ if test ! -d $$d; then rm -f $$d; fi
+ mv Makefile~ Makefile
+
+tags:
+ etags *.[ch]
+
+depend:
+ makedepend -- $(CFLAGS) -- *.[ch]
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+
+adler32.o: zlib.h zconf.h
+compress.o: zlib.h zconf.h
+crc32.o: zlib.h zconf.h
+deflate.o: deflate.h zutil.h zlib.h zconf.h
+example.o: zlib.h zconf.h
+gzio.o: zutil.h zlib.h zconf.h
+infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
+infcodes.o: zutil.h zlib.h zconf.h
+infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
+inffast.o: zutil.h zlib.h zconf.h inftrees.h
+inffast.o: infblock.h infcodes.h infutil.h inffast.h
+inflate.o: zutil.h zlib.h zconf.h infblock.h
+inftrees.o: zutil.h zlib.h zconf.h inftrees.h
+infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
+minigzip.o: zlib.h zconf.h
+trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
+uncompr.o: zlib.h zconf.h
+zutil.o: zutil.h zlib.h zconf.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/zlib.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/zlib.def
new file mode 100644
index 000000000..4c753f1a3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/os2/zlib.def
@@ -0,0 +1,51 @@
+;
+; Slightly modified version of ../nt/zlib.dnt :-)
+;
+
+LIBRARY Z
+DESCRIPTION "Zlib compression library for OS/2"
+CODE PRELOAD MOVEABLE DISCARDABLE
+DATA PRELOAD MOVEABLE MULTIPLE
+
+EXPORTS
+ adler32
+ compress
+ crc32
+ deflate
+ deflateCopy
+ deflateEnd
+ deflateInit2_
+ deflateInit_
+ deflateParams
+ deflateReset
+ deflateSetDictionary
+ gzclose
+ gzdopen
+ gzerror
+ gzflush
+ gzopen
+ gzread
+ gzwrite
+ inflate
+ inflateEnd
+ inflateInit2_
+ inflateInit_
+ inflateReset
+ inflateSetDictionary
+ inflateSync
+ uncompress
+ zlibVersion
+ gzprintf
+ gzputc
+ gzgetc
+ gzseek
+ gzrewind
+ gztell
+ gzeof
+ gzsetparams
+ zError
+ inflateSyncPoint
+ get_crc_table
+ compress2
+ gzputs
+ gzgets
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/visual-basic.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/visual-basic.txt
new file mode 100644
index 000000000..57efe5812
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/old/visual-basic.txt
@@ -0,0 +1,160 @@
+See below some functions declarations for Visual Basic.
+
+Frequently Asked Question:
+
+Q: Each time I use the compress function I get the -5 error (not enough
+ room in the output buffer).
+
+A: Make sure that the length of the compressed buffer is passed by
+ reference ("as any"), not by value ("as long"). Also check that
+ before the call of compress this length is equal to the total size of
+ the compressed buffer and not zero.
+
+
+From: "Jon Caruana" <jon-net@usa.net>
+Subject: Re: How to port zlib declares to vb?
+Date: Mon, 28 Oct 1996 18:33:03 -0600
+
+Got the answer! (I haven't had time to check this but it's what I got, and
+looks correct):
+
+He has the following routines working:
+ compress
+ uncompress
+ gzopen
+ gzwrite
+ gzread
+ gzclose
+
+Declares follow: (Quoted from Carlos Rios <c_rios@sonda.cl>, in Vb4 form)
+
+#If Win16 Then 'Use Win16 calls.
+Declare Function compress Lib "ZLIB.DLL" (ByVal compr As
+ String, comprLen As Any, ByVal buf As String, ByVal buflen
+ As Long) As Integer
+Declare Function uncompress Lib "ZLIB.DLL" (ByVal uncompr
+ As String, uncomprLen As Any, ByVal compr As String, ByVal
+ lcompr As Long) As Integer
+Declare Function gzopen Lib "ZLIB.DLL" (ByVal filePath As
+ String, ByVal mode As String) As Long
+Declare Function gzread Lib "ZLIB.DLL" (ByVal file As
+ Long, ByVal uncompr As String, ByVal uncomprLen As Integer)
+ As Integer
+Declare Function gzwrite Lib "ZLIB.DLL" (ByVal file As
+ Long, ByVal uncompr As String, ByVal uncomprLen As Integer)
+ As Integer
+Declare Function gzclose Lib "ZLIB.DLL" (ByVal file As
+ Long) As Integer
+#Else
+Declare Function compress Lib "ZLIB32.DLL"
+ (ByVal compr As String, comprLen As Any, ByVal buf As
+ String, ByVal buflen As Long) As Integer
+Declare Function uncompress Lib "ZLIB32.DLL"
+ (ByVal uncompr As String, uncomprLen As Any, ByVal compr As
+ String, ByVal lcompr As Long) As Long
+Declare Function gzopen Lib "ZLIB32.DLL"
+ (ByVal file As String, ByVal mode As String) As Long
+Declare Function gzread Lib "ZLIB32.DLL"
+ (ByVal file As Long, ByVal uncompr As String, ByVal
+ uncomprLen As Long) As Long
+Declare Function gzwrite Lib "ZLIB32.DLL"
+ (ByVal file As Long, ByVal uncompr As String, ByVal
+ uncomprLen As Long) As Long
+Declare Function gzclose Lib "ZLIB32.DLL"
+ (ByVal file As Long) As Long
+#End If
+
+-Jon Caruana
+jon-net@usa.net
+Microsoft Sitebuilder Network Level 1 Member - HTML Writer's Guild Member
+
+
+Here is another example from Michael <michael_borgsys@hotmail.com> that he
+says conforms to the VB guidelines, and that solves the problem of not
+knowing the uncompressed size by storing it at the end of the file:
+
+'Calling the functions:
+'bracket meaning: <parameter> [optional] {Range of possible values}
+'Call subCompressFile(<path with filename to compress> [, <path with
+filename to write to>, [level of compression {1..9}]])
+'Call subUncompressFile(<path with filename to compress>)
+
+Option Explicit
+Private lngpvtPcnSml As Long 'Stores value for 'lngPercentSmaller'
+Private Const SUCCESS As Long = 0
+Private Const strFilExt As String = ".cpr"
+Private Declare Function lngfncCpr Lib "zlib.dll" Alias "compress2" (ByRef
+dest As Any, ByRef destLen As Any, ByRef src As Any, ByVal srcLen As Long,
+ByVal level As Integer) As Long
+Private Declare Function lngfncUcp Lib "zlib.dll" Alias "uncompress" (ByRef
+dest As Any, ByRef destLen As Any, ByRef src As Any, ByVal srcLen As Long)
+As Long
+
+Public Sub subCompressFile(ByVal strargOriFilPth As String, Optional ByVal
+strargCprFilPth As String, Optional ByVal intLvl As Integer = 9)
+ Dim strCprPth As String
+ Dim lngOriSiz As Long
+ Dim lngCprSiz As Long
+ Dim bytaryOri() As Byte
+ Dim bytaryCpr() As Byte
+ lngOriSiz = FileLen(strargOriFilPth)
+ ReDim bytaryOri(lngOriSiz - 1)
+ Open strargOriFilPth For Binary Access Read As #1
+ Get #1, , bytaryOri()
+ Close #1
+ strCprPth = IIf(strargCprFilPth = "", strargOriFilPth, strargCprFilPth)
+'Select file path and name
+ strCprPth = strCprPth & IIf(Right(strCprPth, Len(strFilExt)) =
+strFilExt, "", strFilExt) 'Add file extension if not exists
+ lngCprSiz = (lngOriSiz * 1.01) + 12 'Compression needs temporary a bit
+more space then original file size
+ ReDim bytaryCpr(lngCprSiz - 1)
+ If lngfncCpr(bytaryCpr(0), lngCprSiz, bytaryOri(0), lngOriSiz, intLvl) =
+SUCCESS Then
+ lngpvtPcnSml = (1# - (lngCprSiz / lngOriSiz)) * 100
+ ReDim Preserve bytaryCpr(lngCprSiz - 1)
+ Open strCprPth For Binary Access Write As #1
+ Put #1, , bytaryCpr()
+ Put #1, , lngOriSiz 'Add the the original size value to the end
+(last 4 bytes)
+ Close #1
+ Else
+ MsgBox "Compression error"
+ End If
+ Erase bytaryCpr
+ Erase bytaryOri
+End Sub
+
+Public Sub subUncompressFile(ByVal strargFilPth As String)
+ Dim bytaryCpr() As Byte
+ Dim bytaryOri() As Byte
+ Dim lngOriSiz As Long
+ Dim lngCprSiz As Long
+ Dim strOriPth As String
+ lngCprSiz = FileLen(strargFilPth)
+ ReDim bytaryCpr(lngCprSiz - 1)
+ Open strargFilPth For Binary Access Read As #1
+ Get #1, , bytaryCpr()
+ Close #1
+ 'Read the original file size value:
+ lngOriSiz = bytaryCpr(lngCprSiz - 1) * (2 ^ 24) _
+ + bytaryCpr(lngCprSiz - 2) * (2 ^ 16) _
+ + bytaryCpr(lngCprSiz - 3) * (2 ^ 8) _
+ + bytaryCpr(lngCprSiz - 4)
+ ReDim Preserve bytaryCpr(lngCprSiz - 5) 'Cut of the original size value
+ ReDim bytaryOri(lngOriSiz - 1)
+ If lngfncUcp(bytaryOri(0), lngOriSiz, bytaryCpr(0), lngCprSiz) = SUCCESS
+Then
+ strOriPth = Left(strargFilPth, Len(strargFilPth) - Len(strFilExt))
+ Open strOriPth For Binary Access Write As #1
+ Put #1, , bytaryOri()
+ Close #1
+ Else
+ MsgBox "Uncompression error"
+ End If
+ Erase bytaryCpr
+ Erase bytaryOri
+End Sub
+Public Property Get lngPercentSmaller() As Long
+ lngPercentSmaller = lngpvtPcnSml
+End Property
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/README400 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/README400
new file mode 100644
index 000000000..4f98334f5
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/README400
@@ -0,0 +1,48 @@
+ ZLIB version 1.2.11 for OS/400 installation instructions
+
+1) Download and unpack the zlib tarball to some IFS directory.
+ (i.e.: /path/to/the/zlib/ifs/source/directory)
+
+ If the installed IFS command suppors gzip format, this is straightforward,
+else you have to unpack first to some directory on a system supporting it,
+then move the whole directory to the IFS via the network (via SMB or FTP).
+
+2) Edit the configuration parameters in the compilation script.
+
+ EDTF STMF('/path/to/the/zlib/ifs/source/directory/os400/make.sh')
+
+Tune the parameters according to your needs if not matching the defaults.
+Save the file and exit after edition.
+
+3) Enter qshell, then work in the zlib OS/400 specific directory.
+
+ QSH
+ cd /path/to/the/zlib/ifs/source/directory/os400
+
+4) Compile and install
+
+ sh make.sh
+
+The script will:
+- create the libraries, objects and IFS directories for the zlib environment,
+- compile all modules,
+- create a service program,
+- create a static and a dynamic binding directory,
+- install header files for C/C++ and for ILE/RPG, both for compilation in
+ DB2 and IFS environments.
+
+That's all.
+
+
+Notes: For OS/400 ILE RPG programmers, a /copy member defining the ZLIB
+ API prototypes for ILE RPG can be found in ZLIB/H(ZLIB.INC).
+ In the ILE environment, the same definitions are available from
+ file zlib.inc located in the same IFS include directory as the
+ C/C++ header files.
+ Please read comments in this member for more information.
+
+ Remember that most foreign textual data are ASCII coded: this
+ implementation does not handle conversion from/to ASCII, so
+ text data code conversions must be done explicitely.
+
+ Mainly for the reason above, always open zipped files in binary mode.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/bndsrc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/bndsrc
new file mode 100644
index 000000000..5e6e0a2f0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/bndsrc
@@ -0,0 +1,119 @@
+STRPGMEXP PGMLVL(*CURRENT) SIGNATURE('ZLIB')
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.1.3 entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("adler32")
+ EXPORT SYMBOL("compress")
+ EXPORT SYMBOL("compress2")
+ EXPORT SYMBOL("crc32")
+ EXPORT SYMBOL("get_crc_table")
+ EXPORT SYMBOL("deflate")
+ EXPORT SYMBOL("deflateEnd")
+ EXPORT SYMBOL("deflateSetDictionary")
+ EXPORT SYMBOL("deflateCopy")
+ EXPORT SYMBOL("deflateReset")
+ EXPORT SYMBOL("deflateParams")
+ EXPORT SYMBOL("deflatePrime")
+ EXPORT SYMBOL("deflateInit_")
+ EXPORT SYMBOL("deflateInit2_")
+ EXPORT SYMBOL("gzopen")
+ EXPORT SYMBOL("gzdopen")
+ EXPORT SYMBOL("gzsetparams")
+ EXPORT SYMBOL("gzread")
+ EXPORT SYMBOL("gzwrite")
+ EXPORT SYMBOL("gzprintf")
+ EXPORT SYMBOL("gzputs")
+ EXPORT SYMBOL("gzgets")
+ EXPORT SYMBOL("gzputc")
+ EXPORT SYMBOL("gzgetc")
+ EXPORT SYMBOL("gzflush")
+ EXPORT SYMBOL("gzseek")
+ EXPORT SYMBOL("gzrewind")
+ EXPORT SYMBOL("gztell")
+ EXPORT SYMBOL("gzeof")
+ EXPORT SYMBOL("gzclose")
+ EXPORT SYMBOL("gzerror")
+ EXPORT SYMBOL("inflate")
+ EXPORT SYMBOL("inflateEnd")
+ EXPORT SYMBOL("inflateSetDictionary")
+ EXPORT SYMBOL("inflateSync")
+ EXPORT SYMBOL("inflateReset")
+ EXPORT SYMBOL("inflateInit_")
+ EXPORT SYMBOL("inflateInit2_")
+ EXPORT SYMBOL("inflateSyncPoint")
+ EXPORT SYMBOL("uncompress")
+ EXPORT SYMBOL("zlibVersion")
+ EXPORT SYMBOL("zError")
+ EXPORT SYMBOL("z_errmsg")
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.2.1 additional entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("compressBound")
+ EXPORT SYMBOL("deflateBound")
+ EXPORT SYMBOL("deflatePending")
+ EXPORT SYMBOL("gzungetc")
+ EXPORT SYMBOL("gzclearerr")
+ EXPORT SYMBOL("inflateBack")
+ EXPORT SYMBOL("inflateBackEnd")
+ EXPORT SYMBOL("inflateBackInit_")
+ EXPORT SYMBOL("inflateCopy")
+ EXPORT SYMBOL("zlibCompileFlags")
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.2.4 additional entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("adler32_combine")
+ EXPORT SYMBOL("adler32_combine64")
+ EXPORT SYMBOL("crc32_combine")
+ EXPORT SYMBOL("crc32_combine64")
+ EXPORT SYMBOL("deflateSetHeader")
+ EXPORT SYMBOL("deflateTune")
+ EXPORT SYMBOL("gzbuffer")
+ EXPORT SYMBOL("gzclose_r")
+ EXPORT SYMBOL("gzclose_w")
+ EXPORT SYMBOL("gzdirect")
+ EXPORT SYMBOL("gzoffset")
+ EXPORT SYMBOL("gzoffset64")
+ EXPORT SYMBOL("gzopen64")
+ EXPORT SYMBOL("gzseek64")
+ EXPORT SYMBOL("gztell64")
+ EXPORT SYMBOL("inflateGetHeader")
+ EXPORT SYMBOL("inflateMark")
+ EXPORT SYMBOL("inflatePrime")
+ EXPORT SYMBOL("inflateReset2")
+ EXPORT SYMBOL("inflateUndermine")
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.2.6 additional entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("deflateResetKeep")
+ EXPORT SYMBOL("gzgetc_")
+ EXPORT SYMBOL("inflateResetKeep")
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.2.8 additional entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("gzvprintf")
+ EXPORT SYMBOL("inflateGetDictionary")
+
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+/* Version 1.2.9 additional entry points. */
+/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
+
+ EXPORT SYMBOL("adler32_z")
+ EXPORT SYMBOL("crc32_z")
+ EXPORT SYMBOL("deflateGetDictionary")
+ EXPORT SYMBOL("gzfread")
+ EXPORT SYMBOL("gzfwrite")
+ EXPORT SYMBOL("inflateCodesUsed")
+ EXPORT SYMBOL("inflateValidate")
+ EXPORT SYMBOL("uncompress2")
+
+ENDPGMEXP
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/make.sh b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/make.sh
new file mode 100644
index 000000000..19eec117a
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/make.sh
@@ -0,0 +1,366 @@
+#!/bin/sh
+#
+# ZLIB compilation script for the OS/400.
+#
+#
+# This is a shell script since make is not a standard component of OS/400.
+
+
+################################################################################
+#
+# Tunable configuration parameters.
+#
+################################################################################
+
+TARGETLIB='ZLIB' # Target OS/400 program library
+STATBNDDIR='ZLIB_A' # Static binding directory.
+DYNBNDDIR='ZLIB' # Dynamic binding directory.
+SRVPGM="ZLIB" # Service program.
+IFSDIR='/zlib' # IFS support base directory.
+TGTCCSID='500' # Target CCSID of objects
+DEBUG='*NONE' # Debug level
+OPTIMIZE='40' # Optimisation level
+OUTPUT='*NONE' # Compilation output option.
+TGTRLS='V6R1M0' # Target OS release
+
+export TARGETLIB STATBNDDIR DYNBNDDIR SRVPGM IFSDIR
+export TGTCCSID DEBUG OPTIMIZE OUTPUT TGTRLS
+
+
+################################################################################
+#
+# OS/400 specific definitions.
+#
+################################################################################
+
+LIBIFSNAME="/QSYS.LIB/${TARGETLIB}.LIB"
+
+
+################################################################################
+#
+# Procedures.
+#
+################################################################################
+
+# action_needed dest [src]
+#
+# dest is an object to build
+# if specified, src is an object on which dest depends.
+#
+# exit 0 (succeeds) if some action has to be taken, else 1.
+
+action_needed()
+
+{
+ [ ! -e "${1}" ] && return 0
+ [ "${2}" ] || return 1
+ [ "${1}" -ot "${2}" ] && return 0
+ return 1
+}
+
+
+# make_module module_name source_name [additional_definitions]
+#
+# Compile source name into module if needed.
+# As side effect, append the module name to variable MODULES.
+# Set LINK to "YES" if the module has been compiled.
+
+make_module()
+
+{
+ MODULES="${MODULES} ${1}"
+ MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
+ CSRC="`basename \"${2}\"`"
+
+ if action_needed "${MODIFSNAME}" "${2}"
+ then :
+ elif [ ! "`sed -e \"/<source name=\\\"${CSRC}\\\">/,/<\\\\/source>/!d\" \
+ -e '/<depend /!d' \
+ -e 's/.* name=\"\\([^\"]*\\)\".*/\\1/' < \"${TOPDIR}/treebuild.xml\" |
+ while read HDR
+ do if action_needed \"${MODIFSNAME}\" \"${IFSDIR}/include/${HDR}\"
+ then echo recompile
+ break
+ fi
+ done`" ]
+ then return 0
+ fi
+
+ CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('${2}')"
+ CMD="${CMD} SYSIFCOPT(*IFS64IO) OPTION(*INCDIRFIRST)"
+ CMD="${CMD} LOCALETYPE(*LOCALE) FLAG(10)"
+ CMD="${CMD} INCDIR('${IFSDIR}/include' ${INCLUDES})"
+ CMD="${CMD} TGTCCSID(${TGTCCSID}) TGTRLS(${TGTRLS})"
+ CMD="${CMD} OUTPUT(${OUTPUT})"
+ CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
+ CMD="${CMD} DBGVIEW(${DEBUG})"
+ system "${CMD}"
+ LINK=YES
+}
+
+
+# Determine DB2 object name from IFS name.
+
+db2_name()
+
+{
+ basename "${1}" |
+ tr 'a-z-' 'A-Z_' |
+ sed -e 's/\..*//' \
+ -e 's/^\(.\).*\(.........\)$/\1\2/'
+}
+
+
+# Force enumeration types to be the same size as integers.
+
+copy_hfile()
+
+{
+ sed -e '1i\
+#pragma enum(int)\
+' "${@}" -e '$a\
+#pragma enum(pop)\
+'
+}
+
+
+################################################################################
+#
+# Script initialization.
+#
+################################################################################
+
+SCRIPTDIR=`dirname "${0}"`
+
+case "${SCRIPTDIR}" in
+/*) ;;
+*) SCRIPTDIR="`pwd`/${SCRIPTDIR}"
+esac
+
+while true
+do case "${SCRIPTDIR}" in
+ */.) SCRIPTDIR="${SCRIPTDIR%/.}";;
+ *) break;;
+ esac
+done
+
+# The script directory is supposed to be in ${TOPDIR}/os400.
+
+TOPDIR=`dirname "${SCRIPTDIR}"`
+export SCRIPTDIR TOPDIR
+cd "${TOPDIR}"
+
+
+# Extract the version from the master compilation XML file.
+
+VERSION=`sed -e '/^<package /!d' \
+ -e 's/^.* version="\([0-9.]*\)".*$/\1/' -e 'q' \
+ < treebuild.xml`
+export VERSION
+
+################################################################################
+
+
+# Create the OS/400 library if it does not exist.
+
+if action_needed "${LIBIFSNAME}"
+then CMD="CRTLIB LIB(${TARGETLIB}) TEXT('ZLIB: Data compression API')"
+ system "${CMD}"
+fi
+
+
+# Create the DOCS source file if it does not exist.
+
+if action_needed "${LIBIFSNAME}/DOCS.FILE"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/DOCS) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('Documentation texts')"
+ system "${CMD}"
+fi
+
+# Copy some documentation files if needed.
+
+for TEXT in "${TOPDIR}/ChangeLog" "${TOPDIR}/FAQ" \
+ "${TOPDIR}/README" "${SCRIPTDIR}/README400"
+do MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${TEXT}\"`.MBR"
+
+ if action_needed "${MEMBER}" "${TEXT}"
+ then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}') TOCCSID(${TGTCCSID})"
+ CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ fi
+done
+
+
+# Create the OS/400 source program file for the C header files.
+
+SRCPF="${LIBIFSNAME}/H.FILE"
+
+if action_needed "${SRCPF}"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/H) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: C/C++ header files')"
+ system "${CMD}"
+fi
+
+
+# Create the IFS directory for the C header files.
+
+if action_needed "${IFSDIR}/include"
+then mkdir -p "${IFSDIR}/include"
+fi
+
+# Copy the header files to DB2 library. Link from IFS include directory.
+
+for HFILE in "${TOPDIR}/"*.h
+do DEST="${SRCPF}/`db2_name \"${HFILE}\"`.MBR"
+
+ if action_needed "${DEST}" "${HFILE}"
+ then copy_hfile < "${HFILE}" > tmphdrfile
+
+ # Need to translate to target CCSID.
+
+ CMD="CPY OBJ('`pwd`/tmphdrfile') TOOBJ('${DEST}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ # touch -r "${HFILE}" "${DEST}"
+ rm -f tmphdrfile
+ fi
+
+ IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
+
+ if action_needed "${IFSFILE}" "${DEST}"
+ then rm -f "${IFSFILE}"
+ ln -s "${DEST}" "${IFSFILE}"
+ fi
+done
+
+
+# Install the ILE/RPG header file.
+
+
+HFILE="${SCRIPTDIR}/zlib.inc"
+DEST="${SRCPF}/ZLIB.INC.MBR"
+
+if action_needed "${DEST}" "${HFILE}"
+then CMD="CPY OBJ('${HFILE}') TOOBJ('${DEST}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ # touch -r "${HFILE}" "${DEST}"
+fi
+
+IFSFILE="${IFSDIR}/include/`basename \"${HFILE}\"`"
+
+if action_needed "${IFSFILE}" "${DEST}"
+then rm -f "${IFSFILE}"
+ ln -s "${DEST}" "${IFSFILE}"
+fi
+
+
+# Create and compile the identification source file.
+
+echo '#pragma comment(user, "ZLIB version '"${VERSION}"'")' > os400.c
+echo '#pragma comment(user, __DATE__)' >> os400.c
+echo '#pragma comment(user, __TIME__)' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1995-2017 Jean-Loup Gailly, Mark Adler. OS/400 version by P. Monnerat.")' >> os400.c
+make_module OS400 os400.c
+LINK= # No need to rebuild service program yet.
+MODULES=
+
+
+# Get source list.
+
+CSOURCES=`sed -e '/<source name="/!d' \
+ -e 's/.* name="\([^"]*\)".*/\1/' < treebuild.xml`
+
+# Compile the sources into modules.
+
+for SRC in ${CSOURCES}
+do MODULE=`db2_name "${SRC}"`
+ make_module "${MODULE}" "${SRC}"
+done
+
+
+# If needed, (re)create the static binding directory.
+
+if action_needed "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then rm -rf "${LIBIFSNAME}/${STATBNDDIR}.BNDDIR"
+ CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${STATBNDDIR})"
+ CMD="${CMD} TEXT('ZLIB static binding directory')"
+ system "${CMD}"
+
+ for MODULE in ${MODULES}
+ do CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${STATBNDDIR})"
+ CMD="${CMD} OBJ((${TARGETLIB}/${MODULE} *MODULE))"
+ system "${CMD}"
+ done
+fi
+
+
+# The exportation file for service program creation must be in a DB2
+# source file, so make sure it exists.
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE"
+then CMD="CRTSRCPF FILE(${TARGETLIB}/TOOLS) RCDLEN(112)"
+ CMD="${CMD} CCSID(${TGTCCSID}) TEXT('ZLIB: build tools')"
+ system "${CMD}"
+fi
+
+
+DEST="${LIBIFSNAME}/TOOLS.FILE/BNDSRC.MBR"
+
+if action_needed "${SCRIPTDIR}/bndsrc" "${DEST}"
+then CMD="CPY OBJ('${SCRIPTDIR}/bndsrc') TOOBJ('${DEST}')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ # touch -r "${SCRIPTDIR}/bndsrc" "${DEST}"
+ LINK=YES
+fi
+
+
+# Build the service program if needed.
+
+if action_needed "${LIBIFSNAME}/${SRVPGM}.SRVPGM"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then CMD="CRTSRVPGM SRVPGM(${TARGETLIB}/${SRVPGM})"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(BNDSRC)"
+ CMD="${CMD} MODULE(${TARGETLIB}/OS400)"
+ CMD="${CMD} BNDDIR(${TARGETLIB}/${STATBNDDIR})"
+ CMD="${CMD} TEXT('ZLIB ${VERSION} dynamic library')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ LINK=YES
+
+ # Duplicate the service program for a versioned backup.
+
+ BACKUP=`echo "${SRVPGM}${VERSION}" |
+ sed -e 's/.*\(..........\)$/\1/' -e 's/\./_/g'`
+ BACKUP="`db2_name \"${BACKUP}\"`"
+ BKUPIFSNAME="${LIBIFSNAME}/${BACKUP}.SRVPGM"
+ rm -f "${BKUPIFSNAME}"
+ CMD="CRTDUPOBJ OBJ(${SRVPGM}) FROMLIB(${TARGETLIB})"
+ CMD="${CMD} OBJTYPE(*SRVPGM) NEWOBJ(${BACKUP})"
+ system "${CMD}"
+fi
+
+
+# If needed, (re)create the dynamic binding directory.
+
+if action_needed "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
+then LINK=YES
+fi
+
+if [ "${LINK}" ]
+then rm -rf "${LIBIFSNAME}/${DYNBNDDIR}.BNDDIR"
+ CMD="CRTBNDDIR BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
+ CMD="${CMD} TEXT('ZLIB dynamic binding directory')"
+ system "${CMD}"
+ CMD="ADDBNDDIRE BNDDIR(${TARGETLIB}/${DYNBNDDIR})"
+ CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
+ system "${CMD}"
+fi
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/zlib.inc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/zlib.inc
new file mode 100644
index 000000000..c6aca2cbd
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/os400/zlib.inc
@@ -0,0 +1,527 @@
+ * ZLIB.INC - Interface to the general purpose compression library
+ *
+ * ILE RPG400 version by Patrick Monnerat, DATASPHERE.
+ * Version 1.2.11
+ *
+ *
+ * WARNING:
+ * Procedures inflateInit(), inflateInit2(), deflateInit(),
+ * deflateInit2() and inflateBackInit() need to be called with
+ * two additional arguments:
+ * the package version string and the stream control structure.
+ * size. This is needed because RPG lacks some macro feature.
+ * Call these procedures as:
+ * inflateInit(...: ZLIB_VERSION: %size(z_stream))
+ *
+ /if not defined(ZLIB_H_)
+ /define ZLIB_H_
+ *
+ **************************************************************************
+ * Constants
+ **************************************************************************
+ *
+ * Versioning information.
+ *
+ D ZLIB_VERSION C '1.2.11'
+ D ZLIB_VERNUM C X'12a0'
+ D ZLIB_VER_MAJOR C 1
+ D ZLIB_VER_MINOR C 2
+ D ZLIB_VER_REVISION...
+ D C 11
+ D ZLIB_VER_SUBREVISION...
+ D C 0
+ *
+ * Other equates.
+ *
+ D Z_NO_FLUSH C 0
+ D Z_PARTIAL_FLUSH...
+ D C 1
+ D Z_SYNC_FLUSH C 2
+ D Z_FULL_FLUSH C 3
+ D Z_FINISH C 4
+ D Z_BLOCK C 5
+ D Z_TREES C 6
+ *
+ D Z_OK C 0
+ D Z_STREAM_END C 1
+ D Z_NEED_DICT C 2
+ D Z_ERRNO C -1
+ D Z_STREAM_ERROR C -2
+ D Z_DATA_ERROR C -3
+ D Z_MEM_ERROR C -4
+ D Z_BUF_ERROR C -5
+ D Z_VERSION_ERROR C -6
+ *
+ D Z_NO_COMPRESSION...
+ D C 0
+ D Z_BEST_SPEED C 1
+ D Z_BEST_COMPRESSION...
+ D C 9
+ D Z_DEFAULT_COMPRESSION...
+ D C -1
+ *
+ D Z_FILTERED C 1
+ D Z_HUFFMAN_ONLY C 2
+ D Z_RLE C 3
+ D Z_DEFAULT_STRATEGY...
+ D C 0
+ *
+ D Z_BINARY C 0
+ D Z_ASCII C 1
+ D Z_UNKNOWN C 2
+ *
+ D Z_DEFLATED C 8
+ *
+ D Z_NULL C 0
+ *
+ **************************************************************************
+ * Types
+ **************************************************************************
+ *
+ D z_streamp S * Stream struct ptr
+ D gzFile S * File pointer
+ D gz_headerp S *
+ D z_off_t S 10i 0 Stream offsets
+ D z_off64_t S 20i 0 Stream offsets
+ *
+ **************************************************************************
+ * Structures
+ **************************************************************************
+ *
+ * The GZIP encode/decode stream support structure.
+ *
+ D z_stream DS align based(z_streamp)
+ D zs_next_in * Next input byte
+ D zs_avail_in 10U 0 Byte cnt at next_in
+ D zs_total_in 10U 0 Total bytes read
+ D zs_next_out * Output buffer ptr
+ D zs_avail_out 10U 0 Room left @ next_out
+ D zs_total_out 10U 0 Total bytes written
+ D zs_msg * Last errmsg or null
+ D zs_state * Internal state
+ D zs_zalloc * procptr Int. state allocator
+ D zs_free * procptr Int. state dealloc.
+ D zs_opaque * Private alloc. data
+ D zs_data_type 10i 0 ASC/BIN best guess
+ D zs_adler 10u 0 Uncompr. adler32 val
+ D 10U 0 Reserved
+ D 10U 0 Ptr. alignment
+ *
+ **************************************************************************
+ * Utility function prototypes
+ **************************************************************************
+ *
+ D compress PR 10I 0 extproc('compress')
+ D dest 65535 options(*varsize) Destination buffer
+ D destLen 10U 0 Destination length
+ D source 65535 const options(*varsize) Source buffer
+ D sourceLen 10u 0 value Source length
+ *
+ D compress2 PR 10I 0 extproc('compress2')
+ D dest 65535 options(*varsize) Destination buffer
+ D destLen 10U 0 Destination length
+ D source 65535 const options(*varsize) Source buffer
+ D sourceLen 10U 0 value Source length
+ D level 10I 0 value Compression level
+ *
+ D compressBound PR 10U 0 extproc('compressBound')
+ D sourceLen 10U 0 value
+ *
+ D uncompress PR 10I 0 extproc('uncompress')
+ D dest 65535 options(*varsize) Destination buffer
+ D destLen 10U 0 Destination length
+ D source 65535 const options(*varsize) Source buffer
+ D sourceLen 10U 0 value Source length
+ *
+ D uncompress2 PR 10I 0 extproc('uncompress2')
+ D dest 65535 options(*varsize) Destination buffer
+ D destLen 10U 0 Destination length
+ D source 65535 const options(*varsize) Source buffer
+ D sourceLen 10U 0 Source length
+ *
+ /if not defined(LARGE_FILES)
+ D gzopen PR extproc('gzopen')
+ D like(gzFile)
+ D path * value options(*string) File pathname
+ D mode * value options(*string) Open mode
+ /else
+ D gzopen PR extproc('gzopen64')
+ D like(gzFile)
+ D path * value options(*string) File pathname
+ D mode * value options(*string) Open mode
+ *
+ D gzopen64 PR extproc('gzopen64')
+ D like(gzFile)
+ D path * value options(*string) File pathname
+ D mode * value options(*string) Open mode
+ /endif
+ *
+ D gzdopen PR extproc('gzdopen')
+ D like(gzFile)
+ D fd 10I 0 value File descriptor
+ D mode * value options(*string) Open mode
+ *
+ D gzbuffer PR 10I 0 extproc('gzbuffer')
+ D file value like(gzFile) File pointer
+ D size 10U 0 value
+ *
+ D gzsetparams PR 10I 0 extproc('gzsetparams')
+ D file value like(gzFile) File pointer
+ D level 10I 0 value
+ D strategy 10I 0 value
+ *
+ D gzread PR 10I 0 extproc('gzread')
+ D file value like(gzFile) File pointer
+ D buf 65535 options(*varsize) Buffer
+ D len 10u 0 value Buffer length
+ *
+ D gzfread PR 20I 0 extproc('gzfread')
+ D buf 65535 options(*varsize) Buffer
+ D size 20u 0 value Buffer length
+ D nitems 20u 0 value Buffer length
+ D file value like(gzFile) File pointer
+ *
+ D gzwrite PR 10I 0 extproc('gzwrite')
+ D file value like(gzFile) File pointer
+ D buf 65535 const options(*varsize) Buffer
+ D len 10u 0 value Buffer length
+ *
+ D gzfwrite PR 20I 0 extproc('gzfwrite')
+ D buf 65535 options(*varsize) Buffer
+ D size 20u 0 value Buffer length
+ D nitems 20u 0 value Buffer length
+ D file value like(gzFile) File pointer
+ *
+ D gzputs PR 10I 0 extproc('gzputs')
+ D file value like(gzFile) File pointer
+ D s * value options(*string) String to output
+ *
+ D gzgets PR * extproc('gzgets')
+ D file value like(gzFile) File pointer
+ D buf 65535 options(*varsize) Read buffer
+ D len 10i 0 value Buffer length
+ *
+ D gzputc PR 10i 0 extproc('gzputc')
+ D file value like(gzFile) File pointer
+ D c 10I 0 value Character to write
+ *
+ D gzgetc PR 10i 0 extproc('gzgetc')
+ D file value like(gzFile) File pointer
+ *
+ D gzgetc_ PR 10i 0 extproc('gzgetc_')
+ D file value like(gzFile) File pointer
+ *
+ D gzungetc PR 10i 0 extproc('gzungetc')
+ D c 10I 0 value Character to push
+ D file value like(gzFile) File pointer
+ *
+ D gzflush PR 10i 0 extproc('gzflush')
+ D file value like(gzFile) File pointer
+ D flush 10I 0 value Type of flush
+ *
+ /if not defined(LARGE_FILES)
+ D gzseek PR extproc('gzseek')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ D offset value like(z_off_t) Offset
+ D whence 10i 0 value Origin
+ /else
+ D gzseek PR extproc('gzseek64')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ D offset value like(z_off_t) Offset
+ D whence 10i 0 value Origin
+ *
+ D gzseek64 PR extproc('gzseek64')
+ D like(z_off64_t)
+ D file value like(gzFile) File pointer
+ D offset value like(z_off64_t) Offset
+ D whence 10i 0 value Origin
+ /endif
+ *
+ D gzrewind PR 10i 0 extproc('gzrewind')
+ D file value like(gzFile) File pointer
+ *
+ /if not defined(LARGE_FILES)
+ D gztell PR extproc('gztell')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ /else
+ D gztell PR extproc('gztell64')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ *
+ D gztell64 PR extproc('gztell64')
+ D like(z_off64_t)
+ D file value like(gzFile) File pointer
+ /endif
+ *
+ /if not defined(LARGE_FILES)
+ D gzoffset PR extproc('gzoffset')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ /else
+ D gzoffset PR extproc('gzoffset64')
+ D like(z_off_t)
+ D file value like(gzFile) File pointer
+ *
+ D gzoffset64 PR extproc('gzoffset64')
+ D like(z_off64_t)
+ D file value like(gzFile) File pointer
+ /endif
+ *
+ D gzeof PR 10i 0 extproc('gzeof')
+ D file value like(gzFile) File pointer
+ *
+ D gzdirect PR 10i 0 extproc('gzdirect')
+ D file value like(gzFile) File pointer
+ *
+ D gzclose_r PR 10i 0 extproc('gzclose_r')
+ D file value like(gzFile) File pointer
+ *
+ D gzclose_w PR 10i 0 extproc('gzclose_w')
+ D file value like(gzFile) File pointer
+ *
+ D gzclose PR 10i 0 extproc('gzclose')
+ D file value like(gzFile) File pointer
+ *
+ D gzerror PR * extproc('gzerror') Error string
+ D file value like(gzFile) File pointer
+ D errnum 10I 0 Error code
+ *
+ D gzclearerr PR extproc('gzclearerr')
+ D file value like(gzFile) File pointer
+ *
+ **************************************************************************
+ * Basic function prototypes
+ **************************************************************************
+ *
+ D zlibVersion PR * extproc('zlibVersion') Version string
+ *
+ D deflateInit PR 10I 0 extproc('deflateInit_') Init. compression
+ D strm like(z_stream) Compression stream
+ D level 10I 0 value Compression level
+ D version * value options(*string) Version string
+ D stream_size 10i 0 value Stream struct. size
+ *
+ D deflate PR 10I 0 extproc('deflate') Compress data
+ D strm like(z_stream) Compression stream
+ D flush 10I 0 value Flush type required
+ *
+ D deflateEnd PR 10I 0 extproc('deflateEnd') Termin. compression
+ D strm like(z_stream) Compression stream
+ *
+ D inflateInit PR 10I 0 extproc('inflateInit_') Init. expansion
+ D strm like(z_stream) Expansion stream
+ D version * value options(*string) Version string
+ D stream_size 10i 0 value Stream struct. size
+ *
+ D inflate PR 10I 0 extproc('inflate') Expand data
+ D strm like(z_stream) Expansion stream
+ D flush 10I 0 value Flush type required
+ *
+ D inflateEnd PR 10I 0 extproc('inflateEnd') Termin. expansion
+ D strm like(z_stream) Expansion stream
+ *
+ **************************************************************************
+ * Advanced function prototypes
+ **************************************************************************
+ *
+ D deflateInit2 PR 10I 0 extproc('deflateInit2_') Init. compression
+ D strm like(z_stream) Compression stream
+ D level 10I 0 value Compression level
+ D method 10I 0 value Compression method
+ D windowBits 10I 0 value log2(window size)
+ D memLevel 10I 0 value Mem/cmpress tradeoff
+ D strategy 10I 0 value Compression strategy
+ D version * value options(*string) Version string
+ D stream_size 10i 0 value Stream struct. size
+ *
+ D deflateSetDictionary...
+ D PR 10I 0 extproc('deflateSetDictionary') Init. dictionary
+ D strm like(z_stream) Compression stream
+ D dictionary 65535 const options(*varsize) Dictionary bytes
+ D dictLength 10U 0 value Dictionary length
+ *
+ D deflateCopy PR 10I 0 extproc('deflateCopy') Compress strm 2 strm
+ D dest like(z_stream) Destination stream
+ D source like(z_stream) Source stream
+ *
+ D deflateReset PR 10I 0 extproc('deflateReset') End and init. stream
+ D strm like(z_stream) Compression stream
+ *
+ D deflateParams PR 10I 0 extproc('deflateParams') Change level & strat
+ D strm like(z_stream) Compression stream
+ D level 10I 0 value Compression level
+ D strategy 10I 0 value Compression strategy
+ *
+ D deflateTune PR 10I 0 extproc('deflateTune')
+ D strm like(z_stream) Compression stream
+ D good 10I 0 value
+ D lazy 10I 0 value
+ D nice 10I 0 value
+ D chain 10I 0 value
+ *
+ D deflateBound PR 10U 0 extproc('deflateBound') Change level & strat
+ D strm like(z_stream) Compression stream
+ D sourcelen 10U 0 value Compression level
+ *
+ D deflatePending PR 10I 0 extproc('deflatePending') Change level & strat
+ D strm like(z_stream) Compression stream
+ D pending 10U 0 Pending bytes
+ D bits 10I 0 Pending bits
+ *
+ D deflatePrime PR 10I 0 extproc('deflatePrime') Change level & strat
+ D strm like(z_stream) Compression stream
+ D bits 10I 0 value # of bits to insert
+ D value 10I 0 value Bits to insert
+ *
+ D inflateInit2 PR 10I 0 extproc('inflateInit2_') Init. expansion
+ D strm like(z_stream) Expansion stream
+ D windowBits 10I 0 value log2(window size)
+ D version * value options(*string) Version string
+ D stream_size 10i 0 value Stream struct. size
+ *
+ D inflateSetDictionary...
+ D PR 10I 0 extproc('inflateSetDictionary') Init. dictionary
+ D strm like(z_stream) Expansion stream
+ D dictionary 65535 const options(*varsize) Dictionary bytes
+ D dictLength 10U 0 value Dictionary length
+ *
+ D inflateGetDictionary...
+ D PR 10I 0 extproc('inflateGetDictionary') Get dictionary
+ D strm like(z_stream) Expansion stream
+ D dictionary 65535 options(*varsize) Dictionary bytes
+ D dictLength 10U 0 Dictionary length
+ *
+ D deflateGetDictionary...
+ D PR 10I 0 extproc('deflateGetDictionary') Get dictionary
+ D strm like(z_stream) Expansion stream
+ D dictionary 65535 options(*varsize) Dictionary bytes
+ D dictLength 10U 0 Dictionary length
+ *
+ D inflateSync PR 10I 0 extproc('inflateSync') Sync. expansion
+ D strm like(z_stream) Expansion stream
+ *
+ D inflateCopy PR 10I 0 extproc('inflateCopy')
+ D dest like(z_stream) Destination stream
+ D source like(z_stream) Source stream
+ *
+ D inflateReset PR 10I 0 extproc('inflateReset') End and init. stream
+ D strm like(z_stream) Expansion stream
+ *
+ D inflateReset2 PR 10I 0 extproc('inflateReset2') End and init. stream
+ D strm like(z_stream) Expansion stream
+ D windowBits 10I 0 value Log2(buffer size)
+ *
+ D inflatePrime PR 10I 0 extproc('inflatePrime') Insert bits
+ D strm like(z_stream) Expansion stream
+ D bits 10I 0 value Bit count
+ D value 10I 0 value Bits to insert
+ *
+ D inflateMark PR 10I 0 extproc('inflateMark') Get inflate info
+ D strm like(z_stream) Expansion stream
+ *
+ D inflateCodesUsed...
+ PR 20U 0 extproc('inflateCodesUsed')
+ D strm like(z_stream) Expansion stream
+ *
+ D inflateValidate...
+ PR 20U 0 extproc('inflateValidate')
+ D strm like(z_stream) Expansion stream
+ D check 10I 0 value
+ *
+ D inflateGetHeader...
+ PR 10U 0 extproc('inflateGetHeader')
+ D strm like(z_stream) Expansion stream
+ D head like(gz_headerp)
+ *
+ D deflateSetHeader...
+ PR 10U 0 extproc('deflateSetHeader')
+ D strm like(z_stream) Expansion stream
+ D head like(gz_headerp)
+ *
+ D inflateBackInit...
+ D PR 10I 0 extproc('inflateBackInit_')
+ D strm like(z_stream) Expansion stream
+ D windowBits 10I 0 value Log2(buffer size)
+ D window 65535 options(*varsize) Buffer
+ D version * value options(*string) Version string
+ D stream_size 10i 0 value Stream struct. size
+ *
+ D inflateBack PR 10I 0 extproc('inflateBack')
+ D strm like(z_stream) Expansion stream
+ D in * value procptr Input function
+ D in_desc * value Input descriptor
+ D out * value procptr Output function
+ D out_desc * value Output descriptor
+ *
+ D inflateBackEnd PR 10I 0 extproc('inflateBackEnd')
+ D strm like(z_stream) Expansion stream
+ *
+ D zlibCompileFlags...
+ D PR 10U 0 extproc('zlibCompileFlags')
+ *
+ **************************************************************************
+ * Checksum function prototypes
+ **************************************************************************
+ *
+ D adler32 PR 10U 0 extproc('adler32') New checksum
+ D adler 10U 0 value Old checksum
+ D buf 65535 const options(*varsize) Bytes to accumulate
+ D len 10U 0 value Buffer length
+ *
+ D adler32_combine...
+ PR 10U 0 extproc('adler32_combine') New checksum
+ D adler1 10U 0 value Old checksum
+ D adler2 10U 0 value Old checksum
+ D len2 20U 0 value Buffer length
+ *
+ D adler32_z PR 10U 0 extproc('adler32_z') New checksum
+ D adler 10U 0 value Old checksum
+ D buf 65535 const options(*varsize) Bytes to accumulate
+ D len 20U 0 value Buffer length
+ *
+ D crc32 PR 10U 0 extproc('crc32') New checksum
+ D crc 10U 0 value Old checksum
+ D buf 65535 const options(*varsize) Bytes to accumulate
+ D len 10U 0 value Buffer length
+ *
+ D crc32_combine...
+ PR 10U 0 extproc('crc32_combine') New checksum
+ D crc1 10U 0 value Old checksum
+ D crc2 10U 0 value Old checksum
+ D len2 20U 0 value Buffer length
+ *
+ D crc32_z PR 10U 0 extproc('crc32_z') New checksum
+ D crc 10U 0 value Old checksum
+ D buf 65535 const options(*varsize) Bytes to accumulate
+ D len 20U 0 value Buffer length
+ *
+ **************************************************************************
+ * Miscellaneous function prototypes
+ **************************************************************************
+ *
+ D zError PR * extproc('zError') Error string
+ D err 10I 0 value Error code
+ *
+ D inflateSyncPoint...
+ D PR 10I 0 extproc('inflateSyncPoint')
+ D strm like(z_stream) Expansion stream
+ *
+ D get_crc_table PR * extproc('get_crc_table') Ptr to ulongs
+ *
+ D inflateUndermine...
+ D PR 10I 0 extproc('inflateUndermine')
+ D strm like(z_stream) Expansion stream
+ D arg 10I 0 value Error code
+ *
+ D inflateResetKeep...
+ D PR 10I 0 extproc('inflateResetKeep') End and init. stream
+ D strm like(z_stream) Expansion stream
+ *
+ D deflateResetKeep...
+ D PR 10I 0 extproc('deflateResetKeep') End and init. stream
+ D strm like(z_stream) Expansion stream
+ *
+ /endif
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/qnx/package.qpg b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/qnx/package.qpg
new file mode 100644
index 000000000..31e8e90db
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/qnx/package.qpg
@@ -0,0 +1,141 @@
+<QPG:Generation>
+ <QPG:Options>
+ <QPG:User unattended="no" verbosity="2" listfiles="yes"/>
+ <QPG:Defaults type="qnx_package"/>
+ <QPG:Source></QPG:Source>
+ <QPG:Release number="+"/>
+ <QPG:Build></QPG:Build>
+ <QPG:FileSorting strip="yes"/>
+ <QPG:Package targets="combine"/>
+ <QPG:Repository generate="yes"/>
+ <QPG:FinalDir></QPG:FinalDir>
+ <QPG:Cleanup></QPG:Cleanup>
+ </QPG:Options>
+
+ <QPG:Responsible>
+ <QPG:Company></QPG:Company>
+ <QPG:Department></QPG:Department>
+ <QPG:Group></QPG:Group>
+ <QPG:Team></QPG:Team>
+ <QPG:Employee></QPG:Employee>
+ <QPG:EmailAddress></QPG:EmailAddress>
+ </QPG:Responsible>
+
+ <QPG:Values>
+ <QPG:Files>
+ <QPG:Add file="../zconf.h" install="/opt/include/" user="root:sys" permission="644"/>
+ <QPG:Add file="../zlib.h" install="/opt/include/" user="root:sys" permission="644"/>
+ <QPG:Add file="../libz.so.1.2.11" install="/opt/lib/" user="root:bin" permission="644"/>
+ <QPG:Add file="libz.so" install="/opt/lib/" component="dev" filetype="symlink" linkto="libz.so.1.2.11"/>
+ <QPG:Add file="libz.so.1" install="/opt/lib/" filetype="symlink" linkto="libz.so.1.2.11"/>
+ <QPG:Add file="../libz.so.1.2.11" install="/opt/lib/" component="slib"/>
+ </QPG:Files>
+
+ <QPG:PackageFilter>
+ <QPM:PackageManifest>
+ <QPM:PackageDescription>
+ <QPM:PackageType>Library</QPM:PackageType>
+ <QPM:PackageReleaseNotes></QPM:PackageReleaseNotes>
+ <QPM:PackageReleaseUrgency>Medium</QPM:PackageReleaseUrgency>
+ <QPM:PackageRepository></QPM:PackageRepository>
+ <QPM:FileVersion>2.0</QPM:FileVersion>
+ </QPM:PackageDescription>
+
+ <QPM:ProductDescription>
+ <QPM:ProductName>zlib</QPM:ProductName>
+ <QPM:ProductIdentifier>zlib</QPM:ProductIdentifier>
+ <QPM:ProductEmail>alain.bonnefoy@icbt.com</QPM:ProductEmail>
+ <QPM:VendorName>Public</QPM:VendorName>
+ <QPM:VendorInstallName>public</QPM:VendorInstallName>
+ <QPM:VendorURL>www.gzip.org/zlib</QPM:VendorURL>
+ <QPM:VendorEmbedURL></QPM:VendorEmbedURL>
+ <QPM:VendorEmail></QPM:VendorEmail>
+ <QPM:AuthorName>Jean-Loup Gailly,Mark Adler</QPM:AuthorName>
+ <QPM:AuthorURL>www.gzip.org/zlib</QPM:AuthorURL>
+ <QPM:AuthorEmbedURL></QPM:AuthorEmbedURL>
+ <QPM:AuthorEmail>zlib@gzip.org</QPM:AuthorEmail>
+ <QPM:ProductIconSmall></QPM:ProductIconSmall>
+ <QPM:ProductIconLarge></QPM:ProductIconLarge>
+ <QPM:ProductDescriptionShort>A massively spiffy yet delicately unobtrusive compression library.</QPM:ProductDescriptionShort>
+ <QPM:ProductDescriptionLong>zlib is designed to be a free, general-purpose, legally unencumbered, lossless data compression library for use on virtually any computer hardware and operating system.</QPM:ProductDescriptionLong>
+ <QPM:ProductDescriptionURL>http://www.gzip.org/zlib</QPM:ProductDescriptionURL>
+ <QPM:ProductDescriptionEmbedURL></QPM:ProductDescriptionEmbedURL>
+ </QPM:ProductDescription>
+
+ <QPM:ReleaseDescription>
+ <QPM:ReleaseVersion>1.2.11</QPM:ReleaseVersion>
+ <QPM:ReleaseUrgency>Medium</QPM:ReleaseUrgency>
+ <QPM:ReleaseStability>Stable</QPM:ReleaseStability>
+ <QPM:ReleaseNoteMinor></QPM:ReleaseNoteMinor>
+ <QPM:ReleaseNoteMajor></QPM:ReleaseNoteMajor>
+ <QPM:ExcludeCountries>
+ <QPM:Country></QPM:Country>
+ </QPM:ExcludeCountries>
+
+ <QPM:ReleaseCopyright>No License</QPM:ReleaseCopyright>
+ </QPM:ReleaseDescription>
+
+ <QPM:ContentDescription>
+ <QPM:ContentTopic xmlmultiple="true">Software Development/Libraries and Extensions/C Libraries</QPM:ContentTopic>
+ <QPM:ContentKeyword>zlib,compression</QPM:ContentKeyword>
+ <QPM:TargetOS>qnx6</QPM:TargetOS>
+ <QPM:HostOS>qnx6</QPM:HostOS>
+ <QPM:DisplayEnvironment xmlmultiple="true">None</QPM:DisplayEnvironment>
+ <QPM:TargetAudience xmlmultiple="true">Developer</QPM:TargetAudience>
+ </QPM:ContentDescription>
+ </QPM:PackageManifest>
+ </QPG:PackageFilter>
+
+ <QPG:PackageFilter proc="none" target="none">
+ <QPM:PackageManifest>
+ <QPM:ProductInstallationDependencies>
+ <QPM:ProductRequirements></QPM:ProductRequirements>
+ </QPM:ProductInstallationDependencies>
+
+ <QPM:ProductInstallationProcedure>
+ <QPM:Script xmlmultiple="true">
+ <QPM:ScriptName></QPM:ScriptName>
+ <QPM:ScriptType>Install</QPM:ScriptType>
+ <QPM:ScriptTiming>Post</QPM:ScriptTiming>
+ <QPM:ScriptBlocking>No</QPM:ScriptBlocking>
+ <QPM:ScriptResult>Ignore</QPM:ScriptResult>
+ <QPM:ShortDescription></QPM:ShortDescription>
+ <QPM:UseBinaries>No</QPM:UseBinaries>
+ <QPM:Priority>Optional</QPM:Priority>
+ </QPM:Script>
+ </QPM:ProductInstallationProcedure>
+ </QPM:PackageManifest>
+
+ <QPM:Launch>
+ </QPM:Launch>
+ </QPG:PackageFilter>
+
+ <QPG:PackageFilter type="core" component="none">
+ <QPM:PackageManifest>
+ <QPM:ProductInstallationProcedure>
+ <QPM:OrderDependency xmlmultiple="true">
+ <QPM:Order>InstallOver</QPM:Order>
+ <QPM:Product>zlib</QPM:Product>
+ </QPM:OrderDependency>
+ </QPM:ProductInstallationProcedure>
+ </QPM:PackageManifest>
+
+ <QPM:Launch>
+ </QPM:Launch>
+ </QPG:PackageFilter>
+
+ <QPG:PackageFilter type="core" component="dev">
+ <QPM:PackageManifest>
+ <QPM:ProductInstallationProcedure>
+ <QPM:OrderDependency xmlmultiple="true">
+ <QPM:Order>InstallOver</QPM:Order>
+ <QPM:Product>zlib-dev</QPM:Product>
+ </QPM:OrderDependency>
+ </QPM:ProductInstallationProcedure>
+ </QPM:PackageManifest>
+
+ <QPM:Launch>
+ </QPM:Launch>
+ </QPG:PackageFilter>
+ </QPG:Values>
+</QPG:Generation>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/example.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/example.c
new file mode 100644
index 000000000..eee17ce7c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/example.c
@@ -0,0 +1,602 @@
+/* example.c -- usage example of the zlib compression library
+ * Copyright (C) 1995-2006, 2011, 2016 Jean-loup Gailly
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#include "zlib.h"
+#include <stdio.h>
+
+#ifdef STDC
+# include <string.h>
+# include <stdlib.h>
+#endif
+
+#if defined(VMS) || defined(RISCOS)
+# define TESTFILE "foo-gz"
+#else
+# define TESTFILE "foo.gz"
+#endif
+
+#define CHECK_ERR(err, msg) { \
+ if (err != Z_OK) { \
+ fprintf(stderr, "%s error: %d\n", msg, err); \
+ exit(1); \
+ } \
+}
+
+static z_const char hello[] = "hello, hello!";
+/* "hello world" would be more standard, but the repeated "hello"
+ * stresses the compression code better, sorry...
+ */
+
+static const char dictionary[] = "hello";
+static uLong dictId; /* Adler32 value of the dictionary */
+
+void test_deflate OF((Byte *compr, uLong comprLen));
+void test_inflate OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+void test_large_deflate OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+void test_large_inflate OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+void test_flush OF((Byte *compr, uLong *comprLen));
+void test_sync OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+void test_dict_deflate OF((Byte *compr, uLong comprLen));
+void test_dict_inflate OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+int main OF((int argc, char *argv[]));
+
+
+#ifdef Z_SOLO
+
+void *myalloc OF((void *, unsigned, unsigned));
+void myfree OF((void *, void *));
+
+void *myalloc(q, n, m)
+ void *q;
+ unsigned n, m;
+{
+ (void)q;
+ return calloc(n, m);
+}
+
+void myfree(void *q, void *p)
+{
+ (void)q;
+ free(p);
+}
+
+static alloc_func zalloc = myalloc;
+static free_func zfree = myfree;
+
+#else /* !Z_SOLO */
+
+static alloc_func zalloc = (alloc_func)0;
+static free_func zfree = (free_func)0;
+
+void test_compress OF((Byte *compr, uLong comprLen,
+ Byte *uncompr, uLong uncomprLen));
+void test_gzio OF((const char *fname,
+ Byte *uncompr, uLong uncomprLen));
+
+/* ===========================================================================
+ * Test compress() and uncompress()
+ */
+void test_compress(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ int err;
+ uLong len = (uLong)strlen(hello)+1;
+
+ err = compress(compr, &comprLen, (const Bytef*)hello, len);
+ CHECK_ERR(err, "compress");
+
+ strcpy((char*)uncompr, "garbage");
+
+ err = uncompress(uncompr, &uncomprLen, compr, comprLen);
+ CHECK_ERR(err, "uncompress");
+
+ if (strcmp((char*)uncompr, hello)) {
+ fprintf(stderr, "bad uncompress\n");
+ exit(1);
+ } else {
+ printf("uncompress(): %s\n", (char *)uncompr);
+ }
+}
+
+/* ===========================================================================
+ * Test read/write of .gz files
+ */
+void test_gzio(fname, uncompr, uncomprLen)
+ const char *fname; /* compressed file name */
+ Byte *uncompr;
+ uLong uncomprLen;
+{
+#ifdef NO_GZCOMPRESS
+ fprintf(stderr, "NO_GZCOMPRESS -- gz* functions cannot compress\n");
+#else
+ int err;
+ int len = (int)strlen(hello)+1;
+ gzFile file;
+ z_off_t pos;
+
+ file = gzopen(fname, "wb");
+ if (file == NULL) {
+ fprintf(stderr, "gzopen error\n");
+ exit(1);
+ }
+ gzputc(file, 'h');
+ if (gzputs(file, "ello") != 4) {
+ fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err));
+ exit(1);
+ }
+ if (gzprintf(file, ", %s!", "hello") != 8) {
+ fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err));
+ exit(1);
+ }
+ gzseek(file, 1L, SEEK_CUR); /* add one zero byte */
+ gzclose(file);
+
+ file = gzopen(fname, "rb");
+ if (file == NULL) {
+ fprintf(stderr, "gzopen error\n");
+ exit(1);
+ }
+ strcpy((char*)uncompr, "garbage");
+
+ if (gzread(file, uncompr, (unsigned)uncomprLen) != len) {
+ fprintf(stderr, "gzread err: %s\n", gzerror(file, &err));
+ exit(1);
+ }
+ if (strcmp((char*)uncompr, hello)) {
+ fprintf(stderr, "bad gzread: %s\n", (char*)uncompr);
+ exit(1);
+ } else {
+ printf("gzread(): %s\n", (char*)uncompr);
+ }
+
+ pos = gzseek(file, -8L, SEEK_CUR);
+ if (pos != 6 || gztell(file) != pos) {
+ fprintf(stderr, "gzseek error, pos=%ld, gztell=%ld\n",
+ (long)pos, (long)gztell(file));
+ exit(1);
+ }
+
+ if (gzgetc(file) != ' ') {
+ fprintf(stderr, "gzgetc error\n");
+ exit(1);
+ }
+
+ if (gzungetc(' ', file) != ' ') {
+ fprintf(stderr, "gzungetc error\n");
+ exit(1);
+ }
+
+ gzgets(file, (char*)uncompr, (int)uncomprLen);
+ if (strlen((char*)uncompr) != 7) { /* " hello!" */
+ fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err));
+ exit(1);
+ }
+ if (strcmp((char*)uncompr, hello + 6)) {
+ fprintf(stderr, "bad gzgets after gzseek\n");
+ exit(1);
+ } else {
+ printf("gzgets() after gzseek: %s\n", (char*)uncompr);
+ }
+
+ gzclose(file);
+#endif
+}
+
+#endif /* Z_SOLO */
+
+/* ===========================================================================
+ * Test deflate() with small buffers
+ */
+void test_deflate(compr, comprLen)
+ Byte *compr;
+ uLong comprLen;
+{
+ z_stream c_stream; /* compression stream */
+ int err;
+ uLong len = (uLong)strlen(hello)+1;
+
+ c_stream.zalloc = zalloc;
+ c_stream.zfree = zfree;
+ c_stream.opaque = (voidpf)0;
+
+ err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION);
+ CHECK_ERR(err, "deflateInit");
+
+ c_stream.next_in = (z_const unsigned char *)hello;
+ c_stream.next_out = compr;
+
+ while (c_stream.total_in != len && c_stream.total_out < comprLen) {
+ c_stream.avail_in = c_stream.avail_out = 1; /* force small buffers */
+ err = deflate(&c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, "deflate");
+ }
+ /* Finish the stream, still forcing small buffers: */
+ for (;;) {
+ c_stream.avail_out = 1;
+ err = deflate(&c_stream, Z_FINISH);
+ if (err == Z_STREAM_END) break;
+ CHECK_ERR(err, "deflate");
+ }
+
+ err = deflateEnd(&c_stream);
+ CHECK_ERR(err, "deflateEnd");
+}
+
+/* ===========================================================================
+ * Test inflate() with small buffers
+ */
+void test_inflate(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ int err;
+ z_stream d_stream; /* decompression stream */
+
+ strcpy((char*)uncompr, "garbage");
+
+ d_stream.zalloc = zalloc;
+ d_stream.zfree = zfree;
+ d_stream.opaque = (voidpf)0;
+
+ d_stream.next_in = compr;
+ d_stream.avail_in = 0;
+ d_stream.next_out = uncompr;
+
+ err = inflateInit(&d_stream);
+ CHECK_ERR(err, "inflateInit");
+
+ while (d_stream.total_out < uncomprLen && d_stream.total_in < comprLen) {
+ d_stream.avail_in = d_stream.avail_out = 1; /* force small buffers */
+ err = inflate(&d_stream, Z_NO_FLUSH);
+ if (err == Z_STREAM_END) break;
+ CHECK_ERR(err, "inflate");
+ }
+
+ err = inflateEnd(&d_stream);
+ CHECK_ERR(err, "inflateEnd");
+
+ if (strcmp((char*)uncompr, hello)) {
+ fprintf(stderr, "bad inflate\n");
+ exit(1);
+ } else {
+ printf("inflate(): %s\n", (char *)uncompr);
+ }
+}
+
+/* ===========================================================================
+ * Test deflate() with large buffers and dynamic change of compression level
+ */
+void test_large_deflate(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ z_stream c_stream; /* compression stream */
+ int err;
+
+ c_stream.zalloc = zalloc;
+ c_stream.zfree = zfree;
+ c_stream.opaque = (voidpf)0;
+
+ err = deflateInit(&c_stream, Z_BEST_SPEED);
+ CHECK_ERR(err, "deflateInit");
+
+ c_stream.next_out = compr;
+ c_stream.avail_out = (uInt)comprLen;
+
+ /* At this point, uncompr is still mostly zeroes, so it should compress
+ * very well:
+ */
+ c_stream.next_in = uncompr;
+ c_stream.avail_in = (uInt)uncomprLen;
+ err = deflate(&c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, "deflate");
+ if (c_stream.avail_in != 0) {
+ fprintf(stderr, "deflate not greedy\n");
+ exit(1);
+ }
+
+ /* Feed in already compressed data and switch to no compression: */
+ deflateParams(&c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY);
+ c_stream.next_in = compr;
+ c_stream.avail_in = (uInt)comprLen/2;
+ err = deflate(&c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, "deflate");
+
+ /* Switch back to compressing mode: */
+ deflateParams(&c_stream, Z_BEST_COMPRESSION, Z_FILTERED);
+ c_stream.next_in = uncompr;
+ c_stream.avail_in = (uInt)uncomprLen;
+ err = deflate(&c_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, "deflate");
+
+ err = deflate(&c_stream, Z_FINISH);
+ if (err != Z_STREAM_END) {
+ fprintf(stderr, "deflate should report Z_STREAM_END\n");
+ exit(1);
+ }
+ err = deflateEnd(&c_stream);
+ CHECK_ERR(err, "deflateEnd");
+}
+
+/* ===========================================================================
+ * Test inflate() with large buffers
+ */
+void test_large_inflate(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ int err;
+ z_stream d_stream; /* decompression stream */
+
+ strcpy((char*)uncompr, "garbage");
+
+ d_stream.zalloc = zalloc;
+ d_stream.zfree = zfree;
+ d_stream.opaque = (voidpf)0;
+
+ d_stream.next_in = compr;
+ d_stream.avail_in = (uInt)comprLen;
+
+ err = inflateInit(&d_stream);
+ CHECK_ERR(err, "inflateInit");
+
+ for (;;) {
+ d_stream.next_out = uncompr; /* discard the output */
+ d_stream.avail_out = (uInt)uncomprLen;
+ err = inflate(&d_stream, Z_NO_FLUSH);
+ if (err == Z_STREAM_END) break;
+ CHECK_ERR(err, "large inflate");
+ }
+
+ err = inflateEnd(&d_stream);
+ CHECK_ERR(err, "inflateEnd");
+
+ if (d_stream.total_out != 2*uncomprLen + comprLen/2) {
+ fprintf(stderr, "bad large inflate: %ld\n", d_stream.total_out);
+ exit(1);
+ } else {
+ printf("large_inflate(): OK\n");
+ }
+}
+
+/* ===========================================================================
+ * Test deflate() with full flush
+ */
+void test_flush(compr, comprLen)
+ Byte *compr;
+ uLong *comprLen;
+{
+ z_stream c_stream; /* compression stream */
+ int err;
+ uInt len = (uInt)strlen(hello)+1;
+
+ c_stream.zalloc = zalloc;
+ c_stream.zfree = zfree;
+ c_stream.opaque = (voidpf)0;
+
+ err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION);
+ CHECK_ERR(err, "deflateInit");
+
+ c_stream.next_in = (z_const unsigned char *)hello;
+ c_stream.next_out = compr;
+ c_stream.avail_in = 3;
+ c_stream.avail_out = (uInt)*comprLen;
+ err = deflate(&c_stream, Z_FULL_FLUSH);
+ CHECK_ERR(err, "deflate");
+
+ compr[3]++; /* force an error in first compressed block */
+ c_stream.avail_in = len - 3;
+
+ err = deflate(&c_stream, Z_FINISH);
+ if (err != Z_STREAM_END) {
+ CHECK_ERR(err, "deflate");
+ }
+ err = deflateEnd(&c_stream);
+ CHECK_ERR(err, "deflateEnd");
+
+ *comprLen = c_stream.total_out;
+}
+
+/* ===========================================================================
+ * Test inflateSync()
+ */
+void test_sync(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ int err;
+ z_stream d_stream; /* decompression stream */
+
+ strcpy((char*)uncompr, "garbage");
+
+ d_stream.zalloc = zalloc;
+ d_stream.zfree = zfree;
+ d_stream.opaque = (voidpf)0;
+
+ d_stream.next_in = compr;
+ d_stream.avail_in = 2; /* just read the zlib header */
+
+ err = inflateInit(&d_stream);
+ CHECK_ERR(err, "inflateInit");
+
+ d_stream.next_out = uncompr;
+ d_stream.avail_out = (uInt)uncomprLen;
+
+ err = inflate(&d_stream, Z_NO_FLUSH);
+ CHECK_ERR(err, "inflate");
+
+ d_stream.avail_in = (uInt)comprLen-2; /* read all compressed data */
+ err = inflateSync(&d_stream); /* but skip the damaged part */
+ CHECK_ERR(err, "inflateSync");
+
+ err = inflate(&d_stream, Z_FINISH);
+ if (err != Z_DATA_ERROR) {
+ fprintf(stderr, "inflate should report DATA_ERROR\n");
+ /* Because of incorrect adler32 */
+ exit(1);
+ }
+ err = inflateEnd(&d_stream);
+ CHECK_ERR(err, "inflateEnd");
+
+ printf("after inflateSync(): hel%s\n", (char *)uncompr);
+}
+
+/* ===========================================================================
+ * Test deflate() with preset dictionary
+ */
+void test_dict_deflate(compr, comprLen)
+ Byte *compr;
+ uLong comprLen;
+{
+ z_stream c_stream; /* compression stream */
+ int err;
+
+ c_stream.zalloc = zalloc;
+ c_stream.zfree = zfree;
+ c_stream.opaque = (voidpf)0;
+
+ err = deflateInit(&c_stream, Z_BEST_COMPRESSION);
+ CHECK_ERR(err, "deflateInit");
+
+ err = deflateSetDictionary(&c_stream,
+ (const Bytef*)dictionary, (int)sizeof(dictionary));
+ CHECK_ERR(err, "deflateSetDictionary");
+
+ dictId = c_stream.adler;
+ c_stream.next_out = compr;
+ c_stream.avail_out = (uInt)comprLen;
+
+ c_stream.next_in = (z_const unsigned char *)hello;
+ c_stream.avail_in = (uInt)strlen(hello)+1;
+
+ err = deflate(&c_stream, Z_FINISH);
+ if (err != Z_STREAM_END) {
+ fprintf(stderr, "deflate should report Z_STREAM_END\n");
+ exit(1);
+ }
+ err = deflateEnd(&c_stream);
+ CHECK_ERR(err, "deflateEnd");
+}
+
+/* ===========================================================================
+ * Test inflate() with a preset dictionary
+ */
+void test_dict_inflate(compr, comprLen, uncompr, uncomprLen)
+ Byte *compr, *uncompr;
+ uLong comprLen, uncomprLen;
+{
+ int err;
+ z_stream d_stream; /* decompression stream */
+
+ strcpy((char*)uncompr, "garbage");
+
+ d_stream.zalloc = zalloc;
+ d_stream.zfree = zfree;
+ d_stream.opaque = (voidpf)0;
+
+ d_stream.next_in = compr;
+ d_stream.avail_in = (uInt)comprLen;
+
+ err = inflateInit(&d_stream);
+ CHECK_ERR(err, "inflateInit");
+
+ d_stream.next_out = uncompr;
+ d_stream.avail_out = (uInt)uncomprLen;
+
+ for (;;) {
+ err = inflate(&d_stream, Z_NO_FLUSH);
+ if (err == Z_STREAM_END) break;
+ if (err == Z_NEED_DICT) {
+ if (d_stream.adler != dictId) {
+ fprintf(stderr, "unexpected dictionary");
+ exit(1);
+ }
+ err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary,
+ (int)sizeof(dictionary));
+ }
+ CHECK_ERR(err, "inflate with dict");
+ }
+
+ err = inflateEnd(&d_stream);
+ CHECK_ERR(err, "inflateEnd");
+
+ if (strcmp((char*)uncompr, hello)) {
+ fprintf(stderr, "bad inflate with dict\n");
+ exit(1);
+ } else {
+ printf("inflate with dictionary: %s\n", (char *)uncompr);
+ }
+}
+
+/* ===========================================================================
+ * Usage: example [output.gz [input.gz]]
+ */
+
+int main(argc, argv)
+ int argc;
+ char *argv[];
+{
+ Byte *compr, *uncompr;
+ uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */
+ uLong uncomprLen = comprLen;
+ static const char* myVersion = ZLIB_VERSION;
+
+ if (zlibVersion()[0] != myVersion[0]) {
+ fprintf(stderr, "incompatible zlib version\n");
+ exit(1);
+
+ } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) {
+ fprintf(stderr, "warning: different zlib version\n");
+ }
+
+ printf("zlib version %s = 0x%04x, compile flags = 0x%lx\n",
+ ZLIB_VERSION, ZLIB_VERNUM, zlibCompileFlags());
+
+ compr = (Byte*)calloc((uInt)comprLen, 1);
+ uncompr = (Byte*)calloc((uInt)uncomprLen, 1);
+ /* compr and uncompr are cleared to avoid reading uninitialized
+ * data and to ensure that uncompr compresses well.
+ */
+ if (compr == Z_NULL || uncompr == Z_NULL) {
+ printf("out of memory\n");
+ exit(1);
+ }
+
+#ifdef Z_SOLO
+ (void)argc;
+ (void)argv;
+#else
+ test_compress(compr, comprLen, uncompr, uncomprLen);
+
+ test_gzio((argc > 1 ? argv[1] : TESTFILE),
+ uncompr, uncomprLen);
+#endif
+
+ test_deflate(compr, comprLen);
+ test_inflate(compr, comprLen, uncompr, uncomprLen);
+
+ test_large_deflate(compr, comprLen, uncompr, uncomprLen);
+ test_large_inflate(compr, comprLen, uncompr, uncomprLen);
+
+ test_flush(compr, &comprLen);
+ test_sync(compr, comprLen, uncompr, uncomprLen);
+ comprLen = uncomprLen;
+
+ test_dict_deflate(compr, comprLen);
+ test_dict_inflate(compr, comprLen, uncompr, uncomprLen);
+
+ free(compr);
+ free(uncompr);
+
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/infcover.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/infcover.c
new file mode 100644
index 000000000..2be01646c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/infcover.c
@@ -0,0 +1,671 @@
+/* infcover.c -- test zlib's inflate routines with full code coverage
+ * Copyright (C) 2011, 2016 Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* to use, do: ./configure --cover && make cover */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include "zlib.h"
+
+/* get definition of internal structure so we can mess with it (see pull()),
+ and so we can call inflate_trees() (see cover5()) */
+#define ZLIB_INTERNAL
+#include "inftrees.h"
+#include "inflate.h"
+
+#define local static
+
+/* -- memory tracking routines -- */
+
+/*
+ These memory tracking routines are provided to zlib and track all of zlib's
+ allocations and deallocations, check for LIFO operations, keep a current
+ and high water mark of total bytes requested, optionally set a limit on the
+ total memory that can be allocated, and when done check for memory leaks.
+
+ They are used as follows:
+
+ z_stream strm;
+ mem_setup(&strm) initializes the memory tracking and sets the
+ zalloc, zfree, and opaque members of strm to use
+ memory tracking for all zlib operations on strm
+ mem_limit(&strm, limit) sets a limit on the total bytes requested -- a
+ request that exceeds this limit will result in an
+ allocation failure (returns NULL) -- setting the
+ limit to zero means no limit, which is the default
+ after mem_setup()
+ mem_used(&strm, "msg") prints to stderr "msg" and the total bytes used
+ mem_high(&strm, "msg") prints to stderr "msg" and the high water mark
+ mem_done(&strm, "msg") ends memory tracking, releases all allocations
+ for the tracking as well as leaked zlib blocks, if
+ any. If there was anything unusual, such as leaked
+ blocks, non-FIFO frees, or frees of addresses not
+ allocated, then "msg" and information about the
+ problem is printed to stderr. If everything is
+ normal, nothing is printed. mem_done resets the
+ strm members to Z_NULL to use the default memory
+ allocation routines on the next zlib initialization
+ using strm.
+ */
+
+/* these items are strung together in a linked list, one for each allocation */
+struct mem_item {
+ void *ptr; /* pointer to allocated memory */
+ size_t size; /* requested size of allocation */
+ struct mem_item *next; /* pointer to next item in list, or NULL */
+};
+
+/* this structure is at the root of the linked list, and tracks statistics */
+struct mem_zone {
+ struct mem_item *first; /* pointer to first item in list, or NULL */
+ size_t total, highwater; /* total allocations, and largest total */
+ size_t limit; /* memory allocation limit, or 0 if no limit */
+ int notlifo, rogue; /* counts of non-LIFO frees and rogue frees */
+};
+
+/* memory allocation routine to pass to zlib */
+local void *mem_alloc(void *mem, unsigned count, unsigned size)
+{
+ void *ptr;
+ struct mem_item *item;
+ struct mem_zone *zone = mem;
+ size_t len = count * (size_t)size;
+
+ /* induced allocation failure */
+ if (zone == NULL || (zone->limit && zone->total + len > zone->limit))
+ return NULL;
+
+ /* perform allocation using the standard library, fill memory with a
+ non-zero value to make sure that the code isn't depending on zeros */
+ ptr = malloc(len);
+ if (ptr == NULL)
+ return NULL;
+ memset(ptr, 0xa5, len);
+
+ /* create a new item for the list */
+ item = malloc(sizeof(struct mem_item));
+ if (item == NULL) {
+ free(ptr);
+ return NULL;
+ }
+ item->ptr = ptr;
+ item->size = len;
+
+ /* insert item at the beginning of the list */
+ item->next = zone->first;
+ zone->first = item;
+
+ /* update the statistics */
+ zone->total += item->size;
+ if (zone->total > zone->highwater)
+ zone->highwater = zone->total;
+
+ /* return the allocated memory */
+ return ptr;
+}
+
+/* memory free routine to pass to zlib */
+local void mem_free(void *mem, void *ptr)
+{
+ struct mem_item *item, *next;
+ struct mem_zone *zone = mem;
+
+ /* if no zone, just do a free */
+ if (zone == NULL) {
+ free(ptr);
+ return;
+ }
+
+ /* point next to the item that matches ptr, or NULL if not found -- remove
+ the item from the linked list if found */
+ next = zone->first;
+ if (next) {
+ if (next->ptr == ptr)
+ zone->first = next->next; /* first one is it, remove from list */
+ else {
+ do { /* search the linked list */
+ item = next;
+ next = item->next;
+ } while (next != NULL && next->ptr != ptr);
+ if (next) { /* if found, remove from linked list */
+ item->next = next->next;
+ zone->notlifo++; /* not a LIFO free */
+ }
+
+ }
+ }
+
+ /* if found, update the statistics and free the item */
+ if (next) {
+ zone->total -= next->size;
+ free(next);
+ }
+
+ /* if not found, update the rogue count */
+ else
+ zone->rogue++;
+
+ /* in any case, do the requested free with the standard library function */
+ free(ptr);
+}
+
+/* set up a controlled memory allocation space for monitoring, set the stream
+ parameters to the controlled routines, with opaque pointing to the space */
+local void mem_setup(z_stream *strm)
+{
+ struct mem_zone *zone;
+
+ zone = malloc(sizeof(struct mem_zone));
+ assert(zone != NULL);
+ zone->first = NULL;
+ zone->total = 0;
+ zone->highwater = 0;
+ zone->limit = 0;
+ zone->notlifo = 0;
+ zone->rogue = 0;
+ strm->opaque = zone;
+ strm->zalloc = mem_alloc;
+ strm->zfree = mem_free;
+}
+
+/* set a limit on the total memory allocation, or 0 to remove the limit */
+local void mem_limit(z_stream *strm, size_t limit)
+{
+ struct mem_zone *zone = strm->opaque;
+
+ zone->limit = limit;
+}
+
+/* show the current total requested allocations in bytes */
+local void mem_used(z_stream *strm, char *prefix)
+{
+ struct mem_zone *zone = strm->opaque;
+
+ fprintf(stderr, "%s: %lu allocated\n", prefix, zone->total);
+}
+
+/* show the high water allocation in bytes */
+local void mem_high(z_stream *strm, char *prefix)
+{
+ struct mem_zone *zone = strm->opaque;
+
+ fprintf(stderr, "%s: %lu high water mark\n", prefix, zone->highwater);
+}
+
+/* release the memory allocation zone -- if there are any surprises, notify */
+local void mem_done(z_stream *strm, char *prefix)
+{
+ int count = 0;
+ struct mem_item *item, *next;
+ struct mem_zone *zone = strm->opaque;
+
+ /* show high water mark */
+ mem_high(strm, prefix);
+
+ /* free leftover allocations and item structures, if any */
+ item = zone->first;
+ while (item != NULL) {
+ free(item->ptr);
+ next = item->next;
+ free(item);
+ item = next;
+ count++;
+ }
+
+ /* issue alerts about anything unexpected */
+ if (count || zone->total)
+ fprintf(stderr, "** %s: %lu bytes in %d blocks not freed\n",
+ prefix, zone->total, count);
+ if (zone->notlifo)
+ fprintf(stderr, "** %s: %d frees not LIFO\n", prefix, zone->notlifo);
+ if (zone->rogue)
+ fprintf(stderr, "** %s: %d frees not recognized\n",
+ prefix, zone->rogue);
+
+ /* free the zone and delete from the stream */
+ free(zone);
+ strm->opaque = Z_NULL;
+ strm->zalloc = Z_NULL;
+ strm->zfree = Z_NULL;
+}
+
+/* -- inflate test routines -- */
+
+/* Decode a hexadecimal string, set *len to length, in[] to the bytes. This
+ decodes liberally, in that hex digits can be adjacent, in which case two in
+ a row writes a byte. Or they can be delimited by any non-hex character,
+ where the delimiters are ignored except when a single hex digit is followed
+ by a delimiter, where that single digit writes a byte. The returned data is
+ allocated and must eventually be freed. NULL is returned if out of memory.
+ If the length is not needed, then len can be NULL. */
+local unsigned char *h2b(const char *hex, unsigned *len)
+{
+ unsigned char *in, *re;
+ unsigned next, val;
+
+ in = malloc((strlen(hex) + 1) >> 1);
+ if (in == NULL)
+ return NULL;
+ next = 0;
+ val = 1;
+ do {
+ if (*hex >= '0' && *hex <= '9')
+ val = (val << 4) + *hex - '0';
+ else if (*hex >= 'A' && *hex <= 'F')
+ val = (val << 4) + *hex - 'A' + 10;
+ else if (*hex >= 'a' && *hex <= 'f')
+ val = (val << 4) + *hex - 'a' + 10;
+ else if (val != 1 && val < 32) /* one digit followed by delimiter */
+ val += 240; /* make it look like two digits */
+ if (val > 255) { /* have two digits */
+ in[next++] = val & 0xff; /* save the decoded byte */
+ val = 1; /* start over */
+ }
+ } while (*hex++); /* go through the loop with the terminating null */
+ if (len != NULL)
+ *len = next;
+ re = realloc(in, next);
+ return re == NULL ? in : re;
+}
+
+/* generic inflate() run, where hex is the hexadecimal input data, what is the
+ text to include in an error message, step is how much input data to feed
+ inflate() on each call, or zero to feed it all, win is the window bits
+ parameter to inflateInit2(), len is the size of the output buffer, and err
+ is the error code expected from the first inflate() call (the second
+ inflate() call is expected to return Z_STREAM_END). If win is 47, then
+ header information is collected with inflateGetHeader(). If a zlib stream
+ is looking for a dictionary, then an empty dictionary is provided.
+ inflate() is run until all of the input data is consumed. */
+local void inf(char *hex, char *what, unsigned step, int win, unsigned len,
+ int err)
+{
+ int ret;
+ unsigned have;
+ unsigned char *in, *out;
+ z_stream strm, copy;
+ gz_header head;
+
+ mem_setup(&strm);
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, win);
+ if (ret != Z_OK) {
+ mem_done(&strm, what);
+ return;
+ }
+ out = malloc(len); assert(out != NULL);
+ if (win == 47) {
+ head.extra = out;
+ head.extra_max = len;
+ head.name = out;
+ head.name_max = len;
+ head.comment = out;
+ head.comm_max = len;
+ ret = inflateGetHeader(&strm, &head); assert(ret == Z_OK);
+ }
+ in = h2b(hex, &have); assert(in != NULL);
+ if (step == 0 || step > have)
+ step = have;
+ strm.avail_in = step;
+ have -= step;
+ strm.next_in = in;
+ do {
+ strm.avail_out = len;
+ strm.next_out = out;
+ ret = inflate(&strm, Z_NO_FLUSH); assert(err == 9 || ret == err);
+ if (ret != Z_OK && ret != Z_BUF_ERROR && ret != Z_NEED_DICT)
+ break;
+ if (ret == Z_NEED_DICT) {
+ ret = inflateSetDictionary(&strm, in, 1);
+ assert(ret == Z_DATA_ERROR);
+ mem_limit(&strm, 1);
+ ret = inflateSetDictionary(&strm, out, 0);
+ assert(ret == Z_MEM_ERROR);
+ mem_limit(&strm, 0);
+ ((struct inflate_state *)strm.state)->mode = DICT;
+ ret = inflateSetDictionary(&strm, out, 0);
+ assert(ret == Z_OK);
+ ret = inflate(&strm, Z_NO_FLUSH); assert(ret == Z_BUF_ERROR);
+ }
+ ret = inflateCopy(&copy, &strm); assert(ret == Z_OK);
+ ret = inflateEnd(&copy); assert(ret == Z_OK);
+ err = 9; /* don't care next time around */
+ have += strm.avail_in;
+ strm.avail_in = step > have ? have : step;
+ have -= strm.avail_in;
+ } while (strm.avail_in);
+ free(in);
+ free(out);
+ ret = inflateReset2(&strm, -8); assert(ret == Z_OK);
+ ret = inflateEnd(&strm); assert(ret == Z_OK);
+ mem_done(&strm, what);
+}
+
+/* cover all of the lines in inflate.c up to inflate() */
+local void cover_support(void)
+{
+ int ret;
+ z_stream strm;
+
+ mem_setup(&strm);
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit(&strm); assert(ret == Z_OK);
+ mem_used(&strm, "inflate init");
+ ret = inflatePrime(&strm, 5, 31); assert(ret == Z_OK);
+ ret = inflatePrime(&strm, -1, 0); assert(ret == Z_OK);
+ ret = inflateSetDictionary(&strm, Z_NULL, 0);
+ assert(ret == Z_STREAM_ERROR);
+ ret = inflateEnd(&strm); assert(ret == Z_OK);
+ mem_done(&strm, "prime");
+
+ inf("63 0", "force window allocation", 0, -15, 1, Z_OK);
+ inf("63 18 5", "force window replacement", 0, -8, 259, Z_OK);
+ inf("63 18 68 30 d0 0 0", "force split window update", 4, -8, 259, Z_OK);
+ inf("3 0", "use fixed blocks", 0, -15, 1, Z_STREAM_END);
+ inf("", "bad window size", 0, 1, 0, Z_STREAM_ERROR);
+
+ mem_setup(&strm);
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit_(&strm, ZLIB_VERSION - 1, (int)sizeof(z_stream));
+ assert(ret == Z_VERSION_ERROR);
+ mem_done(&strm, "wrong version");
+
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit(&strm); assert(ret == Z_OK);
+ ret = inflateEnd(&strm); assert(ret == Z_OK);
+ fputs("inflate built-in memory routines\n", stderr);
+}
+
+/* cover all inflate() header and trailer cases and code after inflate() */
+local void cover_wrap(void)
+{
+ int ret;
+ z_stream strm, copy;
+ unsigned char dict[257];
+
+ ret = inflate(Z_NULL, 0); assert(ret == Z_STREAM_ERROR);
+ ret = inflateEnd(Z_NULL); assert(ret == Z_STREAM_ERROR);
+ ret = inflateCopy(Z_NULL, Z_NULL); assert(ret == Z_STREAM_ERROR);
+ fputs("inflate bad parameters\n", stderr);
+
+ inf("1f 8b 0 0", "bad gzip method", 0, 31, 0, Z_DATA_ERROR);
+ inf("1f 8b 8 80", "bad gzip flags", 0, 31, 0, Z_DATA_ERROR);
+ inf("77 85", "bad zlib method", 0, 15, 0, Z_DATA_ERROR);
+ inf("8 99", "set window size from header", 0, 0, 0, Z_OK);
+ inf("78 9c", "bad zlib window size", 0, 8, 0, Z_DATA_ERROR);
+ inf("78 9c 63 0 0 0 1 0 1", "check adler32", 0, 15, 1, Z_STREAM_END);
+ inf("1f 8b 8 1e 0 0 0 0 0 0 1 0 0 0 0 0 0", "bad header crc", 0, 47, 1,
+ Z_DATA_ERROR);
+ inf("1f 8b 8 2 0 0 0 0 0 0 1d 26 3 0 0 0 0 0 0 0 0 0", "check gzip length",
+ 0, 47, 0, Z_STREAM_END);
+ inf("78 90", "bad zlib header check", 0, 47, 0, Z_DATA_ERROR);
+ inf("8 b8 0 0 0 1", "need dictionary", 0, 8, 0, Z_NEED_DICT);
+ inf("78 9c 63 0", "compute adler32", 0, 15, 1, Z_OK);
+
+ mem_setup(&strm);
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, -8);
+ strm.avail_in = 2;
+ strm.next_in = (void *)"\x63";
+ strm.avail_out = 1;
+ strm.next_out = (void *)&ret;
+ mem_limit(&strm, 1);
+ ret = inflate(&strm, Z_NO_FLUSH); assert(ret == Z_MEM_ERROR);
+ ret = inflate(&strm, Z_NO_FLUSH); assert(ret == Z_MEM_ERROR);
+ mem_limit(&strm, 0);
+ memset(dict, 0, 257);
+ ret = inflateSetDictionary(&strm, dict, 257);
+ assert(ret == Z_OK);
+ mem_limit(&strm, (sizeof(struct inflate_state) << 1) + 256);
+ ret = inflatePrime(&strm, 16, 0); assert(ret == Z_OK);
+ strm.avail_in = 2;
+ strm.next_in = (void *)"\x80";
+ ret = inflateSync(&strm); assert(ret == Z_DATA_ERROR);
+ ret = inflate(&strm, Z_NO_FLUSH); assert(ret == Z_STREAM_ERROR);
+ strm.avail_in = 4;
+ strm.next_in = (void *)"\0\0\xff\xff";
+ ret = inflateSync(&strm); assert(ret == Z_OK);
+ (void)inflateSyncPoint(&strm);
+ ret = inflateCopy(&copy, &strm); assert(ret == Z_MEM_ERROR);
+ mem_limit(&strm, 0);
+ ret = inflateUndermine(&strm, 1); assert(ret == Z_DATA_ERROR);
+ (void)inflateMark(&strm);
+ ret = inflateEnd(&strm); assert(ret == Z_OK);
+ mem_done(&strm, "miscellaneous, force memory errors");
+}
+
+/* input and output functions for inflateBack() */
+local unsigned pull(void *desc, unsigned char **buf)
+{
+ static unsigned int next = 0;
+ static unsigned char dat[] = {0x63, 0, 2, 0};
+ struct inflate_state *state;
+
+ if (desc == Z_NULL) {
+ next = 0;
+ return 0; /* no input (already provided at next_in) */
+ }
+ state = (void *)((z_stream *)desc)->state;
+ if (state != Z_NULL)
+ state->mode = SYNC; /* force an otherwise impossible situation */
+ return next < sizeof(dat) ? (*buf = dat + next++, 1) : 0;
+}
+
+local int push(void *desc, unsigned char *buf, unsigned len)
+{
+ buf += len;
+ return desc != Z_NULL; /* force error if desc not null */
+}
+
+/* cover inflateBack() up to common deflate data cases and after those */
+local void cover_back(void)
+{
+ int ret;
+ z_stream strm;
+ unsigned char win[32768];
+
+ ret = inflateBackInit_(Z_NULL, 0, win, 0, 0);
+ assert(ret == Z_VERSION_ERROR);
+ ret = inflateBackInit(Z_NULL, 0, win); assert(ret == Z_STREAM_ERROR);
+ ret = inflateBack(Z_NULL, Z_NULL, Z_NULL, Z_NULL, Z_NULL);
+ assert(ret == Z_STREAM_ERROR);
+ ret = inflateBackEnd(Z_NULL); assert(ret == Z_STREAM_ERROR);
+ fputs("inflateBack bad parameters\n", stderr);
+
+ mem_setup(&strm);
+ ret = inflateBackInit(&strm, 15, win); assert(ret == Z_OK);
+ strm.avail_in = 2;
+ strm.next_in = (void *)"\x03";
+ ret = inflateBack(&strm, pull, Z_NULL, push, Z_NULL);
+ assert(ret == Z_STREAM_END);
+ /* force output error */
+ strm.avail_in = 3;
+ strm.next_in = (void *)"\x63\x00";
+ ret = inflateBack(&strm, pull, Z_NULL, push, &strm);
+ assert(ret == Z_BUF_ERROR);
+ /* force mode error by mucking with state */
+ ret = inflateBack(&strm, pull, &strm, push, Z_NULL);
+ assert(ret == Z_STREAM_ERROR);
+ ret = inflateBackEnd(&strm); assert(ret == Z_OK);
+ mem_done(&strm, "inflateBack bad state");
+
+ ret = inflateBackInit(&strm, 15, win); assert(ret == Z_OK);
+ ret = inflateBackEnd(&strm); assert(ret == Z_OK);
+ fputs("inflateBack built-in memory routines\n", stderr);
+}
+
+/* do a raw inflate of data in hexadecimal with both inflate and inflateBack */
+local int try(char *hex, char *id, int err)
+{
+ int ret;
+ unsigned len, size;
+ unsigned char *in, *out, *win;
+ char *prefix;
+ z_stream strm;
+
+ /* convert to hex */
+ in = h2b(hex, &len);
+ assert(in != NULL);
+
+ /* allocate work areas */
+ size = len << 3;
+ out = malloc(size);
+ assert(out != NULL);
+ win = malloc(32768);
+ assert(win != NULL);
+ prefix = malloc(strlen(id) + 6);
+ assert(prefix != NULL);
+
+ /* first with inflate */
+ strcpy(prefix, id);
+ strcat(prefix, "-late");
+ mem_setup(&strm);
+ strm.avail_in = 0;
+ strm.next_in = Z_NULL;
+ ret = inflateInit2(&strm, err < 0 ? 47 : -15);
+ assert(ret == Z_OK);
+ strm.avail_in = len;
+ strm.next_in = in;
+ do {
+ strm.avail_out = size;
+ strm.next_out = out;
+ ret = inflate(&strm, Z_TREES);
+ assert(ret != Z_STREAM_ERROR && ret != Z_MEM_ERROR);
+ if (ret == Z_DATA_ERROR || ret == Z_NEED_DICT)
+ break;
+ } while (strm.avail_in || strm.avail_out == 0);
+ if (err) {
+ assert(ret == Z_DATA_ERROR);
+ assert(strcmp(id, strm.msg) == 0);
+ }
+ inflateEnd(&strm);
+ mem_done(&strm, prefix);
+
+ /* then with inflateBack */
+ if (err >= 0) {
+ strcpy(prefix, id);
+ strcat(prefix, "-back");
+ mem_setup(&strm);
+ ret = inflateBackInit(&strm, 15, win);
+ assert(ret == Z_OK);
+ strm.avail_in = len;
+ strm.next_in = in;
+ ret = inflateBack(&strm, pull, Z_NULL, push, Z_NULL);
+ assert(ret != Z_STREAM_ERROR);
+ if (err) {
+ assert(ret == Z_DATA_ERROR);
+ assert(strcmp(id, strm.msg) == 0);
+ }
+ inflateBackEnd(&strm);
+ mem_done(&strm, prefix);
+ }
+
+ /* clean up */
+ free(prefix);
+ free(win);
+ free(out);
+ free(in);
+ return ret;
+}
+
+/* cover deflate data cases in both inflate() and inflateBack() */
+local void cover_inflate(void)
+{
+ try("0 0 0 0 0", "invalid stored block lengths", 1);
+ try("3 0", "fixed", 0);
+ try("6", "invalid block type", 1);
+ try("1 1 0 fe ff 0", "stored", 0);
+ try("fc 0 0", "too many length or distance symbols", 1);
+ try("4 0 fe ff", "invalid code lengths set", 1);
+ try("4 0 24 49 0", "invalid bit length repeat", 1);
+ try("4 0 24 e9 ff ff", "invalid bit length repeat", 1);
+ try("4 0 24 e9 ff 6d", "invalid code -- missing end-of-block", 1);
+ try("4 80 49 92 24 49 92 24 71 ff ff 93 11 0",
+ "invalid literal/lengths set", 1);
+ try("4 80 49 92 24 49 92 24 f b4 ff ff c3 84", "invalid distances set", 1);
+ try("4 c0 81 8 0 0 0 0 20 7f eb b 0 0", "invalid literal/length code", 1);
+ try("2 7e ff ff", "invalid distance code", 1);
+ try("c c0 81 0 0 0 0 0 90 ff 6b 4 0", "invalid distance too far back", 1);
+
+ /* also trailer mismatch just in inflate() */
+ try("1f 8b 8 0 0 0 0 0 0 0 3 0 0 0 0 1", "incorrect data check", -1);
+ try("1f 8b 8 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1",
+ "incorrect length check", -1);
+ try("5 c0 21 d 0 0 0 80 b0 fe 6d 2f 91 6c", "pull 17", 0);
+ try("5 e0 81 91 24 cb b2 2c 49 e2 f 2e 8b 9a 47 56 9f fb fe ec d2 ff 1f",
+ "long code", 0);
+ try("ed c0 1 1 0 0 0 40 20 ff 57 1b 42 2c 4f", "length extra", 0);
+ try("ed cf c1 b1 2c 47 10 c4 30 fa 6f 35 1d 1 82 59 3d fb be 2e 2a fc f c",
+ "long distance and extra", 0);
+ try("ed c0 81 0 0 0 0 80 a0 fd a9 17 a9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "
+ "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6", "window end", 0);
+ inf("2 8 20 80 0 3 0", "inflate_fast TYPE return", 0, -15, 258,
+ Z_STREAM_END);
+ inf("63 18 5 40 c 0", "window wrap", 3, -8, 300, Z_OK);
+}
+
+/* cover remaining lines in inftrees.c */
+local void cover_trees(void)
+{
+ int ret;
+ unsigned bits;
+ unsigned short lens[16], work[16];
+ code *next, table[ENOUGH_DISTS];
+
+ /* we need to call inflate_table() directly in order to manifest not-
+ enough errors, since zlib insures that enough is always enough */
+ for (bits = 0; bits < 15; bits++)
+ lens[bits] = (unsigned short)(bits + 1);
+ lens[15] = 15;
+ next = table;
+ bits = 15;
+ ret = inflate_table(DISTS, lens, 16, &next, &bits, work);
+ assert(ret == 1);
+ next = table;
+ bits = 1;
+ ret = inflate_table(DISTS, lens, 16, &next, &bits, work);
+ assert(ret == 1);
+ fputs("inflate_table not enough errors\n", stderr);
+}
+
+/* cover remaining inffast.c decoding and window copying */
+local void cover_fast(void)
+{
+ inf("e5 e0 81 ad 6d cb b2 2c c9 01 1e 59 63 ae 7d ee fb 4d fd b5 35 41 68"
+ " ff 7f 0f 0 0 0", "fast length extra bits", 0, -8, 258, Z_DATA_ERROR);
+ inf("25 fd 81 b5 6d 59 b6 6a 49 ea af 35 6 34 eb 8c b9 f6 b9 1e ef 67 49"
+ " 50 fe ff ff 3f 0 0", "fast distance extra bits", 0, -8, 258,
+ Z_DATA_ERROR);
+ inf("3 7e 0 0 0 0 0", "fast invalid distance code", 0, -8, 258,
+ Z_DATA_ERROR);
+ inf("1b 7 0 0 0 0 0", "fast invalid literal/length code", 0, -8, 258,
+ Z_DATA_ERROR);
+ inf("d c7 1 ae eb 38 c 4 41 a0 87 72 de df fb 1f b8 36 b1 38 5d ff ff 0",
+ "fast 2nd level codes and too far back", 0, -8, 258, Z_DATA_ERROR);
+ inf("63 18 5 8c 10 8 0 0 0 0", "very common case", 0, -8, 259, Z_OK);
+ inf("63 60 60 18 c9 0 8 18 18 18 26 c0 28 0 29 0 0 0",
+ "contiguous and wrap around window", 6, -8, 259, Z_OK);
+ inf("63 0 3 0 0 0 0 0", "copy direct from output", 0, -8, 259,
+ Z_STREAM_END);
+}
+
+int main(void)
+{
+ fprintf(stderr, "%s\n", zlibVersion());
+ cover_support();
+ cover_wrap();
+ cover_back();
+ cover_inflate();
+ cover_trees();
+ cover_fast();
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/minigzip.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/minigzip.c
new file mode 100644
index 000000000..e22fb08c0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/test/minigzip.c
@@ -0,0 +1,651 @@
+/* minigzip.c -- simulate gzip using the zlib compression library
+ * Copyright (C) 1995-2006, 2010, 2011, 2016 Jean-loup Gailly
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ * minigzip is a minimal implementation of the gzip utility. This is
+ * only an example of using zlib and isn't meant to replace the
+ * full-featured gzip. No attempt is made to deal with file systems
+ * limiting names to 14 or 8+3 characters, etc... Error checking is
+ * very limited. So use minigzip only for testing; use gzip for the
+ * real thing. On MSDOS, use only on file names without extension
+ * or in pipe mode.
+ */
+
+/* @(#) $Id$ */
+
+#include "zlib.h"
+#include <stdio.h>
+
+#ifdef STDC
+# include <string.h>
+# include <stdlib.h>
+#endif
+
+#ifdef USE_MMAP
+# include <sys/types.h>
+# include <sys/mman.h>
+# include <sys/stat.h>
+#endif
+
+#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
+# include <fcntl.h>
+# include <io.h>
+# ifdef UNDER_CE
+# include <stdlib.h>
+# endif
+# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
+#else
+# define SET_BINARY_MODE(file)
+#endif
+
+#if defined(_MSC_VER) && _MSC_VER < 1900
+# define snprintf _snprintf
+#endif
+
+#ifdef VMS
+# define unlink delete
+# define GZ_SUFFIX "-gz"
+#endif
+#ifdef RISCOS
+# define unlink remove
+# define GZ_SUFFIX "-gz"
+# define fileno(file) file->__file
+#endif
+#if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
+# include <unix.h> /* for fileno */
+#endif
+
+#if !defined(Z_HAVE_UNISTD_H) && !defined(_LARGEFILE64_SOURCE)
+#ifndef WIN32 /* unlink already in stdio.h for WIN32 */
+ extern int unlink OF((const char *));
+#endif
+#endif
+
+#if defined(UNDER_CE)
+# include <windows.h>
+# define perror(s) pwinerror(s)
+
+/* Map the Windows error number in ERROR to a locale-dependent error
+ message string and return a pointer to it. Typically, the values
+ for ERROR come from GetLastError.
+
+ The string pointed to shall not be modified by the application,
+ but may be overwritten by a subsequent call to strwinerror
+
+ The strwinerror function does not change the current setting
+ of GetLastError. */
+
+static char *strwinerror (error)
+ DWORD error;
+{
+ static char buf[1024];
+
+ wchar_t *msgbuf;
+ DWORD lasterr = GetLastError();
+ DWORD chars = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
+ | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+ NULL,
+ error,
+ 0, /* Default language */
+ (LPVOID)&msgbuf,
+ 0,
+ NULL);
+ if (chars != 0) {
+ /* If there is an \r\n appended, zap it. */
+ if (chars >= 2
+ && msgbuf[chars - 2] == '\r' && msgbuf[chars - 1] == '\n') {
+ chars -= 2;
+ msgbuf[chars] = 0;
+ }
+
+ if (chars > sizeof (buf) - 1) {
+ chars = sizeof (buf) - 1;
+ msgbuf[chars] = 0;
+ }
+
+ wcstombs(buf, msgbuf, chars + 1);
+ LocalFree(msgbuf);
+ }
+ else {
+ sprintf(buf, "unknown win32 error (%ld)", error);
+ }
+
+ SetLastError(lasterr);
+ return buf;
+}
+
+static void pwinerror (s)
+ const char *s;
+{
+ if (s && *s)
+ fprintf(stderr, "%s: %s\n", s, strwinerror(GetLastError ()));
+ else
+ fprintf(stderr, "%s\n", strwinerror(GetLastError ()));
+}
+
+#endif /* UNDER_CE */
+
+#ifndef GZ_SUFFIX
+# define GZ_SUFFIX ".gz"
+#endif
+#define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1)
+
+#define BUFLEN 16384
+#define MAX_NAME_LEN 1024
+
+#ifdef MAXSEG_64K
+# define local static
+ /* Needed for systems with limitation on stack size. */
+#else
+# define local
+#endif
+
+#ifdef Z_SOLO
+/* for Z_SOLO, create simplified gz* functions using deflate and inflate */
+
+#if defined(Z_HAVE_UNISTD_H) || defined(Z_LARGE)
+# include <unistd.h> /* for unlink() */
+#endif
+
+void *myalloc OF((void *, unsigned, unsigned));
+void myfree OF((void *, void *));
+
+void *myalloc(q, n, m)
+ void *q;
+ unsigned n, m;
+{
+ (void)q;
+ return calloc(n, m);
+}
+
+void myfree(q, p)
+ void *q, *p;
+{
+ (void)q;
+ free(p);
+}
+
+typedef struct gzFile_s {
+ FILE *file;
+ int write;
+ int err;
+ char *msg;
+ z_stream strm;
+} *gzFile;
+
+gzFile gzopen OF((const char *, const char *));
+gzFile gzdopen OF((int, const char *));
+gzFile gz_open OF((const char *, int, const char *));
+
+gzFile gzopen(path, mode)
+const char *path;
+const char *mode;
+{
+ return gz_open(path, -1, mode);
+}
+
+gzFile gzdopen(fd, mode)
+int fd;
+const char *mode;
+{
+ return gz_open(NULL, fd, mode);
+}
+
+gzFile gz_open(path, fd, mode)
+ const char *path;
+ int fd;
+ const char *mode;
+{
+ gzFile gz;
+ int ret;
+
+ gz = malloc(sizeof(struct gzFile_s));
+ if (gz == NULL)
+ return NULL;
+ gz->write = strchr(mode, 'w') != NULL;
+ gz->strm.zalloc = myalloc;
+ gz->strm.zfree = myfree;
+ gz->strm.opaque = Z_NULL;
+ if (gz->write)
+ ret = deflateInit2(&(gz->strm), -1, 8, 15 + 16, 8, 0);
+ else {
+ gz->strm.next_in = 0;
+ gz->strm.avail_in = Z_NULL;
+ ret = inflateInit2(&(gz->strm), 15 + 16);
+ }
+ if (ret != Z_OK) {
+ free(gz);
+ return NULL;
+ }
+ gz->file = path == NULL ? fdopen(fd, gz->write ? "wb" : "rb") :
+ fopen(path, gz->write ? "wb" : "rb");
+ if (gz->file == NULL) {
+ gz->write ? deflateEnd(&(gz->strm)) : inflateEnd(&(gz->strm));
+ free(gz);
+ return NULL;
+ }
+ gz->err = 0;
+ gz->msg = "";
+ return gz;
+}
+
+int gzwrite OF((gzFile, const void *, unsigned));
+
+int gzwrite(gz, buf, len)
+ gzFile gz;
+ const void *buf;
+ unsigned len;
+{
+ z_stream *strm;
+ unsigned char out[BUFLEN];
+
+ if (gz == NULL || !gz->write)
+ return 0;
+ strm = &(gz->strm);
+ strm->next_in = (void *)buf;
+ strm->avail_in = len;
+ do {
+ strm->next_out = out;
+ strm->avail_out = BUFLEN;
+ (void)deflate(strm, Z_NO_FLUSH);
+ fwrite(out, 1, BUFLEN - strm->avail_out, gz->file);
+ } while (strm->avail_out == 0);
+ return len;
+}
+
+int gzread OF((gzFile, void *, unsigned));
+
+int gzread(gz, buf, len)
+ gzFile gz;
+ void *buf;
+ unsigned len;
+{
+ int ret;
+ unsigned got;
+ unsigned char in[1];
+ z_stream *strm;
+
+ if (gz == NULL || gz->write)
+ return 0;
+ if (gz->err)
+ return 0;
+ strm = &(gz->strm);
+ strm->next_out = (void *)buf;
+ strm->avail_out = len;
+ do {
+ got = fread(in, 1, 1, gz->file);
+ if (got == 0)
+ break;
+ strm->next_in = in;
+ strm->avail_in = 1;
+ ret = inflate(strm, Z_NO_FLUSH);
+ if (ret == Z_DATA_ERROR) {
+ gz->err = Z_DATA_ERROR;
+ gz->msg = strm->msg;
+ return 0;
+ }
+ if (ret == Z_STREAM_END)
+ inflateReset(strm);
+ } while (strm->avail_out);
+ return len - strm->avail_out;
+}
+
+int gzclose OF((gzFile));
+
+int gzclose(gz)
+ gzFile gz;
+{
+ z_stream *strm;
+ unsigned char out[BUFLEN];
+
+ if (gz == NULL)
+ return Z_STREAM_ERROR;
+ strm = &(gz->strm);
+ if (gz->write) {
+ strm->next_in = Z_NULL;
+ strm->avail_in = 0;
+ do {
+ strm->next_out = out;
+ strm->avail_out = BUFLEN;
+ (void)deflate(strm, Z_FINISH);
+ fwrite(out, 1, BUFLEN - strm->avail_out, gz->file);
+ } while (strm->avail_out == 0);
+ deflateEnd(strm);
+ }
+ else
+ inflateEnd(strm);
+ fclose(gz->file);
+ free(gz);
+ return Z_OK;
+}
+
+const char *gzerror OF((gzFile, int *));
+
+const char *gzerror(gz, err)
+ gzFile gz;
+ int *err;
+{
+ *err = gz->err;
+ return gz->msg;
+}
+
+#endif
+
+static char *prog;
+
+void error OF((const char *msg));
+void gz_compress OF((FILE *in, gzFile out));
+#ifdef USE_MMAP
+int gz_compress_mmap OF((FILE *in, gzFile out));
+#endif
+void gz_uncompress OF((gzFile in, FILE *out));
+void file_compress OF((char *file, char *mode));
+void file_uncompress OF((char *file));
+int main OF((int argc, char *argv[]));
+
+/* ===========================================================================
+ * Display error message and exit
+ */
+void error(msg)
+ const char *msg;
+{
+ fprintf(stderr, "%s: %s\n", prog, msg);
+ exit(1);
+}
+
+/* ===========================================================================
+ * Compress input to output then close both files.
+ */
+
+void gz_compress(in, out)
+ FILE *in;
+ gzFile out;
+{
+ local char buf[BUFLEN];
+ int len;
+ int err;
+
+#ifdef USE_MMAP
+ /* Try first compressing with mmap. If mmap fails (minigzip used in a
+ * pipe), use the normal fread loop.
+ */
+ if (gz_compress_mmap(in, out) == Z_OK) return;
+#endif
+ for (;;) {
+ len = (int)fread(buf, 1, sizeof(buf), in);
+ if (ferror(in)) {
+ perror("fread");
+ exit(1);
+ }
+ if (len == 0) break;
+
+ if (gzwrite(out, buf, (unsigned)len) != len) error(gzerror(out, &err));
+ }
+ fclose(in);
+ if (gzclose(out) != Z_OK) error("failed gzclose");
+}
+
+#ifdef USE_MMAP /* MMAP version, Miguel Albrecht <malbrech@eso.org> */
+
+/* Try compressing the input file at once using mmap. Return Z_OK if
+ * if success, Z_ERRNO otherwise.
+ */
+int gz_compress_mmap(in, out)
+ FILE *in;
+ gzFile out;
+{
+ int len;
+ int err;
+ int ifd = fileno(in);
+ caddr_t buf; /* mmap'ed buffer for the entire input file */
+ off_t buf_len; /* length of the input file */
+ struct stat sb;
+
+ /* Determine the size of the file, needed for mmap: */
+ if (fstat(ifd, &sb) < 0) return Z_ERRNO;
+ buf_len = sb.st_size;
+ if (buf_len <= 0) return Z_ERRNO;
+
+ /* Now do the actual mmap: */
+ buf = mmap((caddr_t) 0, buf_len, PROT_READ, MAP_SHARED, ifd, (off_t)0);
+ if (buf == (caddr_t)(-1)) return Z_ERRNO;
+
+ /* Compress the whole file at once: */
+ len = gzwrite(out, (char *)buf, (unsigned)buf_len);
+
+ if (len != (int)buf_len) error(gzerror(out, &err));
+
+ munmap(buf, buf_len);
+ fclose(in);
+ if (gzclose(out) != Z_OK) error("failed gzclose");
+ return Z_OK;
+}
+#endif /* USE_MMAP */
+
+/* ===========================================================================
+ * Uncompress input to output then close both files.
+ */
+void gz_uncompress(in, out)
+ gzFile in;
+ FILE *out;
+{
+ local char buf[BUFLEN];
+ int len;
+ int err;
+
+ for (;;) {
+ len = gzread(in, buf, sizeof(buf));
+ if (len < 0) error (gzerror(in, &err));
+ if (len == 0) break;
+
+ if ((int)fwrite(buf, 1, (unsigned)len, out) != len) {
+ error("failed fwrite");
+ }
+ }
+ if (fclose(out)) error("failed fclose");
+
+ if (gzclose(in) != Z_OK) error("failed gzclose");
+}
+
+
+/* ===========================================================================
+ * Compress the given file: create a corresponding .gz file and remove the
+ * original.
+ */
+void file_compress(file, mode)
+ char *file;
+ char *mode;
+{
+ local char outfile[MAX_NAME_LEN];
+ FILE *in;
+ gzFile out;
+
+ if (strlen(file) + strlen(GZ_SUFFIX) >= sizeof(outfile)) {
+ fprintf(stderr, "%s: filename too long\n", prog);
+ exit(1);
+ }
+
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ snprintf(outfile, sizeof(outfile), "%s%s", file, GZ_SUFFIX);
+#else
+ strcpy(outfile, file);
+ strcat(outfile, GZ_SUFFIX);
+#endif
+
+ in = fopen(file, "rb");
+ if (in == NULL) {
+ perror(file);
+ exit(1);
+ }
+ out = gzopen(outfile, mode);
+ if (out == NULL) {
+ fprintf(stderr, "%s: can't gzopen %s\n", prog, outfile);
+ exit(1);
+ }
+ gz_compress(in, out);
+
+ unlink(file);
+}
+
+
+/* ===========================================================================
+ * Uncompress the given file and remove the original.
+ */
+void file_uncompress(file)
+ char *file;
+{
+ local char buf[MAX_NAME_LEN];
+ char *infile, *outfile;
+ FILE *out;
+ gzFile in;
+ unsigned len = strlen(file);
+
+ if (len + strlen(GZ_SUFFIX) >= sizeof(buf)) {
+ fprintf(stderr, "%s: filename too long\n", prog);
+ exit(1);
+ }
+
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ snprintf(buf, sizeof(buf), "%s", file);
+#else
+ strcpy(buf, file);
+#endif
+
+ if (len > SUFFIX_LEN && strcmp(file+len-SUFFIX_LEN, GZ_SUFFIX) == 0) {
+ infile = file;
+ outfile = buf;
+ outfile[len-3] = '\0';
+ } else {
+ outfile = file;
+ infile = buf;
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ snprintf(buf + len, sizeof(buf) - len, "%s", GZ_SUFFIX);
+#else
+ strcat(infile, GZ_SUFFIX);
+#endif
+ }
+ in = gzopen(infile, "rb");
+ if (in == NULL) {
+ fprintf(stderr, "%s: can't gzopen %s\n", prog, infile);
+ exit(1);
+ }
+ out = fopen(outfile, "wb");
+ if (out == NULL) {
+ perror(file);
+ exit(1);
+ }
+
+ gz_uncompress(in, out);
+
+ unlink(infile);
+}
+
+
+/* ===========================================================================
+ * Usage: minigzip [-c] [-d] [-f] [-h] [-r] [-1 to -9] [files...]
+ * -c : write to standard output
+ * -d : decompress
+ * -f : compress with Z_FILTERED
+ * -h : compress with Z_HUFFMAN_ONLY
+ * -r : compress with Z_RLE
+ * -1 to -9 : compression level
+ */
+
+int main(argc, argv)
+ int argc;
+ char *argv[];
+{
+ int copyout = 0;
+ int uncompr = 0;
+ gzFile file;
+ char *bname, outmode[20];
+
+#if !defined(NO_snprintf) && !defined(NO_vsnprintf)
+ snprintf(outmode, sizeof(outmode), "%s", "wb6 ");
+#else
+ strcpy(outmode, "wb6 ");
+#endif
+
+ prog = argv[0];
+ bname = strrchr(argv[0], '/');
+ if (bname)
+ bname++;
+ else
+ bname = argv[0];
+ argc--, argv++;
+
+ if (!strcmp(bname, "gunzip"))
+ uncompr = 1;
+ else if (!strcmp(bname, "zcat"))
+ copyout = uncompr = 1;
+
+ while (argc > 0) {
+ if (strcmp(*argv, "-c") == 0)
+ copyout = 1;
+ else if (strcmp(*argv, "-d") == 0)
+ uncompr = 1;
+ else if (strcmp(*argv, "-f") == 0)
+ outmode[3] = 'f';
+ else if (strcmp(*argv, "-h") == 0)
+ outmode[3] = 'h';
+ else if (strcmp(*argv, "-r") == 0)
+ outmode[3] = 'R';
+ else if ((*argv)[0] == '-' && (*argv)[1] >= '1' && (*argv)[1] <= '9' &&
+ (*argv)[2] == 0)
+ outmode[2] = (*argv)[1];
+ else
+ break;
+ argc--, argv++;
+ }
+ if (outmode[3] == ' ')
+ outmode[3] = 0;
+ if (argc == 0) {
+ SET_BINARY_MODE(stdin);
+ SET_BINARY_MODE(stdout);
+ if (uncompr) {
+ file = gzdopen(fileno(stdin), "rb");
+ if (file == NULL) error("can't gzdopen stdin");
+ gz_uncompress(file, stdout);
+ } else {
+ file = gzdopen(fileno(stdout), outmode);
+ if (file == NULL) error("can't gzdopen stdout");
+ gz_compress(stdin, file);
+ }
+ } else {
+ if (copyout) {
+ SET_BINARY_MODE(stdout);
+ }
+ do {
+ if (uncompr) {
+ if (copyout) {
+ file = gzopen(*argv, "rb");
+ if (file == NULL)
+ fprintf(stderr, "%s: can't gzopen %s\n", prog, *argv);
+ else
+ gz_uncompress(file, stdout);
+ } else {
+ file_uncompress(*argv);
+ }
+ } else {
+ if (copyout) {
+ FILE * in = fopen(*argv, "rb");
+
+ if (in == NULL) {
+ perror(*argv);
+ } else {
+ file = gzdopen(fileno(stdout), outmode);
+ if (file == NULL) error("can't gzdopen stdout");
+
+ gz_compress(in, file);
+ }
+
+ } else {
+ file_compress(*argv, outmode);
+ }
+ }
+ } while (argv++, --argc);
+ }
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/treebuild.xml b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/treebuild.xml
new file mode 100644
index 000000000..fd75525f9
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/treebuild.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" ?>
+<package name="zlib" version="1.2.11">
+ <library name="zlib" dlversion="1.2.11" dlname="z">
+ <property name="description"> zip compression library </property>
+ <property name="include-target-dir" value="$(@PACKAGE/install-includedir)" />
+
+ <!-- fixme: not implemented yet -->
+ <property name="compiler/c/inline" value="yes" />
+
+ <include-file name="zlib.h" scope="public" mode="644" />
+ <include-file name="zconf.h" scope="public" mode="644" />
+
+ <source name="adler32.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ </source>
+ <source name="compress.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ </source>
+ <source name="crc32.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="crc32.h" />
+ </source>
+ <source name="gzclose.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="gzguts.h" />
+ </source>
+ <source name="gzlib.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="gzguts.h" />
+ </source>
+ <source name="gzread.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="gzguts.h" />
+ </source>
+ <source name="gzwrite.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="gzguts.h" />
+ </source>
+ <source name="uncompr.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ </source>
+ <source name="deflate.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="deflate.h" />
+ </source>
+ <source name="trees.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="deflate.h" />
+ <depend name="trees.h" />
+ </source>
+ <source name="zutil.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ </source>
+ <source name="inflate.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="inftrees.h" />
+ <depend name="inflate.h" />
+ <depend name="inffast.h" />
+ </source>
+ <source name="infback.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="inftrees.h" />
+ <depend name="inflate.h" />
+ <depend name="inffast.h" />
+ </source>
+ <source name="inftrees.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="inftrees.h" />
+ </source>
+ <source name="inffast.c">
+ <depend name="zlib.h" />
+ <depend name="zconf.h" />
+ <depend name="zutil.h" />
+ <depend name="inftrees.h" />
+ <depend name="inflate.h" />
+ <depend name="inffast.h" />
+ </source>
+ </library>
+</package>
+
+<!--
+CFLAGS=-O
+#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
+#CFLAGS=-g -DZLIB_DEBUG
+#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
+# -Wstrict-prototypes -Wmissing-prototypes
+
+# OBJA =
+# to use the asm code: make OBJA=match.o
+#
+match.o: match.S
+ $(CPP) match.S > _match.s
+ $(CC) -c _match.s
+ mv _match.o match.o
+ rm -f _match.s
+-->
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.c
new file mode 100644
index 000000000..50cf4b457
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.c
@@ -0,0 +1,1203 @@
+/* trees.c -- output deflated data using Huffman coding
+ * Copyright (C) 1995-2017 Jean-loup Gailly
+ * detect_data_type() function provided freely by Cosmin Truta, 2006
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/*
+ * ALGORITHM
+ *
+ * The "deflation" process uses several Huffman trees. The more
+ * common source values are represented by shorter bit sequences.
+ *
+ * Each code tree is stored in a compressed form which is itself
+ * a Huffman encoding of the lengths of all the code strings (in
+ * ascending order by source values). The actual code strings are
+ * reconstructed from the lengths in the inflate process, as described
+ * in the deflate specification.
+ *
+ * REFERENCES
+ *
+ * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
+ * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
+ *
+ * Storer, James A.
+ * Data Compression: Methods and Theory, pp. 49-50.
+ * Computer Science Press, 1988. ISBN 0-7167-8156-5.
+ *
+ * Sedgewick, R.
+ * Algorithms, p290.
+ * Addison-Wesley, 1983. ISBN 0-201-06672-6.
+ */
+
+/* @(#) $Id$ */
+
+/* #define GEN_TREES_H */
+
+#include "deflate.h"
+
+#ifdef ZLIB_DEBUG
+# include <ctype.h>
+#endif
+
+/* ===========================================================================
+ * Constants
+ */
+
+#define MAX_BL_BITS 7
+/* Bit length codes must not exceed MAX_BL_BITS bits */
+
+#define END_BLOCK 256
+/* end of block literal code */
+
+#define REP_3_6 16
+/* repeat previous bit length 3-6 times (2 bits of repeat count) */
+
+#define REPZ_3_10 17
+/* repeat a zero length 3-10 times (3 bits of repeat count) */
+
+#define REPZ_11_138 18
+/* repeat a zero length 11-138 times (7 bits of repeat count) */
+
+local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
+ = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
+
+local const int extra_dbits[D_CODES] /* extra bits for each distance code */
+ = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
+
+local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */
+ = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
+
+local const uch bl_order[BL_CODES]
+ = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
+/* The lengths of the bit length codes are sent in order of decreasing
+ * probability, to avoid transmitting the lengths for unused bit length codes.
+ */
+
+/* ===========================================================================
+ * Local data. These are initialized only once.
+ */
+
+#define DIST_CODE_LEN 512 /* see definition of array dist_code below */
+
+#if defined(GEN_TREES_H) || !defined(STDC)
+/* non ANSI compilers may not accept trees.h */
+
+local ct_data static_ltree[L_CODES+2];
+/* The static literal tree. Since the bit lengths are imposed, there is no
+ * need for the L_CODES extra codes used during heap construction. However
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
+ * below).
+ */
+
+local ct_data static_dtree[D_CODES];
+/* The static distance tree. (Actually a trivial tree since all codes use
+ * 5 bits.)
+ */
+
+uch _dist_code[DIST_CODE_LEN];
+/* Distance codes. The first 256 values correspond to the distances
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
+ * the 15 bit distances.
+ */
+
+uch _length_code[MAX_MATCH-MIN_MATCH+1];
+/* length code for each normalized match length (0 == MIN_MATCH) */
+
+local int base_length[LENGTH_CODES];
+/* First normalized length for each code (0 = MIN_MATCH) */
+
+local int base_dist[D_CODES];
+/* First normalized distance for each code (0 = distance of 1) */
+
+#else
+# include "trees.h"
+#endif /* GEN_TREES_H */
+
+struct static_tree_desc_s {
+ const ct_data *static_tree; /* static tree or NULL */
+ const intf *extra_bits; /* extra bits for each code or NULL */
+ int extra_base; /* base index for extra_bits */
+ int elems; /* max number of elements in the tree */
+ int max_length; /* max bit length for the codes */
+};
+
+local const static_tree_desc static_l_desc =
+{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
+
+local const static_tree_desc static_d_desc =
+{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
+
+local const static_tree_desc static_bl_desc =
+{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
+
+/* ===========================================================================
+ * Local (static) routines in this file.
+ */
+
+local void tr_static_init OF((void));
+local void init_block OF((deflate_state *s));
+local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
+local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
+local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
+local void build_tree OF((deflate_state *s, tree_desc *desc));
+local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
+local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
+local int build_bl_tree OF((deflate_state *s));
+local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
+ int blcodes));
+local void compress_block OF((deflate_state *s, const ct_data *ltree,
+ const ct_data *dtree));
+local int detect_data_type OF((deflate_state *s));
+local unsigned bi_reverse OF((unsigned value, int length));
+local void bi_windup OF((deflate_state *s));
+local void bi_flush OF((deflate_state *s));
+
+#ifdef GEN_TREES_H
+local void gen_trees_header OF((void));
+#endif
+
+#ifndef ZLIB_DEBUG
+# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
+ /* Send a code of the given tree. c and tree must not have side effects */
+
+#else /* !ZLIB_DEBUG */
+# define send_code(s, c, tree) \
+ { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
+ send_bits(s, tree[c].Code, tree[c].Len); }
+#endif
+
+/* ===========================================================================
+ * Output a short LSB first on the stream.
+ * IN assertion: there is enough room in pendingBuf.
+ */
+#define put_short(s, w) { \
+ put_byte(s, (uch)((w) & 0xff)); \
+ put_byte(s, (uch)((ush)(w) >> 8)); \
+}
+
+/* ===========================================================================
+ * Send a value on a given number of bits.
+ * IN assertion: length <= 16 and value fits in length bits.
+ */
+#ifdef ZLIB_DEBUG
+local void send_bits OF((deflate_state *s, int value, int length));
+
+local void send_bits(s, value, length)
+ deflate_state *s;
+ int value; /* value to send */
+ int length; /* number of bits */
+{
+ Tracevv((stderr," l %2d v %4x ", length, value));
+ Assert(length > 0 && length <= 15, "invalid length");
+ s->bits_sent += (ulg)length;
+
+ /* If not enough room in bi_buf, use (valid) bits from bi_buf and
+ * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
+ * unused bits in value.
+ */
+ if (s->bi_valid > (int)Buf_size - length) {
+ s->bi_buf |= (ush)value << s->bi_valid;
+ put_short(s, s->bi_buf);
+ s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
+ s->bi_valid += length - Buf_size;
+ } else {
+ s->bi_buf |= (ush)value << s->bi_valid;
+ s->bi_valid += length;
+ }
+}
+#else /* !ZLIB_DEBUG */
+
+#define send_bits(s, value, length) \
+{ int len = length;\
+ if (s->bi_valid > (int)Buf_size - len) {\
+ int val = (int)value;\
+ s->bi_buf |= (ush)val << s->bi_valid;\
+ put_short(s, s->bi_buf);\
+ s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
+ s->bi_valid += len - Buf_size;\
+ } else {\
+ s->bi_buf |= (ush)(value) << s->bi_valid;\
+ s->bi_valid += len;\
+ }\
+}
+#endif /* ZLIB_DEBUG */
+
+
+/* the arguments must not have side effects */
+
+/* ===========================================================================
+ * Initialize the various 'constant' tables.
+ */
+local void tr_static_init()
+{
+#if defined(GEN_TREES_H) || !defined(STDC)
+ static int static_init_done = 0;
+ int n; /* iterates over tree elements */
+ int bits; /* bit counter */
+ int length; /* length value */
+ int code; /* code value */
+ int dist; /* distance index */
+ ush bl_count[MAX_BITS+1];
+ /* number of codes at each bit length for an optimal tree */
+
+ if (static_init_done) return;
+
+ /* For some embedded targets, global variables are not initialized: */
+#ifdef NO_INIT_GLOBAL_POINTERS
+ static_l_desc.static_tree = static_ltree;
+ static_l_desc.extra_bits = extra_lbits;
+ static_d_desc.static_tree = static_dtree;
+ static_d_desc.extra_bits = extra_dbits;
+ static_bl_desc.extra_bits = extra_blbits;
+#endif
+
+ /* Initialize the mapping length (0..255) -> length code (0..28) */
+ length = 0;
+ for (code = 0; code < LENGTH_CODES-1; code++) {
+ base_length[code] = length;
+ for (n = 0; n < (1<<extra_lbits[code]); n++) {
+ _length_code[length++] = (uch)code;
+ }
+ }
+ Assert (length == 256, "tr_static_init: length != 256");
+ /* Note that the length 255 (match length 258) can be represented
+ * in two different ways: code 284 + 5 bits or code 285, so we
+ * overwrite length_code[255] to use the best encoding:
+ */
+ _length_code[length-1] = (uch)code;
+
+ /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
+ dist = 0;
+ for (code = 0 ; code < 16; code++) {
+ base_dist[code] = dist;
+ for (n = 0; n < (1<<extra_dbits[code]); n++) {
+ _dist_code[dist++] = (uch)code;
+ }
+ }
+ Assert (dist == 256, "tr_static_init: dist != 256");
+ dist >>= 7; /* from now on, all distances are divided by 128 */
+ for ( ; code < D_CODES; code++) {
+ base_dist[code] = dist << 7;
+ for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
+ _dist_code[256 + dist++] = (uch)code;
+ }
+ }
+ Assert (dist == 256, "tr_static_init: 256+dist != 512");
+
+ /* Construct the codes of the static literal tree */
+ for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
+ n = 0;
+ while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
+ while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
+ while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
+ while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
+ /* Codes 286 and 287 do not exist, but we must include them in the
+ * tree construction to get a canonical Huffman tree (longest code
+ * all ones)
+ */
+ gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
+
+ /* The static distance tree is trivial: */
+ for (n = 0; n < D_CODES; n++) {
+ static_dtree[n].Len = 5;
+ static_dtree[n].Code = bi_reverse((unsigned)n, 5);
+ }
+ static_init_done = 1;
+
+# ifdef GEN_TREES_H
+ gen_trees_header();
+# endif
+#endif /* defined(GEN_TREES_H) || !defined(STDC) */
+}
+
+/* ===========================================================================
+ * Genererate the file trees.h describing the static trees.
+ */
+#ifdef GEN_TREES_H
+# ifndef ZLIB_DEBUG
+# include <stdio.h>
+# endif
+
+# define SEPARATOR(i, last, width) \
+ ((i) == (last)? "\n};\n\n" : \
+ ((i) % (width) == (width)-1 ? ",\n" : ", "))
+
+void gen_trees_header()
+{
+ FILE *header = fopen("trees.h", "w");
+ int i;
+
+ Assert (header != NULL, "Can't open trees.h");
+ fprintf(header,
+ "/* header created automatically with -DGEN_TREES_H */\n\n");
+
+ fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n");
+ for (i = 0; i < L_CODES+2; i++) {
+ fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code,
+ static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5));
+ }
+
+ fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n");
+ for (i = 0; i < D_CODES; i++) {
+ fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code,
+ static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5));
+ }
+
+ fprintf(header, "const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {\n");
+ for (i = 0; i < DIST_CODE_LEN; i++) {
+ fprintf(header, "%2u%s", _dist_code[i],
+ SEPARATOR(i, DIST_CODE_LEN-1, 20));
+ }
+
+ fprintf(header,
+ "const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {\n");
+ for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) {
+ fprintf(header, "%2u%s", _length_code[i],
+ SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20));
+ }
+
+ fprintf(header, "local const int base_length[LENGTH_CODES] = {\n");
+ for (i = 0; i < LENGTH_CODES; i++) {
+ fprintf(header, "%1u%s", base_length[i],
+ SEPARATOR(i, LENGTH_CODES-1, 20));
+ }
+
+ fprintf(header, "local const int base_dist[D_CODES] = {\n");
+ for (i = 0; i < D_CODES; i++) {
+ fprintf(header, "%5u%s", base_dist[i],
+ SEPARATOR(i, D_CODES-1, 10));
+ }
+
+ fclose(header);
+}
+#endif /* GEN_TREES_H */
+
+/* ===========================================================================
+ * Initialize the tree data structures for a new zlib stream.
+ */
+void ZLIB_INTERNAL _tr_init(s)
+ deflate_state *s;
+{
+ tr_static_init();
+
+ s->l_desc.dyn_tree = s->dyn_ltree;
+ s->l_desc.stat_desc = &static_l_desc;
+
+ s->d_desc.dyn_tree = s->dyn_dtree;
+ s->d_desc.stat_desc = &static_d_desc;
+
+ s->bl_desc.dyn_tree = s->bl_tree;
+ s->bl_desc.stat_desc = &static_bl_desc;
+
+ s->bi_buf = 0;
+ s->bi_valid = 0;
+#ifdef ZLIB_DEBUG
+ s->compressed_len = 0L;
+ s->bits_sent = 0L;
+#endif
+
+ /* Initialize the first block of the first file: */
+ init_block(s);
+}
+
+/* ===========================================================================
+ * Initialize a new block.
+ */
+local void init_block(s)
+ deflate_state *s;
+{
+ int n; /* iterates over tree elements */
+
+ /* Initialize the trees. */
+ for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
+ for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
+ for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
+
+ s->dyn_ltree[END_BLOCK].Freq = 1;
+ s->opt_len = s->static_len = 0L;
+ s->last_lit = s->matches = 0;
+}
+
+#define SMALLEST 1
+/* Index within the heap array of least frequent node in the Huffman tree */
+
+
+/* ===========================================================================
+ * Remove the smallest element from the heap and recreate the heap with
+ * one less element. Updates heap and heap_len.
+ */
+#define pqremove(s, tree, top) \
+{\
+ top = s->heap[SMALLEST]; \
+ s->heap[SMALLEST] = s->heap[s->heap_len--]; \
+ pqdownheap(s, tree, SMALLEST); \
+}
+
+/* ===========================================================================
+ * Compares to subtrees, using the tree depth as tie breaker when
+ * the subtrees have equal frequency. This minimizes the worst case length.
+ */
+#define smaller(tree, n, m, depth) \
+ (tree[n].Freq < tree[m].Freq || \
+ (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
+
+/* ===========================================================================
+ * Restore the heap property by moving down the tree starting at node k,
+ * exchanging a node with the smallest of its two sons if necessary, stopping
+ * when the heap property is re-established (each father smaller than its
+ * two sons).
+ */
+local void pqdownheap(s, tree, k)
+ deflate_state *s;
+ ct_data *tree; /* the tree to restore */
+ int k; /* node to move down */
+{
+ int v = s->heap[k];
+ int j = k << 1; /* left son of k */
+ while (j <= s->heap_len) {
+ /* Set j to the smallest of the two sons: */
+ if (j < s->heap_len &&
+ smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
+ j++;
+ }
+ /* Exit if v is smaller than both sons */
+ if (smaller(tree, v, s->heap[j], s->depth)) break;
+
+ /* Exchange v with the smallest son */
+ s->heap[k] = s->heap[j]; k = j;
+
+ /* And continue down the tree, setting j to the left son of k */
+ j <<= 1;
+ }
+ s->heap[k] = v;
+}
+
+/* ===========================================================================
+ * Compute the optimal bit lengths for a tree and update the total bit length
+ * for the current block.
+ * IN assertion: the fields freq and dad are set, heap[heap_max] and
+ * above are the tree nodes sorted by increasing frequency.
+ * OUT assertions: the field len is set to the optimal bit length, the
+ * array bl_count contains the frequencies for each bit length.
+ * The length opt_len is updated; static_len is also updated if stree is
+ * not null.
+ */
+local void gen_bitlen(s, desc)
+ deflate_state *s;
+ tree_desc *desc; /* the tree descriptor */
+{
+ ct_data *tree = desc->dyn_tree;
+ int max_code = desc->max_code;
+ const ct_data *stree = desc->stat_desc->static_tree;
+ const intf *extra = desc->stat_desc->extra_bits;
+ int base = desc->stat_desc->extra_base;
+ int max_length = desc->stat_desc->max_length;
+ int h; /* heap index */
+ int n, m; /* iterate over the tree elements */
+ int bits; /* bit length */
+ int xbits; /* extra bits */
+ ush f; /* frequency */
+ int overflow = 0; /* number of elements with bit length too large */
+
+ for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
+
+ /* In a first pass, compute the optimal bit lengths (which may
+ * overflow in the case of the bit length tree).
+ */
+ tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
+
+ for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
+ n = s->heap[h];
+ bits = tree[tree[n].Dad].Len + 1;
+ if (bits > max_length) bits = max_length, overflow++;
+ tree[n].Len = (ush)bits;
+ /* We overwrite tree[n].Dad which is no longer needed */
+
+ if (n > max_code) continue; /* not a leaf node */
+
+ s->bl_count[bits]++;
+ xbits = 0;
+ if (n >= base) xbits = extra[n-base];
+ f = tree[n].Freq;
+ s->opt_len += (ulg)f * (unsigned)(bits + xbits);
+ if (stree) s->static_len += (ulg)f * (unsigned)(stree[n].Len + xbits);
+ }
+ if (overflow == 0) return;
+
+ Tracev((stderr,"\nbit length overflow\n"));
+ /* This happens for example on obj2 and pic of the Calgary corpus */
+
+ /* Find the first bit length which could increase: */
+ do {
+ bits = max_length-1;
+ while (s->bl_count[bits] == 0) bits--;
+ s->bl_count[bits]--; /* move one leaf down the tree */
+ s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
+ s->bl_count[max_length]--;
+ /* The brother of the overflow item also moves one step up,
+ * but this does not affect bl_count[max_length]
+ */
+ overflow -= 2;
+ } while (overflow > 0);
+
+ /* Now recompute all bit lengths, scanning in increasing frequency.
+ * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
+ * lengths instead of fixing only the wrong ones. This idea is taken
+ * from 'ar' written by Haruhiko Okumura.)
+ */
+ for (bits = max_length; bits != 0; bits--) {
+ n = s->bl_count[bits];
+ while (n != 0) {
+ m = s->heap[--h];
+ if (m > max_code) continue;
+ if ((unsigned) tree[m].Len != (unsigned) bits) {
+ Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+ s->opt_len += ((ulg)bits - tree[m].Len) * tree[m].Freq;
+ tree[m].Len = (ush)bits;
+ }
+ n--;
+ }
+ }
+}
+
+/* ===========================================================================
+ * Generate the codes for a given tree and bit counts (which need not be
+ * optimal).
+ * IN assertion: the array bl_count contains the bit length statistics for
+ * the given tree and the field len is set for all tree elements.
+ * OUT assertion: the field code is set for all tree elements of non
+ * zero code length.
+ */
+local void gen_codes (tree, max_code, bl_count)
+ ct_data *tree; /* the tree to decorate */
+ int max_code; /* largest code with non zero frequency */
+ ushf *bl_count; /* number of codes at each bit length */
+{
+ ush next_code[MAX_BITS+1]; /* next code value for each bit length */
+ unsigned code = 0; /* running code value */
+ int bits; /* bit index */
+ int n; /* code index */
+
+ /* The distribution counts are first used to generate the code values
+ * without bit reversal.
+ */
+ for (bits = 1; bits <= MAX_BITS; bits++) {
+ code = (code + bl_count[bits-1]) << 1;
+ next_code[bits] = (ush)code;
+ }
+ /* Check that the bit counts in bl_count are consistent. The last code
+ * must be all ones.
+ */
+ Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+ "inconsistent bit counts");
+ Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
+
+ for (n = 0; n <= max_code; n++) {
+ int len = tree[n].Len;
+ if (len == 0) continue;
+ /* Now reverse the bits */
+ tree[n].Code = (ush)bi_reverse(next_code[len]++, len);
+
+ Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
+ n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+ }
+}
+
+/* ===========================================================================
+ * Construct one Huffman tree and assigns the code bit strings and lengths.
+ * Update the total bit length for the current block.
+ * IN assertion: the field freq is set for all tree elements.
+ * OUT assertions: the fields len and code are set to the optimal bit length
+ * and corresponding code. The length opt_len is updated; static_len is
+ * also updated if stree is not null. The field max_code is set.
+ */
+local void build_tree(s, desc)
+ deflate_state *s;
+ tree_desc *desc; /* the tree descriptor */
+{
+ ct_data *tree = desc->dyn_tree;
+ const ct_data *stree = desc->stat_desc->static_tree;
+ int elems = desc->stat_desc->elems;
+ int n, m; /* iterate over heap elements */
+ int max_code = -1; /* largest code with non zero frequency */
+ int node; /* new node being created */
+
+ /* Construct the initial heap, with least frequent element in
+ * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+ * heap[0] is not used.
+ */
+ s->heap_len = 0, s->heap_max = HEAP_SIZE;
+
+ for (n = 0; n < elems; n++) {
+ if (tree[n].Freq != 0) {
+ s->heap[++(s->heap_len)] = max_code = n;
+ s->depth[n] = 0;
+ } else {
+ tree[n].Len = 0;
+ }
+ }
+
+ /* The pkzip format requires that at least one distance code exists,
+ * and that at least one bit should be sent even if there is only one
+ * possible code. So to avoid special checks later on we force at least
+ * two codes of non zero frequency.
+ */
+ while (s->heap_len < 2) {
+ node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
+ tree[node].Freq = 1;
+ s->depth[node] = 0;
+ s->opt_len--; if (stree) s->static_len -= stree[node].Len;
+ /* node is 0 or 1 so it does not have extra bits */
+ }
+ desc->max_code = max_code;
+
+ /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+ * establish sub-heaps of increasing lengths:
+ */
+ for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
+
+ /* Construct the Huffman tree by repeatedly combining the least two
+ * frequent nodes.
+ */
+ node = elems; /* next internal node of the tree */
+ do {
+ pqremove(s, tree, n); /* n = node of least frequency */
+ m = s->heap[SMALLEST]; /* m = node of next least frequency */
+
+ s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
+ s->heap[--(s->heap_max)] = m;
+
+ /* Create a new node father of n and m */
+ tree[node].Freq = tree[n].Freq + tree[m].Freq;
+ s->depth[node] = (uch)((s->depth[n] >= s->depth[m] ?
+ s->depth[n] : s->depth[m]) + 1);
+ tree[n].Dad = tree[m].Dad = (ush)node;
+#ifdef DUMP_BL_TREE
+ if (tree == s->bl_tree) {
+ fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
+ node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
+ }
+#endif
+ /* and insert the new node in the heap */
+ s->heap[SMALLEST] = node++;
+ pqdownheap(s, tree, SMALLEST);
+
+ } while (s->heap_len >= 2);
+
+ s->heap[--(s->heap_max)] = s->heap[SMALLEST];
+
+ /* At this point, the fields freq and dad are set. We can now
+ * generate the bit lengths.
+ */
+ gen_bitlen(s, (tree_desc *)desc);
+
+ /* The field len is now set, we can generate the bit codes */
+ gen_codes ((ct_data *)tree, max_code, s->bl_count);
+}
+
+/* ===========================================================================
+ * Scan a literal or distance tree to determine the frequencies of the codes
+ * in the bit length tree.
+ */
+local void scan_tree (s, tree, max_code)
+ deflate_state *s;
+ ct_data *tree; /* the tree to be scanned */
+ int max_code; /* and its largest code of non zero frequency */
+{
+ int n; /* iterates over all tree elements */
+ int prevlen = -1; /* last emitted length */
+ int curlen; /* length of current code */
+ int nextlen = tree[0].Len; /* length of next code */
+ int count = 0; /* repeat count of the current code */
+ int max_count = 7; /* max repeat count */
+ int min_count = 4; /* min repeat count */
+
+ if (nextlen == 0) max_count = 138, min_count = 3;
+ tree[max_code+1].Len = (ush)0xffff; /* guard */
+
+ for (n = 0; n <= max_code; n++) {
+ curlen = nextlen; nextlen = tree[n+1].Len;
+ if (++count < max_count && curlen == nextlen) {
+ continue;
+ } else if (count < min_count) {
+ s->bl_tree[curlen].Freq += count;
+ } else if (curlen != 0) {
+ if (curlen != prevlen) s->bl_tree[curlen].Freq++;
+ s->bl_tree[REP_3_6].Freq++;
+ } else if (count <= 10) {
+ s->bl_tree[REPZ_3_10].Freq++;
+ } else {
+ s->bl_tree[REPZ_11_138].Freq++;
+ }
+ count = 0; prevlen = curlen;
+ if (nextlen == 0) {
+ max_count = 138, min_count = 3;
+ } else if (curlen == nextlen) {
+ max_count = 6, min_count = 3;
+ } else {
+ max_count = 7, min_count = 4;
+ }
+ }
+}
+
+/* ===========================================================================
+ * Send a literal or distance tree in compressed form, using the codes in
+ * bl_tree.
+ */
+local void send_tree (s, tree, max_code)
+ deflate_state *s;
+ ct_data *tree; /* the tree to be scanned */
+ int max_code; /* and its largest code of non zero frequency */
+{
+ int n; /* iterates over all tree elements */
+ int prevlen = -1; /* last emitted length */
+ int curlen; /* length of current code */
+ int nextlen = tree[0].Len; /* length of next code */
+ int count = 0; /* repeat count of the current code */
+ int max_count = 7; /* max repeat count */
+ int min_count = 4; /* min repeat count */
+
+ /* tree[max_code+1].Len = -1; */ /* guard already set */
+ if (nextlen == 0) max_count = 138, min_count = 3;
+
+ for (n = 0; n <= max_code; n++) {
+ curlen = nextlen; nextlen = tree[n+1].Len;
+ if (++count < max_count && curlen == nextlen) {
+ continue;
+ } else if (count < min_count) {
+ do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
+
+ } else if (curlen != 0) {
+ if (curlen != prevlen) {
+ send_code(s, curlen, s->bl_tree); count--;
+ }
+ Assert(count >= 3 && count <= 6, " 3_6?");
+ send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
+
+ } else if (count <= 10) {
+ send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
+
+ } else {
+ send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
+ }
+ count = 0; prevlen = curlen;
+ if (nextlen == 0) {
+ max_count = 138, min_count = 3;
+ } else if (curlen == nextlen) {
+ max_count = 6, min_count = 3;
+ } else {
+ max_count = 7, min_count = 4;
+ }
+ }
+}
+
+/* ===========================================================================
+ * Construct the Huffman tree for the bit lengths and return the index in
+ * bl_order of the last bit length code to send.
+ */
+local int build_bl_tree(s)
+ deflate_state *s;
+{
+ int max_blindex; /* index of last bit length code of non zero freq */
+
+ /* Determine the bit length frequencies for literal and distance trees */
+ scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
+ scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
+
+ /* Build the bit length tree: */
+ build_tree(s, (tree_desc *)(&(s->bl_desc)));
+ /* opt_len now includes the length of the tree representations, except
+ * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+ */
+
+ /* Determine the number of bit length codes to send. The pkzip format
+ * requires that at least 4 bit length codes be sent. (appnote.txt says
+ * 3 but the actual value used is 4.)
+ */
+ for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
+ if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
+ }
+ /* Update opt_len to include the bit length tree and counts */
+ s->opt_len += 3*((ulg)max_blindex+1) + 5+5+4;
+ Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
+ s->opt_len, s->static_len));
+
+ return max_blindex;
+}
+
+/* ===========================================================================
+ * Send the header for a block using dynamic Huffman trees: the counts, the
+ * lengths of the bit length codes, the literal tree and the distance tree.
+ * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
+ */
+local void send_all_trees(s, lcodes, dcodes, blcodes)
+ deflate_state *s;
+ int lcodes, dcodes, blcodes; /* number of codes for each tree */
+{
+ int rank; /* index in bl_order */
+
+ Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
+ Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
+ "too many codes");
+ Tracev((stderr, "\nbl counts: "));
+ send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
+ send_bits(s, dcodes-1, 5);
+ send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
+ for (rank = 0; rank < blcodes; rank++) {
+ Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
+ send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
+ }
+ Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
+
+ send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
+ Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
+
+ send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
+ Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
+}
+
+/* ===========================================================================
+ * Send a stored block
+ */
+void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last)
+ deflate_state *s;
+ charf *buf; /* input block */
+ ulg stored_len; /* length of input block */
+ int last; /* one if this is the last block for a file */
+{
+ send_bits(s, (STORED_BLOCK<<1)+last, 3); /* send block type */
+ bi_windup(s); /* align on byte boundary */
+ put_short(s, (ush)stored_len);
+ put_short(s, (ush)~stored_len);
+ zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len);
+ s->pending += stored_len;
+#ifdef ZLIB_DEBUG
+ s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
+ s->compressed_len += (stored_len + 4) << 3;
+ s->bits_sent += 2*16;
+ s->bits_sent += stored_len<<3;
+#endif
+}
+
+/* ===========================================================================
+ * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
+ */
+void ZLIB_INTERNAL _tr_flush_bits(s)
+ deflate_state *s;
+{
+ bi_flush(s);
+}
+
+/* ===========================================================================
+ * Send one empty static block to give enough lookahead for inflate.
+ * This takes 10 bits, of which 7 may remain in the bit buffer.
+ */
+void ZLIB_INTERNAL _tr_align(s)
+ deflate_state *s;
+{
+ send_bits(s, STATIC_TREES<<1, 3);
+ send_code(s, END_BLOCK, static_ltree);
+#ifdef ZLIB_DEBUG
+ s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
+#endif
+ bi_flush(s);
+}
+
+/* ===========================================================================
+ * Determine the best encoding for the current block: dynamic trees, static
+ * trees or store, and write out the encoded block.
+ */
+void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
+ deflate_state *s;
+ charf *buf; /* input block, or NULL if too old */
+ ulg stored_len; /* length of input block */
+ int last; /* one if this is the last block for a file */
+{
+ ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
+ int max_blindex = 0; /* index of last bit length code of non zero freq */
+
+ /* Build the Huffman trees unless a stored block is forced */
+ if (s->level > 0) {
+
+ /* Check if the file is binary or text */
+ if (s->strm->data_type == Z_UNKNOWN)
+ s->strm->data_type = detect_data_type(s);
+
+ /* Construct the literal and distance trees */
+ build_tree(s, (tree_desc *)(&(s->l_desc)));
+ Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
+ s->static_len));
+
+ build_tree(s, (tree_desc *)(&(s->d_desc)));
+ Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
+ s->static_len));
+ /* At this point, opt_len and static_len are the total bit lengths of
+ * the compressed block data, excluding the tree representations.
+ */
+
+ /* Build the bit length tree for the above two trees, and get the index
+ * in bl_order of the last bit length code to send.
+ */
+ max_blindex = build_bl_tree(s);
+
+ /* Determine the best encoding. Compute the block lengths in bytes. */
+ opt_lenb = (s->opt_len+3+7)>>3;
+ static_lenb = (s->static_len+3+7)>>3;
+
+ Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+ opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+ s->last_lit));
+
+ if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
+
+ } else {
+ Assert(buf != (char*)0, "lost buf");
+ opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
+ }
+
+#ifdef FORCE_STORED
+ if (buf != (char*)0) { /* force stored block */
+#else
+ if (stored_len+4 <= opt_lenb && buf != (char*)0) {
+ /* 4: two words for the lengths */
+#endif
+ /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
+ * Otherwise we can't have processed more than WSIZE input bytes since
+ * the last block flush, because compression would have been
+ * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
+ * transform a block into a stored block.
+ */
+ _tr_stored_block(s, buf, stored_len, last);
+
+#ifdef FORCE_STATIC
+ } else if (static_lenb >= 0) { /* force static trees */
+#else
+ } else if (s->strategy == Z_FIXED || static_lenb == opt_lenb) {
+#endif
+ send_bits(s, (STATIC_TREES<<1)+last, 3);
+ compress_block(s, (const ct_data *)static_ltree,
+ (const ct_data *)static_dtree);
+#ifdef ZLIB_DEBUG
+ s->compressed_len += 3 + s->static_len;
+#endif
+ } else {
+ send_bits(s, (DYN_TREES<<1)+last, 3);
+ send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
+ max_blindex+1);
+ compress_block(s, (const ct_data *)s->dyn_ltree,
+ (const ct_data *)s->dyn_dtree);
+#ifdef ZLIB_DEBUG
+ s->compressed_len += 3 + s->opt_len;
+#endif
+ }
+ Assert (s->compressed_len == s->bits_sent, "bad compressed size");
+ /* The above check is made mod 2^32, for files larger than 512 MB
+ * and uLong implemented on 32 bits.
+ */
+ init_block(s);
+
+ if (last) {
+ bi_windup(s);
+#ifdef ZLIB_DEBUG
+ s->compressed_len += 7; /* align on byte boundary */
+#endif
+ }
+ Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
+ s->compressed_len-7*last));
+}
+
+/* ===========================================================================
+ * Save the match info and tally the frequency counts. Return true if
+ * the current block must be flushed.
+ */
+int ZLIB_INTERNAL _tr_tally (s, dist, lc)
+ deflate_state *s;
+ unsigned dist; /* distance of matched string */
+ unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
+{
+ s->d_buf[s->last_lit] = (ush)dist;
+ s->l_buf[s->last_lit++] = (uch)lc;
+ if (dist == 0) {
+ /* lc is the unmatched char */
+ s->dyn_ltree[lc].Freq++;
+ } else {
+ s->matches++;
+ /* Here, lc is the match length - MIN_MATCH */
+ dist--; /* dist = match distance - 1 */
+ Assert((ush)dist < (ush)MAX_DIST(s) &&
+ (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
+ (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
+
+ s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
+ s->dyn_dtree[d_code(dist)].Freq++;
+ }
+
+#ifdef TRUNCATE_BLOCK
+ /* Try to guess if it is profitable to stop the current block here */
+ if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
+ /* Compute an upper bound for the compressed length */
+ ulg out_length = (ulg)s->last_lit*8L;
+ ulg in_length = (ulg)((long)s->strstart - s->block_start);
+ int dcode;
+ for (dcode = 0; dcode < D_CODES; dcode++) {
+ out_length += (ulg)s->dyn_dtree[dcode].Freq *
+ (5L+extra_dbits[dcode]);
+ }
+ out_length >>= 3;
+ Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+ s->last_lit, in_length, out_length,
+ 100L - out_length*100L/in_length));
+ if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
+ }
+#endif
+ return (s->last_lit == s->lit_bufsize-1);
+ /* We avoid equality with lit_bufsize because of wraparound at 64K
+ * on 16 bit machines and because stored blocks are restricted to
+ * 64K-1 bytes.
+ */
+}
+
+/* ===========================================================================
+ * Send the block data compressed using the given Huffman trees
+ */
+local void compress_block(s, ltree, dtree)
+ deflate_state *s;
+ const ct_data *ltree; /* literal tree */
+ const ct_data *dtree; /* distance tree */
+{
+ unsigned dist; /* distance of matched string */
+ int lc; /* match length or unmatched char (if dist == 0) */
+ unsigned lx = 0; /* running index in l_buf */
+ unsigned code; /* the code to send */
+ int extra; /* number of extra bits to send */
+
+ if (s->last_lit != 0) do {
+ dist = s->d_buf[lx];
+ lc = s->l_buf[lx++];
+ if (dist == 0) {
+ send_code(s, lc, ltree); /* send a literal byte */
+ Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+ } else {
+ /* Here, lc is the match length - MIN_MATCH */
+ code = _length_code[lc];
+ send_code(s, code+LITERALS+1, ltree); /* send the length code */
+ extra = extra_lbits[code];
+ if (extra != 0) {
+ lc -= base_length[code];
+ send_bits(s, lc, extra); /* send the extra length bits */
+ }
+ dist--; /* dist is now the match distance - 1 */
+ code = d_code(dist);
+ Assert (code < D_CODES, "bad d_code");
+
+ send_code(s, code, dtree); /* send the distance code */
+ extra = extra_dbits[code];
+ if (extra != 0) {
+ dist -= (unsigned)base_dist[code];
+ send_bits(s, dist, extra); /* send the extra distance bits */
+ }
+ } /* literal or match pair ? */
+
+ /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+ Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+ "pendingBuf overflow");
+
+ } while (lx < s->last_lit);
+
+ send_code(s, END_BLOCK, ltree);
+}
+
+/* ===========================================================================
+ * Check if the data type is TEXT or BINARY, using the following algorithm:
+ * - TEXT if the two conditions below are satisfied:
+ * a) There are no non-portable control characters belonging to the
+ * "black list" (0..6, 14..25, 28..31).
+ * b) There is at least one printable character belonging to the
+ * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
+ * - BINARY otherwise.
+ * - The following partially-portable control characters form a
+ * "gray list" that is ignored in this detection algorithm:
+ * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
+ * IN assertion: the fields Freq of dyn_ltree are set.
+ */
+local int detect_data_type(s)
+ deflate_state *s;
+{
+ /* black_mask is the bit mask of black-listed bytes
+ * set bits 0..6, 14..25, and 28..31
+ * 0xf3ffc07f = binary 11110011111111111100000001111111
+ */
+ unsigned long black_mask = 0xf3ffc07fUL;
+ int n;
+
+ /* Check for non-textual ("black-listed") bytes. */
+ for (n = 0; n <= 31; n++, black_mask >>= 1)
+ if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0))
+ return Z_BINARY;
+
+ /* Check for textual ("white-listed") bytes. */
+ if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0
+ || s->dyn_ltree[13].Freq != 0)
+ return Z_TEXT;
+ for (n = 32; n < LITERALS; n++)
+ if (s->dyn_ltree[n].Freq != 0)
+ return Z_TEXT;
+
+ /* There are no "black-listed" or "white-listed" bytes:
+ * this stream either is empty or has tolerated ("gray-listed") bytes only.
+ */
+ return Z_BINARY;
+}
+
+/* ===========================================================================
+ * Reverse the first len bits of a code, using straightforward code (a faster
+ * method would use a table)
+ * IN assertion: 1 <= len <= 15
+ */
+local unsigned bi_reverse(code, len)
+ unsigned code; /* the value to invert */
+ int len; /* its bit length */
+{
+ register unsigned res = 0;
+ do {
+ res |= code & 1;
+ code >>= 1, res <<= 1;
+ } while (--len > 0);
+ return res >> 1;
+}
+
+/* ===========================================================================
+ * Flush the bit buffer, keeping at most 7 bits in it.
+ */
+local void bi_flush(s)
+ deflate_state *s;
+{
+ if (s->bi_valid == 16) {
+ put_short(s, s->bi_buf);
+ s->bi_buf = 0;
+ s->bi_valid = 0;
+ } else if (s->bi_valid >= 8) {
+ put_byte(s, (Byte)s->bi_buf);
+ s->bi_buf >>= 8;
+ s->bi_valid -= 8;
+ }
+}
+
+/* ===========================================================================
+ * Flush the bit buffer and align the output on a byte boundary
+ */
+local void bi_windup(s)
+ deflate_state *s;
+{
+ if (s->bi_valid > 8) {
+ put_short(s, s->bi_buf);
+ } else if (s->bi_valid > 0) {
+ put_byte(s, (Byte)s->bi_buf);
+ }
+ s->bi_buf = 0;
+ s->bi_valid = 0;
+#ifdef ZLIB_DEBUG
+ s->bits_sent = (s->bits_sent+7) & ~7;
+#endif
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.h
new file mode 100644
index 000000000..d35639d82
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/trees.h
@@ -0,0 +1,128 @@
+/* header created automatically with -DGEN_TREES_H */
+
+local const ct_data static_ltree[L_CODES+2] = {
+{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}},
+{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}},
+{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}},
+{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}},
+{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}},
+{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}},
+{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}},
+{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}},
+{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}},
+{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}},
+{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}},
+{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}},
+{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}},
+{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}},
+{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}},
+{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}},
+{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}},
+{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}},
+{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}},
+{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}},
+{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}},
+{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}},
+{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}},
+{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}},
+{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}},
+{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}},
+{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}},
+{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}},
+{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}},
+{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}},
+{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}},
+{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}},
+{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}},
+{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}},
+{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}},
+{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}},
+{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}},
+{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}},
+{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}},
+{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}},
+{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}},
+{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}},
+{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}},
+{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}},
+{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}},
+{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}},
+{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}},
+{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}},
+{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}},
+{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}},
+{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}},
+{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}},
+{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}},
+{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}},
+{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}},
+{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}},
+{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}},
+{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}}
+};
+
+local const ct_data static_dtree[D_CODES] = {
+{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
+{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
+{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
+{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
+{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
+{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
+};
+
+const uch ZLIB_INTERNAL _dist_code[DIST_CODE_LEN] = {
+ 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
+ 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
+10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
+13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
+15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17,
+18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
+23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
+27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
+};
+
+const uch ZLIB_INTERNAL _length_code[MAX_MATCH-MIN_MATCH+1]= {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12,
+13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
+17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
+19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
+22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
+23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
+26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
+};
+
+local const int base_length[LENGTH_CODES] = {
+0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
+64, 80, 96, 112, 128, 160, 192, 224, 0
+};
+
+local const int base_dist[D_CODES] = {
+ 0, 1, 2, 3, 4, 6, 8, 12, 16, 24,
+ 32, 48, 64, 96, 128, 192, 256, 384, 512, 768,
+ 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576
+};
+
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/uncompr.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/uncompr.c
new file mode 100644
index 000000000..f03a1a865
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/uncompr.c
@@ -0,0 +1,93 @@
+/* uncompr.c -- decompress a memory buffer
+ * Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#define ZLIB_INTERNAL
+#include "zlib.h"
+
+/* ===========================================================================
+ Decompresses the source buffer into the destination buffer. *sourceLen is
+ the byte length of the source buffer. Upon entry, *destLen is the total size
+ of the destination buffer, which must be large enough to hold the entire
+ uncompressed data. (The size of the uncompressed data must have been saved
+ previously by the compressor and transmitted to the decompressor by some
+ mechanism outside the scope of this compression library.) Upon exit,
+ *destLen is the size of the decompressed data and *sourceLen is the number
+ of source bytes consumed. Upon return, source + *sourceLen points to the
+ first unused input byte.
+
+ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
+ Z_DATA_ERROR if the input data was corrupted, including if the input data is
+ an incomplete zlib stream.
+*/
+int ZEXPORT uncompress2 (dest, destLen, source, sourceLen)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong *sourceLen;
+{
+ z_stream stream;
+ int err;
+ const uInt max = (uInt)-1;
+ uLong len, left;
+ Byte buf[1]; /* for detection of incomplete stream when *destLen == 0 */
+
+ len = *sourceLen;
+ if (*destLen) {
+ left = *destLen;
+ *destLen = 0;
+ }
+ else {
+ left = 1;
+ dest = buf;
+ }
+
+ stream.next_in = (z_const Bytef *)source;
+ stream.avail_in = 0;
+ stream.zalloc = (alloc_func)0;
+ stream.zfree = (free_func)0;
+ stream.opaque = (voidpf)0;
+
+ err = inflateInit(&stream);
+ if (err != Z_OK) return err;
+
+ stream.next_out = dest;
+ stream.avail_out = 0;
+
+ do {
+ if (stream.avail_out == 0) {
+ stream.avail_out = left > (uLong)max ? max : (uInt)left;
+ left -= stream.avail_out;
+ }
+ if (stream.avail_in == 0) {
+ stream.avail_in = len > (uLong)max ? max : (uInt)len;
+ len -= stream.avail_in;
+ }
+ err = inflate(&stream, Z_NO_FLUSH);
+ } while (err == Z_OK);
+
+ *sourceLen -= len + stream.avail_in;
+ if (dest != buf)
+ *destLen = stream.total_out;
+ else if (stream.total_out && err == Z_BUF_ERROR)
+ left = 1;
+
+ inflateEnd(&stream);
+ return err == Z_STREAM_END ? Z_OK :
+ err == Z_NEED_DICT ? Z_DATA_ERROR :
+ err == Z_BUF_ERROR && left + stream.avail_out ? Z_DATA_ERROR :
+ err;
+}
+
+int ZEXPORT uncompress (dest, destLen, source, sourceLen)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong sourceLen;
+{
+ return uncompress2(dest, destLen, source, &sourceLen);
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_f.mak b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_f.mak
new file mode 100644
index 000000000..37f4d74c1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_f.mak
@@ -0,0 +1,43 @@
+# Makefile for zlib
+# OpenWatcom flat model
+# Last updated: 28-Dec-2005
+
+# To use, do "wmake -f watcom_f.mak"
+
+C_SOURCE = adler32.c compress.c crc32.c deflate.c &
+ gzclose.c gzlib.c gzread.c gzwrite.c &
+ infback.c inffast.c inflate.c inftrees.c &
+ trees.c uncompr.c zutil.c
+
+OBJS = adler32.obj compress.obj crc32.obj deflate.obj &
+ gzclose.obj gzlib.obj gzread.obj gzwrite.obj &
+ infback.obj inffast.obj inflate.obj inftrees.obj &
+ trees.obj uncompr.obj zutil.obj
+
+CC = wcc386
+LINKER = wcl386
+CFLAGS = -zq -mf -3r -fp3 -s -bt=dos -oilrtfm -fr=nul -wx
+ZLIB_LIB = zlib_f.lib
+
+.C.OBJ:
+ $(CC) $(CFLAGS) $[@
+
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+$(ZLIB_LIB): $(OBJS)
+ wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj
+ wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj
+ wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj
+ wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj
+ wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj
+
+example.exe: $(ZLIB_LIB) example.obj
+ $(LINKER) -ldos32a -fe=example.exe example.obj $(ZLIB_LIB)
+
+minigzip.exe: $(ZLIB_LIB) minigzip.obj
+ $(LINKER) -ldos32a -fe=minigzip.exe minigzip.obj $(ZLIB_LIB)
+
+clean: .SYMBOLIC
+ del *.obj
+ del $(ZLIB_LIB)
+ @echo Cleaning done
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_l.mak b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_l.mak
new file mode 100644
index 000000000..193eed7b3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/watcom/watcom_l.mak
@@ -0,0 +1,43 @@
+# Makefile for zlib
+# OpenWatcom large model
+# Last updated: 28-Dec-2005
+
+# To use, do "wmake -f watcom_l.mak"
+
+C_SOURCE = adler32.c compress.c crc32.c deflate.c &
+ gzclose.c gzlib.c gzread.c gzwrite.c &
+ infback.c inffast.c inflate.c inftrees.c &
+ trees.c uncompr.c zutil.c
+
+OBJS = adler32.obj compress.obj crc32.obj deflate.obj &
+ gzclose.obj gzlib.obj gzread.obj gzwrite.obj &
+ infback.obj inffast.obj inflate.obj inftrees.obj &
+ trees.obj uncompr.obj zutil.obj
+
+CC = wcc
+LINKER = wcl
+CFLAGS = -zq -ml -s -bt=dos -oilrtfm -fr=nul -wx
+ZLIB_LIB = zlib_l.lib
+
+.C.OBJ:
+ $(CC) $(CFLAGS) $[@
+
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+$(ZLIB_LIB): $(OBJS)
+ wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj
+ wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj
+ wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj
+ wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj
+ wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj
+
+example.exe: $(ZLIB_LIB) example.obj
+ $(LINKER) -fe=example.exe example.obj $(ZLIB_LIB)
+
+minigzip.exe: $(ZLIB_LIB) minigzip.obj
+ $(LINKER) -fe=minigzip.exe minigzip.obj $(ZLIB_LIB)
+
+clean: .SYMBOLIC
+ del *.obj
+ del $(ZLIB_LIB)
+ @echo Cleaning done
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/DLL_FAQ.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/DLL_FAQ.txt
new file mode 100644
index 000000000..12c009018
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/DLL_FAQ.txt
@@ -0,0 +1,397 @@
+
+ Frequently Asked Questions about ZLIB1.DLL
+
+
+This document describes the design, the rationale, and the usage
+of the official DLL build of zlib, named ZLIB1.DLL. If you have
+general questions about zlib, you should see the file "FAQ" found
+in the zlib distribution, or at the following location:
+ http://www.gzip.org/zlib/zlib_faq.html
+
+
+ 1. What is ZLIB1.DLL, and how can I get it?
+
+ - ZLIB1.DLL is the official build of zlib as a DLL.
+ (Please remark the character '1' in the name.)
+
+ Pointers to a precompiled ZLIB1.DLL can be found in the zlib
+ web site at:
+ http://www.zlib.net/
+
+ Applications that link to ZLIB1.DLL can rely on the following
+ specification:
+
+ * The exported symbols are exclusively defined in the source
+ files "zlib.h" and "zlib.def", found in an official zlib
+ source distribution.
+ * The symbols are exported by name, not by ordinal.
+ * The exported names are undecorated.
+ * The calling convention of functions is "C" (CDECL).
+ * The ZLIB1.DLL binary is linked to MSVCRT.DLL.
+
+ The archive in which ZLIB1.DLL is bundled contains compiled
+ test programs that must run with a valid build of ZLIB1.DLL.
+ It is recommended to download the prebuilt DLL from the zlib
+ web site, instead of building it yourself, to avoid potential
+ incompatibilities that could be introduced by your compiler
+ and build settings. If you do build the DLL yourself, please
+ make sure that it complies with all the above requirements,
+ and it runs with the precompiled test programs, bundled with
+ the original ZLIB1.DLL distribution.
+
+ If, for any reason, you need to build an incompatible DLL,
+ please use a different file name.
+
+
+ 2. Why did you change the name of the DLL to ZLIB1.DLL?
+ What happened to the old ZLIB.DLL?
+
+ - The old ZLIB.DLL, built from zlib-1.1.4 or earlier, required
+ compilation settings that were incompatible to those used by
+ a static build. The DLL settings were supposed to be enabled
+ by defining the macro ZLIB_DLL, before including "zlib.h".
+ Incorrect handling of this macro was silently accepted at
+ build time, resulting in two major problems:
+
+ * ZLIB_DLL was missing from the old makefile. When building
+ the DLL, not all people added it to the build options. In
+ consequence, incompatible incarnations of ZLIB.DLL started
+ to circulate around the net.
+
+ * When switching from using the static library to using the
+ DLL, applications had to define the ZLIB_DLL macro and
+ to recompile all the sources that contained calls to zlib
+ functions. Failure to do so resulted in creating binaries
+ that were unable to run with the official ZLIB.DLL build.
+
+ The only possible solution that we could foresee was to make
+ a binary-incompatible change in the DLL interface, in order to
+ remove the dependency on the ZLIB_DLL macro, and to release
+ the new DLL under a different name.
+
+ We chose the name ZLIB1.DLL, where '1' indicates the major
+ zlib version number. We hope that we will not have to break
+ the binary compatibility again, at least not as long as the
+ zlib-1.x series will last.
+
+ There is still a ZLIB_DLL macro, that can trigger a more
+ efficient build and use of the DLL, but compatibility no
+ longer dependents on it.
+
+
+ 3. Can I build ZLIB.DLL from the new zlib sources, and replace
+ an old ZLIB.DLL, that was built from zlib-1.1.4 or earlier?
+
+ - In principle, you can do it by assigning calling convention
+ keywords to the macros ZEXPORT and ZEXPORTVA. In practice,
+ it depends on what you mean by "an old ZLIB.DLL", because the
+ old DLL exists in several mutually-incompatible versions.
+ You have to find out first what kind of calling convention is
+ being used in your particular ZLIB.DLL build, and to use the
+ same one in the new build. If you don't know what this is all
+ about, you might be better off if you would just leave the old
+ DLL intact.
+
+
+ 4. Can I compile my application using the new zlib interface, and
+ link it to an old ZLIB.DLL, that was built from zlib-1.1.4 or
+ earlier?
+
+ - The official answer is "no"; the real answer depends again on
+ what kind of ZLIB.DLL you have. Even if you are lucky, this
+ course of action is unreliable.
+
+ If you rebuild your application and you intend to use a newer
+ version of zlib (post- 1.1.4), it is strongly recommended to
+ link it to the new ZLIB1.DLL.
+
+
+ 5. Why are the zlib symbols exported by name, and not by ordinal?
+
+ - Although exporting symbols by ordinal is a little faster, it
+ is risky. Any single glitch in the maintenance or use of the
+ DEF file that contains the ordinals can result in incompatible
+ builds and frustrating crashes. Simply put, the benefits of
+ exporting symbols by ordinal do not justify the risks.
+
+ Technically, it should be possible to maintain ordinals in
+ the DEF file, and still export the symbols by name. Ordinals
+ exist in every DLL, and even if the dynamic linking performed
+ at the DLL startup is searching for names, ordinals serve as
+ hints, for a faster name lookup. However, if the DEF file
+ contains ordinals, the Microsoft linker automatically builds
+ an implib that will cause the executables linked to it to use
+ those ordinals, and not the names. It is interesting to
+ notice that the GNU linker for Win32 does not suffer from this
+ problem.
+
+ It is possible to avoid the DEF file if the exported symbols
+ are accompanied by a "__declspec(dllexport)" attribute in the
+ source files. You can do this in zlib by predefining the
+ ZLIB_DLL macro.
+
+
+ 6. I see that the ZLIB1.DLL functions use the "C" (CDECL) calling
+ convention. Why not use the STDCALL convention?
+ STDCALL is the standard convention in Win32, and I need it in
+ my Visual Basic project!
+
+ (For readability, we use CDECL to refer to the convention
+ triggered by the "__cdecl" keyword, STDCALL to refer to
+ the convention triggered by "__stdcall", and FASTCALL to
+ refer to the convention triggered by "__fastcall".)
+
+ - Most of the native Windows API functions (without varargs) use
+ indeed the WINAPI convention (which translates to STDCALL in
+ Win32), but the standard C functions use CDECL. If a user
+ application is intrinsically tied to the Windows API (e.g.
+ it calls native Windows API functions such as CreateFile()),
+ sometimes it makes sense to decorate its own functions with
+ WINAPI. But if ANSI C or POSIX portability is a goal (e.g.
+ it calls standard C functions such as fopen()), it is not a
+ sound decision to request the inclusion of <windows.h>, or to
+ use non-ANSI constructs, for the sole purpose to make the user
+ functions STDCALL-able.
+
+ The functionality offered by zlib is not in the category of
+ "Windows functionality", but is more like "C functionality".
+
+ Technically, STDCALL is not bad; in fact, it is slightly
+ faster than CDECL, and it works with variable-argument
+ functions, just like CDECL. It is unfortunate that, in spite
+ of using STDCALL in the Windows API, it is not the default
+ convention used by the C compilers that run under Windows.
+ The roots of the problem reside deep inside the unsafety of
+ the K&R-style function prototypes, where the argument types
+ are not specified; but that is another story for another day.
+
+ The remaining fact is that CDECL is the default convention.
+ Even if an explicit convention is hard-coded into the function
+ prototypes inside C headers, problems may appear. The
+ necessity to expose the convention in users' callbacks is one
+ of these problems.
+
+ The calling convention issues are also important when using
+ zlib in other programming languages. Some of them, like Ada
+ (GNAT) and Fortran (GNU G77), have C bindings implemented
+ initially on Unix, and relying on the C calling convention.
+ On the other hand, the pre- .NET versions of Microsoft Visual
+ Basic require STDCALL, while Borland Delphi prefers, although
+ it does not require, FASTCALL.
+
+ In fairness to all possible uses of zlib outside the C
+ programming language, we choose the default "C" convention.
+ Anyone interested in different bindings or conventions is
+ encouraged to maintain specialized projects. The "contrib/"
+ directory from the zlib distribution already holds a couple
+ of foreign bindings, such as Ada, C++, and Delphi.
+
+
+ 7. I need a DLL for my Visual Basic project. What can I do?
+
+ - Define the ZLIB_WINAPI macro before including "zlib.h", when
+ building both the DLL and the user application (except that
+ you don't need to define anything when using the DLL in Visual
+ Basic). The ZLIB_WINAPI macro will switch on the WINAPI
+ (STDCALL) convention. The name of this DLL must be different
+ than the official ZLIB1.DLL.
+
+ Gilles Vollant has contributed a build named ZLIBWAPI.DLL,
+ with the ZLIB_WINAPI macro turned on, and with the minizip
+ functionality built in. For more information, please read
+ the notes inside "contrib/vstudio/readme.txt", found in the
+ zlib distribution.
+
+
+ 8. I need to use zlib in my Microsoft .NET project. What can I
+ do?
+
+ - Henrik Ravn has contributed a .NET wrapper around zlib. Look
+ into contrib/dotzlib/, inside the zlib distribution.
+
+
+ 9. If my application uses ZLIB1.DLL, should I link it to
+ MSVCRT.DLL? Why?
+
+ - It is not required, but it is recommended to link your
+ application to MSVCRT.DLL, if it uses ZLIB1.DLL.
+
+ The executables (.EXE, .DLL, etc.) that are involved in the
+ same process and are using the C run-time library (i.e. they
+ are calling standard C functions), must link to the same
+ library. There are several libraries in the Win32 system:
+ CRTDLL.DLL, MSVCRT.DLL, the static C libraries, etc.
+ Since ZLIB1.DLL is linked to MSVCRT.DLL, the executables that
+ depend on it should also be linked to MSVCRT.DLL.
+
+
+10. Why are you saying that ZLIB1.DLL and my application should
+ be linked to the same C run-time (CRT) library? I linked my
+ application and my DLLs to different C libraries (e.g. my
+ application to a static library, and my DLLs to MSVCRT.DLL),
+ and everything works fine.
+
+ - If a user library invokes only pure Win32 API (accessible via
+ <windows.h> and the related headers), its DLL build will work
+ in any context. But if this library invokes standard C API,
+ things get more complicated.
+
+ There is a single Win32 library in a Win32 system. Every
+ function in this library resides in a single DLL module, that
+ is safe to call from anywhere. On the other hand, there are
+ multiple versions of the C library, and each of them has its
+ own separate internal state. Standalone executables and user
+ DLLs that call standard C functions must link to a C run-time
+ (CRT) library, be it static or shared (DLL). Intermixing
+ occurs when an executable (not necessarily standalone) and a
+ DLL are linked to different CRTs, and both are running in the
+ same process.
+
+ Intermixing multiple CRTs is possible, as long as their
+ internal states are kept intact. The Microsoft Knowledge Base
+ articles KB94248 "HOWTO: Use the C Run-Time" and KB140584
+ "HOWTO: Link with the Correct C Run-Time (CRT) Library"
+ mention the potential problems raised by intermixing.
+
+ If intermixing works for you, it's because your application
+ and DLLs are avoiding the corruption of each of the CRTs'
+ internal states, maybe by careful design, or maybe by fortune.
+
+ Also note that linking ZLIB1.DLL to non-Microsoft CRTs, such
+ as those provided by Borland, raises similar problems.
+
+
+11. Why are you linking ZLIB1.DLL to MSVCRT.DLL?
+
+ - MSVCRT.DLL exists on every Windows 95 with a new service pack
+ installed, or with Microsoft Internet Explorer 4 or later, and
+ on all other Windows 4.x or later (Windows 98, Windows NT 4,
+ or later). It is freely distributable; if not present in the
+ system, it can be downloaded from Microsoft or from other
+ software provider for free.
+
+ The fact that MSVCRT.DLL does not exist on a virgin Windows 95
+ is not so problematic. Windows 95 is scarcely found nowadays,
+ Microsoft ended its support a long time ago, and many recent
+ applications from various vendors, including Microsoft, do not
+ even run on it. Furthermore, no serious user should run
+ Windows 95 without a proper update installed.
+
+
+12. Why are you not linking ZLIB1.DLL to
+ <<my favorite C run-time library>> ?
+
+ - We considered and abandoned the following alternatives:
+
+ * Linking ZLIB1.DLL to a static C library (LIBC.LIB, or
+ LIBCMT.LIB) is not a good option. People are using the DLL
+ mainly to save disk space. If you are linking your program
+ to a static C library, you may as well consider linking zlib
+ in statically, too.
+
+ * Linking ZLIB1.DLL to CRTDLL.DLL looks appealing, because
+ CRTDLL.DLL is present on every Win32 installation.
+ Unfortunately, it has a series of problems: it does not
+ work properly with Microsoft's C++ libraries, it does not
+ provide support for 64-bit file offsets, (and so on...),
+ and Microsoft discontinued its support a long time ago.
+
+ * Linking ZLIB1.DLL to MSVCR70.DLL or MSVCR71.DLL, supplied
+ with the Microsoft .NET platform, and Visual C++ 7.0/7.1,
+ raises problems related to the status of ZLIB1.DLL as a
+ system component. According to the Microsoft Knowledge Base
+ article KB326922 "INFO: Redistribution of the Shared C
+ Runtime Component in Visual C++ .NET", MSVCR70.DLL and
+ MSVCR71.DLL are not supposed to function as system DLLs,
+ because they may clash with MSVCRT.DLL. Instead, the
+ application's installer is supposed to put these DLLs
+ (if needed) in the application's private directory.
+ If ZLIB1.DLL depends on a non-system runtime, it cannot
+ function as a redistributable system component.
+
+ * Linking ZLIB1.DLL to non-Microsoft runtimes, such as
+ Borland's, or Cygwin's, raises problems related to the
+ reliable presence of these runtimes on Win32 systems.
+ It's easier to let the DLL build of zlib up to the people
+ who distribute these runtimes, and who may proceed as
+ explained in the answer to Question 14.
+
+
+13. If ZLIB1.DLL cannot be linked to MSVCR70.DLL or MSVCR71.DLL,
+ how can I build/use ZLIB1.DLL in Microsoft Visual C++ 7.0
+ (Visual Studio .NET) or newer?
+
+ - Due to the problems explained in the Microsoft Knowledge Base
+ article KB326922 (see the previous answer), the C runtime that
+ comes with the VC7 environment is no longer considered a
+ system component. That is, it should not be assumed that this
+ runtime exists, or may be installed in a system directory.
+ Since ZLIB1.DLL is supposed to be a system component, it may
+ not depend on a non-system component.
+
+ In order to link ZLIB1.DLL and your application to MSVCRT.DLL
+ in VC7, you need the library of Visual C++ 6.0 or older. If
+ you don't have this library at hand, it's probably best not to
+ use ZLIB1.DLL.
+
+ We are hoping that, in the future, Microsoft will provide a
+ way to build applications linked to a proper system runtime,
+ from the Visual C++ environment. Until then, you have a
+ couple of alternatives, such as linking zlib in statically.
+ If your application requires dynamic linking, you may proceed
+ as explained in the answer to Question 14.
+
+
+14. I need to link my own DLL build to a CRT different than
+ MSVCRT.DLL. What can I do?
+
+ - Feel free to rebuild the DLL from the zlib sources, and link
+ it the way you want. You should, however, clearly state that
+ your build is unofficial. You should give it a different file
+ name, and/or install it in a private directory that can be
+ accessed by your application only, and is not visible to the
+ others (i.e. it's neither in the PATH, nor in the SYSTEM or
+ SYSTEM32 directories). Otherwise, your build may clash with
+ applications that link to the official build.
+
+ For example, in Cygwin, zlib is linked to the Cygwin runtime
+ CYGWIN1.DLL, and it is distributed under the name CYGZ.DLL.
+
+
+15. May I include additional pieces of code that I find useful,
+ link them in ZLIB1.DLL, and export them?
+
+ - No. A legitimate build of ZLIB1.DLL must not include code
+ that does not originate from the official zlib source code.
+ But you can make your own private DLL build, under a different
+ file name, as suggested in the previous answer.
+
+ For example, zlib is a part of the VCL library, distributed
+ with Borland Delphi and C++ Builder. The DLL build of VCL
+ is a redistributable file, named VCLxx.DLL.
+
+
+16. May I remove some functionality out of ZLIB1.DLL, by enabling
+ macros like NO_GZCOMPRESS or NO_GZIP at compile time?
+
+ - No. A legitimate build of ZLIB1.DLL must provide the complete
+ zlib functionality, as implemented in the official zlib source
+ code. But you can make your own private DLL build, under a
+ different file name, as suggested in the previous answer.
+
+
+17. I made my own ZLIB1.DLL build. Can I test it for compliance?
+
+ - We prefer that you download the official DLL from the zlib
+ web site. If you need something peculiar from this DLL, you
+ can send your suggestion to the zlib mailing list.
+
+ However, in case you do rebuild the DLL yourself, you can run
+ it with the test programs found in the DLL distribution.
+ Running these test programs is not a guarantee of compliance,
+ but a failure can imply a detected problem.
+
+**
+
+This document is written and maintained by
+Cosmin Truta <cosmint@cs.ubbcluj.ro>
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.bor b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.bor
new file mode 100644
index 000000000..d152bbb7f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.bor
@@ -0,0 +1,110 @@
+# Makefile for zlib
+# Borland C++ for Win32
+#
+# Usage:
+# make -f win32/Makefile.bor
+# make -f win32/Makefile.bor LOCAL_ZLIB=-DASMV OBJA=match.obj OBJPA=+match.obj
+
+# ------------ Borland C++ ------------
+
+# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7)
+# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or
+# added to the declaration of LOC here:
+LOC = $(LOCAL_ZLIB)
+
+CC = bcc32
+AS = bcc32
+LD = bcc32
+AR = tlib
+CFLAGS = -a -d -k- -O2 $(LOC)
+ASFLAGS = $(LOC)
+LDFLAGS = $(LOC)
+
+
+# variables
+ZLIB_LIB = zlib.lib
+
+OBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj
+OBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
+#OBJA =
+OBJP1 = +adler32.obj+compress.obj+crc32.obj+deflate.obj+gzclose.obj+gzlib.obj+gzread.obj
+OBJP2 = +gzwrite.obj+infback.obj+inffast.obj+inflate.obj+inftrees.obj+trees.obj+uncompr.obj+zutil.obj
+#OBJPA=
+
+
+# targets
+all: $(ZLIB_LIB) example.exe minigzip.exe
+
+.c.obj:
+ $(CC) -c $(CFLAGS) $<
+
+.asm.obj:
+ $(AS) -c $(ASFLAGS) $<
+
+adler32.obj: adler32.c zlib.h zconf.h
+
+compress.obj: compress.c zlib.h zconf.h
+
+crc32.obj: crc32.c zlib.h zconf.h crc32.h
+
+deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
+
+gzclose.obj: gzclose.c zlib.h zconf.h gzguts.h
+
+gzlib.obj: gzlib.c zlib.h zconf.h gzguts.h
+
+gzread.obj: gzread.c zlib.h zconf.h gzguts.h
+
+gzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h
+
+infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h
+
+inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
+ inffast.h inffixed.h
+
+inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
+
+trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h
+
+uncompr.obj: uncompr.c zlib.h zconf.h
+
+zutil.obj: zutil.c zutil.h zlib.h zconf.h
+
+example.obj: test/example.c zlib.h zconf.h
+
+minigzip.obj: test/minigzip.c zlib.h zconf.h
+
+
+# For the sake of the old Borland make,
+# the command line is cut to fit in the MS-DOS 128 byte limit:
+$(ZLIB_LIB): $(OBJ1) $(OBJ2) $(OBJA)
+ -del $(ZLIB_LIB)
+ $(AR) $(ZLIB_LIB) $(OBJP1)
+ $(AR) $(ZLIB_LIB) $(OBJP2)
+ $(AR) $(ZLIB_LIB) $(OBJPA)
+
+
+# testing
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+example.exe: example.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
+
+minigzip.exe: minigzip.obj $(ZLIB_LIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
+
+
+# cleanup
+clean:
+ -del $(ZLIB_LIB)
+ -del *.obj
+ -del *.exe
+ -del *.tds
+ -del zlib.bak
+ -del foo.gz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.gcc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.gcc
new file mode 100644
index 000000000..305be50af
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.gcc
@@ -0,0 +1,182 @@
+# Makefile for zlib, derived from Makefile.dj2.
+# Modified for mingw32 by C. Spieler, 6/16/98.
+# Updated for zlib 1.2.x by Christian Spieler and Cosmin Truta, Mar-2003.
+# Last updated: Mar 2012.
+# Tested under Cygwin and MinGW.
+
+# Copyright (C) 1995-2003 Jean-loup Gailly.
+# For conditions of distribution and use, see copyright notice in zlib.h
+
+# To compile, or to compile and test, type from the top level zlib directory:
+#
+# make -fwin32/Makefile.gcc; make test testdll -fwin32/Makefile.gcc
+#
+# To use the asm code, type:
+# cp contrib/asm?86/match.S ./match.S
+# make LOC=-DASMV OBJA=match.o -fwin32/Makefile.gcc
+#
+# To install libz.a, zconf.h and zlib.h in the system directories, type:
+#
+# make install -fwin32/Makefile.gcc
+#
+# BINARY_PATH, INCLUDE_PATH and LIBRARY_PATH must be set.
+#
+# To install the shared lib, append SHARED_MODE=1 to the make command :
+#
+# make install -fwin32/Makefile.gcc SHARED_MODE=1
+
+# Note:
+# If the platform is *not* MinGW (e.g. it is Cygwin or UWIN),
+# the DLL name should be changed from "zlib1.dll".
+
+STATICLIB = libz.a
+SHAREDLIB = zlib1.dll
+IMPLIB = libz.dll.a
+
+#
+# Set to 1 if shared object needs to be installed
+#
+SHARED_MODE=0
+
+#LOC = -DASMV
+#LOC = -DZLIB_DEBUG -g
+
+PREFIX =
+CC = $(PREFIX)gcc
+CFLAGS = $(LOC) -O3 -Wall
+
+AS = $(CC)
+ASFLAGS = $(LOC) -Wall
+
+LD = $(CC)
+LDFLAGS = $(LOC)
+
+AR = $(PREFIX)ar
+ARFLAGS = rcs
+
+RC = $(PREFIX)windres
+RCFLAGS = --define GCC_WINDRES
+
+STRIP = $(PREFIX)strip
+
+CP = cp -fp
+# If GNU install is available, replace $(CP) with install.
+INSTALL = $(CP)
+RM = rm -f
+
+prefix ?= /usr/local
+exec_prefix = $(prefix)
+
+OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
+ gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
+OBJA =
+
+all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) example.exe minigzip.exe example_d.exe minigzip_d.exe
+
+test: example.exe minigzip.exe
+ ./example
+ echo hello world | ./minigzip | ./minigzip -d
+
+testdll: example_d.exe minigzip_d.exe
+ ./example_d
+ echo hello world | ./minigzip_d | ./minigzip_d -d
+
+.c.o:
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+.S.o:
+ $(AS) $(ASFLAGS) -c -o $@ $<
+
+$(STATICLIB): $(OBJS) $(OBJA)
+ $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA)
+
+$(IMPLIB): $(SHAREDLIB)
+
+$(SHAREDLIB): win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
+ $(CC) -shared -Wl,--out-implib,$(IMPLIB) $(LDFLAGS) \
+ -o $@ win32/zlib.def $(OBJS) $(OBJA) zlibrc.o
+ $(STRIP) $@
+
+example.exe: example.o $(STATICLIB)
+ $(LD) $(LDFLAGS) -o $@ example.o $(STATICLIB)
+ $(STRIP) $@
+
+minigzip.exe: minigzip.o $(STATICLIB)
+ $(LD) $(LDFLAGS) -o $@ minigzip.o $(STATICLIB)
+ $(STRIP) $@
+
+example_d.exe: example.o $(IMPLIB)
+ $(LD) $(LDFLAGS) -o $@ example.o $(IMPLIB)
+ $(STRIP) $@
+
+minigzip_d.exe: minigzip.o $(IMPLIB)
+ $(LD) $(LDFLAGS) -o $@ minigzip.o $(IMPLIB)
+ $(STRIP) $@
+
+example.o: test/example.c zlib.h zconf.h
+ $(CC) $(CFLAGS) -I. -c -o $@ test/example.c
+
+minigzip.o: test/minigzip.c zlib.h zconf.h
+ $(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c
+
+zlibrc.o: win32/zlib1.rc
+ $(RC) $(RCFLAGS) -o $@ win32/zlib1.rc
+
+.PHONY: install uninstall clean
+
+install: zlib.h zconf.h $(STATICLIB) $(IMPLIB)
+ @if test -z "$(DESTDIR)$(INCLUDE_PATH)" -o -z "$(DESTDIR)$(LIBRARY_PATH)" -o -z "$(DESTDIR)$(BINARY_PATH)"; then \
+ echo INCLUDE_PATH, LIBRARY_PATH, and BINARY_PATH must be specified; \
+ exit 1; \
+ fi
+ -@mkdir -p '$(DESTDIR)$(INCLUDE_PATH)'
+ -@mkdir -p '$(DESTDIR)$(LIBRARY_PATH)' '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig
+ -if [ "$(SHARED_MODE)" = "1" ]; then \
+ mkdir -p '$(DESTDIR)$(BINARY_PATH)'; \
+ $(INSTALL) $(SHAREDLIB) '$(DESTDIR)$(BINARY_PATH)'; \
+ $(INSTALL) $(IMPLIB) '$(DESTDIR)$(LIBRARY_PATH)'; \
+ fi
+ -$(INSTALL) zlib.h '$(DESTDIR)$(INCLUDE_PATH)'
+ -$(INSTALL) zconf.h '$(DESTDIR)$(INCLUDE_PATH)'
+ -$(INSTALL) $(STATICLIB) '$(DESTDIR)$(LIBRARY_PATH)'
+ sed \
+ -e 's|@prefix@|${prefix}|g' \
+ -e 's|@exec_prefix@|${exec_prefix}|g' \
+ -e 's|@libdir@|$(LIBRARY_PATH)|g' \
+ -e 's|@sharedlibdir@|$(LIBRARY_PATH)|g' \
+ -e 's|@includedir@|$(INCLUDE_PATH)|g' \
+ -e 's|@VERSION@|'`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' zlib.h`'|g' \
+ zlib.pc.in > '$(DESTDIR)$(LIBRARY_PATH)'/pkgconfig/zlib.pc
+
+uninstall:
+ -if [ "$(SHARED_MODE)" = "1" ]; then \
+ $(RM) '$(DESTDIR)$(BINARY_PATH)'/$(SHAREDLIB); \
+ $(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(IMPLIB); \
+ fi
+ -$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zlib.h
+ -$(RM) '$(DESTDIR)$(INCLUDE_PATH)'/zconf.h
+ -$(RM) '$(DESTDIR)$(LIBRARY_PATH)'/$(STATICLIB)
+
+clean:
+ -$(RM) $(STATICLIB)
+ -$(RM) $(SHAREDLIB)
+ -$(RM) $(IMPLIB)
+ -$(RM) *.o
+ -$(RM) *.exe
+ -$(RM) foo.gz
+
+adler32.o: zlib.h zconf.h
+compress.o: zlib.h zconf.h
+crc32.o: crc32.h zlib.h zconf.h
+deflate.o: deflate.h zutil.h zlib.h zconf.h
+gzclose.o: zlib.h zconf.h gzguts.h
+gzlib.o: zlib.h zconf.h gzguts.h
+gzread.o: zlib.h zconf.h gzguts.h
+gzwrite.o: zlib.h zconf.h gzguts.h
+inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
+inftrees.o: zutil.h zlib.h zconf.h inftrees.h
+trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
+uncompr.o: zlib.h zconf.h
+zutil.o: zutil.h zlib.h zconf.h
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.msc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.msc
new file mode 100644
index 000000000..6831882de
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/Makefile.msc
@@ -0,0 +1,163 @@
+# Makefile for zlib using Microsoft (Visual) C
+# zlib is copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+#
+# Usage:
+# nmake -f win32/Makefile.msc (standard build)
+# nmake -f win32/Makefile.msc LOC=-DFOO (nonstandard build)
+# nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \
+# OBJA="inffas32.obj match686.obj" (use ASM code, x86)
+# nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." \
+# OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" (use ASM code, x64)
+
+# The toplevel directory of the source tree.
+#
+TOP = .
+
+# optional build flags
+LOC =
+
+# variables
+STATICLIB = zlib.lib
+SHAREDLIB = zlib1.dll
+IMPLIB = zdll.lib
+
+CC = cl
+AS = ml
+LD = link
+AR = lib
+RC = rc
+CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)
+WFLAGS = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
+ASFLAGS = -coff -Zi $(LOC)
+LDFLAGS = -nologo -debug -incremental:no -opt:ref
+ARFLAGS = -nologo
+RCFLAGS = /dWIN32 /r
+
+OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \
+ gzwrite.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj
+OBJA =
+
+
+# targets
+all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \
+ example.exe minigzip.exe example_d.exe minigzip_d.exe
+
+$(STATICLIB): $(OBJS) $(OBJA)
+ $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA)
+
+$(IMPLIB): $(SHAREDLIB)
+
+$(SHAREDLIB): $(TOP)/win32/zlib.def $(OBJS) $(OBJA) zlib1.res
+ $(LD) $(LDFLAGS) -def:$(TOP)/win32/zlib.def -dll -implib:$(IMPLIB) \
+ -out:$@ -base:0x5A4C0000 $(OBJS) $(OBJA) zlib1.res
+ if exist $@.manifest \
+ mt -nologo -manifest $@.manifest -outputresource:$@;2
+
+example.exe: example.obj $(STATICLIB)
+ $(LD) $(LDFLAGS) example.obj $(STATICLIB)
+ if exist $@.manifest \
+ mt -nologo -manifest $@.manifest -outputresource:$@;1
+
+minigzip.exe: minigzip.obj $(STATICLIB)
+ $(LD) $(LDFLAGS) minigzip.obj $(STATICLIB)
+ if exist $@.manifest \
+ mt -nologo -manifest $@.manifest -outputresource:$@;1
+
+example_d.exe: example.obj $(IMPLIB)
+ $(LD) $(LDFLAGS) -out:$@ example.obj $(IMPLIB)
+ if exist $@.manifest \
+ mt -nologo -manifest $@.manifest -outputresource:$@;1
+
+minigzip_d.exe: minigzip.obj $(IMPLIB)
+ $(LD) $(LDFLAGS) -out:$@ minigzip.obj $(IMPLIB)
+ if exist $@.manifest \
+ mt -nologo -manifest $@.manifest -outputresource:$@;1
+
+{$(TOP)}.c.obj:
+ $(CC) -c $(WFLAGS) $(CFLAGS) $<
+
+{$(TOP)/test}.c.obj:
+ $(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) $<
+
+{$(TOP)/contrib/masmx64}.c.obj:
+ $(CC) -c $(WFLAGS) $(CFLAGS) $<
+
+{$(TOP)/contrib/masmx64}.asm.obj:
+ $(AS) -c $(ASFLAGS) $<
+
+{$(TOP)/contrib/masmx86}.asm.obj:
+ $(AS) -c $(ASFLAGS) $<
+
+adler32.obj: $(TOP)/adler32.c $(TOP)/zlib.h $(TOP)/zconf.h
+
+compress.obj: $(TOP)/compress.c $(TOP)/zlib.h $(TOP)/zconf.h
+
+crc32.obj: $(TOP)/crc32.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/crc32.h
+
+deflate.obj: $(TOP)/deflate.c $(TOP)/deflate.h $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h
+
+gzclose.obj: $(TOP)/gzclose.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
+
+gzlib.obj: $(TOP)/gzlib.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
+
+gzread.obj: $(TOP)/gzread.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
+
+gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
+
+infback.obj: $(TOP)/infback.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
+ $(TOP)/inffast.h $(TOP)/inffixed.h
+
+inffast.obj: $(TOP)/inffast.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
+ $(TOP)/inffast.h
+
+inflate.obj: $(TOP)/inflate.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
+ $(TOP)/inffast.h $(TOP)/inffixed.h
+
+inftrees.obj: $(TOP)/inftrees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h
+
+trees.obj: $(TOP)/trees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/deflate.h $(TOP)/trees.h
+
+uncompr.obj: $(TOP)/uncompr.c $(TOP)/zlib.h $(TOP)/zconf.h
+
+zutil.obj: $(TOP)/zutil.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h
+
+gvmat64.obj: $(TOP)/contrib\masmx64\gvmat64.asm
+
+inffasx64.obj: $(TOP)/contrib\masmx64\inffasx64.asm
+
+inffas8664.obj: $(TOP)/contrib\masmx64\inffas8664.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h \
+ $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inffast.h
+
+inffas32.obj: $(TOP)/contrib\masmx86\inffas32.asm
+
+match686.obj: $(TOP)/contrib\masmx86\match686.asm
+
+example.obj: $(TOP)/test/example.c $(TOP)/zlib.h $(TOP)/zconf.h
+
+minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zlib.h $(TOP)/zconf.h
+
+zlib1.res: $(TOP)/win32/zlib1.rc
+ $(RC) $(RCFLAGS) /fo$@ $(TOP)/win32/zlib1.rc
+
+# testing
+test: example.exe minigzip.exe
+ example
+ echo hello world | minigzip | minigzip -d
+
+testdll: example_d.exe minigzip_d.exe
+ example_d
+ echo hello world | minigzip_d | minigzip_d -d
+
+
+# cleanup
+clean:
+ -del $(STATICLIB)
+ -del $(SHAREDLIB)
+ -del $(IMPLIB)
+ -del *.obj
+ -del *.res
+ -del *.exp
+ -del *.exe
+ -del *.pdb
+ -del *.manifest
+ -del foo.gz
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/README-WIN32.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/README-WIN32.txt
new file mode 100644
index 000000000..df7ab7f4b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/README-WIN32.txt
@@ -0,0 +1,103 @@
+ZLIB DATA COMPRESSION LIBRARY
+
+zlib 1.2.11 is a general purpose data compression library. All the code is
+thread safe. The data format used by the zlib library is described by RFCs
+(Request for Comments) 1950 to 1952 in the files
+http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format)
+and rfc1952.txt (gzip format).
+
+All functions of the compression library are documented in the file zlib.h
+(volunteer to write man pages welcome, contact zlib@gzip.org). Two compiled
+examples are distributed in this package, example and minigzip. The example_d
+and minigzip_d flavors validate that the zlib1.dll file is working correctly.
+
+Questions about zlib should be sent to <zlib@gzip.org>. The zlib home page
+is http://zlib.net/ . Before reporting a problem, please check this site to
+verify that you have the latest version of zlib; otherwise get the latest
+version and check whether the problem still exists or not.
+
+PLEASE read DLL_FAQ.txt, and the the zlib FAQ http://zlib.net/zlib_faq.html
+before asking for help.
+
+
+Manifest:
+
+The package zlib-1.2.11-win32-x86.zip will contain the following files:
+
+ README-WIN32.txt This document
+ ChangeLog Changes since previous zlib packages
+ DLL_FAQ.txt Frequently asked questions about zlib1.dll
+ zlib.3.pdf Documentation of this library in Adobe Acrobat format
+
+ example.exe A statically-bound example (using zlib.lib, not the dll)
+ example.pdb Symbolic information for debugging example.exe
+
+ example_d.exe A zlib1.dll bound example (using zdll.lib)
+ example_d.pdb Symbolic information for debugging example_d.exe
+
+ minigzip.exe A statically-bound test program (using zlib.lib, not the dll)
+ minigzip.pdb Symbolic information for debugging minigzip.exe
+
+ minigzip_d.exe A zlib1.dll bound test program (using zdll.lib)
+ minigzip_d.pdb Symbolic information for debugging minigzip_d.exe
+
+ zlib.h Install these files into the compilers' INCLUDE path to
+ zconf.h compile programs which use zlib.lib or zdll.lib
+
+ zdll.lib Install these files into the compilers' LIB path if linking
+ zdll.exp a compiled program to the zlib1.dll binary
+
+ zlib.lib Install these files into the compilers' LIB path to link zlib
+ zlib.pdb into compiled programs, without zlib1.dll runtime dependency
+ (zlib.pdb provides debugging info to the compile time linker)
+
+ zlib1.dll Install this binary shared library into the system PATH, or
+ the program's runtime directory (where the .exe resides)
+ zlib1.pdb Install in the same directory as zlib1.dll, in order to debug
+ an application crash using WinDbg or similar tools.
+
+All .pdb files above are entirely optional, but are very useful to a developer
+attempting to diagnose program misbehavior or a crash. Many additional
+important files for developers can be found in the zlib127.zip source package
+available from http://zlib.net/ - review that package's README file for details.
+
+
+Acknowledgments:
+
+The deflate format used by zlib was defined by Phil Katz. The deflate and
+zlib specifications were written by L. Peter Deutsch. Thanks to all the
+people who reported problems and suggested various improvements in zlib; they
+are too numerous to cite here.
+
+
+Copyright notice:
+
+ (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+If you use the zlib library in a product, we would appreciate *not* receiving
+lengthy legal documents to sign. The sources are provided for free but without
+warranty of any kind. The library has been entirely written by Jean-loup
+Gailly and Mark Adler; it does not include third-party code.
+
+If you redistribute modified sources, we would appreciate that you include in
+the file ChangeLog history information documenting your changes. Please read
+the FAQ for more information on the distribution of modified source versions.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/VisualC.txt b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/VisualC.txt
new file mode 100644
index 000000000..1005b2194
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/VisualC.txt
@@ -0,0 +1,3 @@
+
+To build zlib using the Microsoft Visual C++ environment,
+use the appropriate project from the contrib/vstudio/ directory.
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib.def b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib.def
new file mode 100644
index 000000000..a2188b000
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib.def
@@ -0,0 +1,94 @@
+; zlib data compression library
+EXPORTS
+; basic functions
+ zlibVersion
+ deflate
+ deflateEnd
+ inflate
+ inflateEnd
+; advanced functions
+ deflateSetDictionary
+ deflateGetDictionary
+ deflateCopy
+ deflateReset
+ deflateParams
+ deflateTune
+ deflateBound
+ deflatePending
+ deflatePrime
+ deflateSetHeader
+ inflateSetDictionary
+ inflateGetDictionary
+ inflateSync
+ inflateCopy
+ inflateReset
+ inflateReset2
+ inflatePrime
+ inflateMark
+ inflateGetHeader
+ inflateBack
+ inflateBackEnd
+ zlibCompileFlags
+; utility functions
+ compress
+ compress2
+ compressBound
+ uncompress
+ uncompress2
+ gzopen
+ gzdopen
+ gzbuffer
+ gzsetparams
+ gzread
+ gzfread
+ gzwrite
+ gzfwrite
+ gzprintf
+ gzvprintf
+ gzputs
+ gzgets
+ gzputc
+ gzgetc
+ gzungetc
+ gzflush
+ gzseek
+ gzrewind
+ gztell
+ gzoffset
+ gzeof
+ gzdirect
+ gzclose
+ gzclose_r
+ gzclose_w
+ gzerror
+ gzclearerr
+; large file functions
+ gzopen64
+ gzseek64
+ gztell64
+ gzoffset64
+ adler32_combine64
+ crc32_combine64
+; checksum functions
+ adler32
+ adler32_z
+ crc32
+ crc32_z
+ adler32_combine
+ crc32_combine
+; various hacks, don't look :)
+ deflateInit_
+ deflateInit2_
+ inflateInit_
+ inflateInit2_
+ inflateBackInit_
+ gzgetc_
+ zError
+ inflateSyncPoint
+ get_crc_table
+ inflateUndermine
+ inflateValidate
+ inflateCodesUsed
+ inflateResetKeep
+ deflateResetKeep
+ gzopen_w
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib1.rc b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib1.rc
new file mode 100644
index 000000000..234e641c3
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/win32/zlib1.rc
@@ -0,0 +1,40 @@
+#include <winver.h>
+#include "../zlib.h"
+
+#ifdef GCC_WINDRES
+VS_VERSION_INFO VERSIONINFO
+#else
+VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
+#endif
+ FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0
+ PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+#ifdef _DEBUG
+ FILEFLAGS 1
+#else
+ FILEFLAGS 0
+#endif
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0 // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ //language ID = U.S. English, char set = Windows, Multilingual
+ BEGIN
+ VALUE "FileDescription", "zlib data compression library\0"
+ VALUE "FileVersion", ZLIB_VERSION "\0"
+ VALUE "InternalName", "zlib1.dll\0"
+ VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
+ VALUE "OriginalFilename", "zlib1.dll\0"
+ VALUE "ProductName", "zlib\0"
+ VALUE "ProductVersion", ZLIB_VERSION "\0"
+ VALUE "Comments", "For more information visit http://www.zlib.net/\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 1252
+ END
+END
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h
new file mode 100644
index 000000000..5e1d68a00
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h
@@ -0,0 +1,534 @@
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#ifndef ZCONF_H
+#define ZCONF_H
+
+/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
+ * this permanently in zconf.h using "./configure --zprefix".
+ */
+#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
+# define Z_PREFIX_SET
+
+/* all linked symbols and init macros */
+# define _dist_code z__dist_code
+# define _length_code z__length_code
+# define _tr_align z__tr_align
+# define _tr_flush_bits z__tr_flush_bits
+# define _tr_flush_block z__tr_flush_block
+# define _tr_init z__tr_init
+# define _tr_stored_block z__tr_stored_block
+# define _tr_tally z__tr_tally
+# define adler32 z_adler32
+# define adler32_combine z_adler32_combine
+# define adler32_combine64 z_adler32_combine64
+# define adler32_z z_adler32_z
+# ifndef Z_SOLO
+# define compress z_compress
+# define compress2 z_compress2
+# define compressBound z_compressBound
+# endif
+# define crc32 z_crc32
+# define crc32_combine z_crc32_combine
+# define crc32_combine64 z_crc32_combine64
+# define crc32_z z_crc32_z
+# define deflate z_deflate
+# define deflateBound z_deflateBound
+# define deflateCopy z_deflateCopy
+# define deflateEnd z_deflateEnd
+# define deflateGetDictionary z_deflateGetDictionary
+# define deflateInit z_deflateInit
+# define deflateInit2 z_deflateInit2
+# define deflateInit2_ z_deflateInit2_
+# define deflateInit_ z_deflateInit_
+# define deflateParams z_deflateParams
+# define deflatePending z_deflatePending
+# define deflatePrime z_deflatePrime
+# define deflateReset z_deflateReset
+# define deflateResetKeep z_deflateResetKeep
+# define deflateSetDictionary z_deflateSetDictionary
+# define deflateSetHeader z_deflateSetHeader
+# define deflateTune z_deflateTune
+# define deflate_copyright z_deflate_copyright
+# define get_crc_table z_get_crc_table
+# ifndef Z_SOLO
+# define gz_error z_gz_error
+# define gz_intmax z_gz_intmax
+# define gz_strwinerror z_gz_strwinerror
+# define gzbuffer z_gzbuffer
+# define gzclearerr z_gzclearerr
+# define gzclose z_gzclose
+# define gzclose_r z_gzclose_r
+# define gzclose_w z_gzclose_w
+# define gzdirect z_gzdirect
+# define gzdopen z_gzdopen
+# define gzeof z_gzeof
+# define gzerror z_gzerror
+# define gzflush z_gzflush
+# define gzfread z_gzfread
+# define gzfwrite z_gzfwrite
+# define gzgetc z_gzgetc
+# define gzgetc_ z_gzgetc_
+# define gzgets z_gzgets
+# define gzoffset z_gzoffset
+# define gzoffset64 z_gzoffset64
+# define gzopen z_gzopen
+# define gzopen64 z_gzopen64
+# ifdef _WIN32
+# define gzopen_w z_gzopen_w
+# endif
+# define gzprintf z_gzprintf
+# define gzputc z_gzputc
+# define gzputs z_gzputs
+# define gzread z_gzread
+# define gzrewind z_gzrewind
+# define gzseek z_gzseek
+# define gzseek64 z_gzseek64
+# define gzsetparams z_gzsetparams
+# define gztell z_gztell
+# define gztell64 z_gztell64
+# define gzungetc z_gzungetc
+# define gzvprintf z_gzvprintf
+# define gzwrite z_gzwrite
+# endif
+# define inflate z_inflate
+# define inflateBack z_inflateBack
+# define inflateBackEnd z_inflateBackEnd
+# define inflateBackInit z_inflateBackInit
+# define inflateBackInit_ z_inflateBackInit_
+# define inflateCodesUsed z_inflateCodesUsed
+# define inflateCopy z_inflateCopy
+# define inflateEnd z_inflateEnd
+# define inflateGetDictionary z_inflateGetDictionary
+# define inflateGetHeader z_inflateGetHeader
+# define inflateInit z_inflateInit
+# define inflateInit2 z_inflateInit2
+# define inflateInit2_ z_inflateInit2_
+# define inflateInit_ z_inflateInit_
+# define inflateMark z_inflateMark
+# define inflatePrime z_inflatePrime
+# define inflateReset z_inflateReset
+# define inflateReset2 z_inflateReset2
+# define inflateResetKeep z_inflateResetKeep
+# define inflateSetDictionary z_inflateSetDictionary
+# define inflateSync z_inflateSync
+# define inflateSyncPoint z_inflateSyncPoint
+# define inflateUndermine z_inflateUndermine
+# define inflateValidate z_inflateValidate
+# define inflate_copyright z_inflate_copyright
+# define inflate_fast z_inflate_fast
+# define inflate_table z_inflate_table
+# ifndef Z_SOLO
+# define uncompress z_uncompress
+# define uncompress2 z_uncompress2
+# endif
+# define zError z_zError
+# ifndef Z_SOLO
+# define zcalloc z_zcalloc
+# define zcfree z_zcfree
+# endif
+# define zlibCompileFlags z_zlibCompileFlags
+# define zlibVersion z_zlibVersion
+
+/* all zlib typedefs in zlib.h and zconf.h */
+# define Byte z_Byte
+# define Bytef z_Bytef
+# define alloc_func z_alloc_func
+# define charf z_charf
+# define free_func z_free_func
+# ifndef Z_SOLO
+# define gzFile z_gzFile
+# endif
+# define gz_header z_gz_header
+# define gz_headerp z_gz_headerp
+# define in_func z_in_func
+# define intf z_intf
+# define out_func z_out_func
+# define uInt z_uInt
+# define uIntf z_uIntf
+# define uLong z_uLong
+# define uLongf z_uLongf
+# define voidp z_voidp
+# define voidpc z_voidpc
+# define voidpf z_voidpf
+
+/* all zlib structs in zlib.h and zconf.h */
+# define gz_header_s z_gz_header_s
+# define internal_state z_internal_state
+
+#endif
+
+#if defined(__MSDOS__) && !defined(MSDOS)
+# define MSDOS
+#endif
+#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
+# define OS2
+#endif
+#if defined(_WINDOWS) && !defined(WINDOWS)
+# define WINDOWS
+#endif
+#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
+# ifndef WIN32
+# define WIN32
+# endif
+#endif
+#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
+# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
+# ifndef SYS16BIT
+# define SYS16BIT
+# endif
+# endif
+#endif
+
+/*
+ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
+ * than 64k bytes at a time (needed on systems with 16-bit int).
+ */
+#ifdef SYS16BIT
+# define MAXSEG_64K
+#endif
+#ifdef MSDOS
+# define UNALIGNED_OK
+#endif
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
+# define STDC
+#endif
+
+#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
+# define STDC
+#endif
+
+#ifndef STDC
+# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
+# define const /* note: need a more gentle solution here */
+# endif
+#endif
+
+#if defined(ZLIB_CONST) && !defined(z_const)
+# define z_const const
+#else
+# define z_const
+#endif
+
+#ifdef Z_SOLO
+ typedef unsigned long z_size_t;
+#else
+# define z_longlong long long
+# if defined(NO_SIZE_T)
+ typedef unsigned NO_SIZE_T z_size_t;
+# elif defined(STDC)
+# include <stddef.h>
+ typedef size_t z_size_t;
+# else
+ typedef unsigned long z_size_t;
+# endif
+# undef z_longlong
+#endif
+
+/* Maximum value for memLevel in deflateInit2 */
+#ifndef MAX_MEM_LEVEL
+# ifdef MAXSEG_64K
+# define MAX_MEM_LEVEL 8
+# else
+# define MAX_MEM_LEVEL 9
+# endif
+#endif
+
+/* Maximum value for windowBits in deflateInit2 and inflateInit2.
+ * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
+ * created by gzip. (Files created by minigzip can still be extracted by
+ * gzip.)
+ */
+#ifndef MAX_WBITS
+# define MAX_WBITS 15 /* 32K LZ77 window */
+#endif
+
+/* The memory requirements for deflate are (in bytes):
+ (1 << (windowBits+2)) + (1 << (memLevel+9))
+ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
+ plus a few kilobytes for small objects. For example, if you want to reduce
+ the default memory requirements from 256K to 128K, compile with
+ make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
+ Of course this will generally degrade compression (there's no free lunch).
+
+ The memory requirements for inflate are (in bytes) 1 << windowBits
+ that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
+ for small objects.
+*/
+
+ /* Type declarations */
+
+#ifndef OF /* function prototypes */
+# ifdef STDC
+# define OF(args) args
+# else
+# define OF(args) ()
+# endif
+#endif
+
+#ifndef Z_ARG /* function prototypes for stdarg */
+# if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# define Z_ARG(args) args
+# else
+# define Z_ARG(args) ()
+# endif
+#endif
+
+/* The following definitions for FAR are needed only for MSDOS mixed
+ * model programming (small or medium model with some far allocations).
+ * This was tested only with MSC; for other MSDOS compilers you may have
+ * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
+ * just define FAR to be empty.
+ */
+#ifdef SYS16BIT
+# if defined(M_I86SM) || defined(M_I86MM)
+ /* MSC small or medium model */
+# define SMALL_MEDIUM
+# ifdef _MSC_VER
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+# if (defined(__SMALL__) || defined(__MEDIUM__))
+ /* Turbo C small or medium model */
+# define SMALL_MEDIUM
+# ifdef __BORLANDC__
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+#endif
+
+#if defined(WINDOWS) || defined(WIN32)
+ /* If building or using zlib as a DLL, define ZLIB_DLL.
+ * This is not mandatory, but it offers a little performance increase.
+ */
+# ifdef ZLIB_DLL
+# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
+# ifdef ZLIB_INTERNAL
+# define ZEXTERN extern __declspec(dllexport)
+# else
+# define ZEXTERN extern __declspec(dllimport)
+# endif
+# endif
+# endif /* ZLIB_DLL */
+ /* If building or using zlib with the WINAPI/WINAPIV calling convention,
+ * define ZLIB_WINAPI.
+ * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
+ */
+# ifdef ZLIB_WINAPI
+# ifdef FAR
+# undef FAR
+# endif
+# include <windows.h>
+ /* No need for _export, use ZLIB.DEF instead. */
+ /* For complete Windows compatibility, use WINAPI, not __stdcall. */
+# define ZEXPORT WINAPI
+# ifdef WIN32
+# define ZEXPORTVA WINAPIV
+# else
+# define ZEXPORTVA FAR CDECL
+# endif
+# endif
+#endif
+
+#if defined (__BEOS__)
+# ifdef ZLIB_DLL
+# ifdef ZLIB_INTERNAL
+# define ZEXPORT __declspec(dllexport)
+# define ZEXPORTVA __declspec(dllexport)
+# else
+# define ZEXPORT __declspec(dllimport)
+# define ZEXPORTVA __declspec(dllimport)
+# endif
+# endif
+#endif
+
+#ifndef ZEXTERN
+# define ZEXTERN extern
+#endif
+#ifndef ZEXPORT
+# define ZEXPORT
+#endif
+#ifndef ZEXPORTVA
+# define ZEXPORTVA
+#endif
+
+#ifndef FAR
+# define FAR
+#endif
+
+#if !defined(__MACTYPES__)
+typedef unsigned char Byte; /* 8 bits */
+#endif
+typedef unsigned int uInt; /* 16 bits or more */
+typedef unsigned long uLong; /* 32 bits or more */
+
+#ifdef SMALL_MEDIUM
+ /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
+# define Bytef Byte FAR
+#else
+ typedef Byte FAR Bytef;
+#endif
+typedef char FAR charf;
+typedef int FAR intf;
+typedef uInt FAR uIntf;
+typedef uLong FAR uLongf;
+
+#ifdef STDC
+ typedef void const *voidpc;
+ typedef void FAR *voidpf;
+ typedef void *voidp;
+#else
+ typedef Byte const *voidpc;
+ typedef Byte FAR *voidpf;
+ typedef Byte *voidp;
+#endif
+
+#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
+# include <limits.h>
+# if (UINT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned
+# elif (ULONG_MAX == 0xffffffffUL)
+# define Z_U4 unsigned long
+# elif (USHRT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned short
+# endif
+#endif
+
+#ifdef Z_U4
+ typedef Z_U4 z_crc_t;
+#else
+ typedef unsigned long z_crc_t;
+#endif
+
+#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_UNISTD_H
+#endif
+
+#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_STDARG_H
+#endif
+
+#ifdef STDC
+# ifndef Z_SOLO
+# include <sys/types.h> /* for off_t */
+# endif
+#endif
+
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# ifndef Z_SOLO
+# include <stdarg.h> /* for va_list */
+# endif
+#endif
+
+#ifdef _WIN32
+# ifndef Z_SOLO
+# include <stddef.h> /* for wchar_t */
+# endif
+#endif
+
+/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
+ * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
+ * though the former does not conform to the LFS document), but considering
+ * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
+ * equivalently requesting no 64-bit operations
+ */
+#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
+# undef _LARGEFILE64_SOURCE
+#endif
+
+#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
+# define Z_HAVE_UNISTD_H
+#endif
+#ifndef Z_SOLO
+# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
+# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
+# ifdef VMS
+# include <unixio.h> /* for off_t */
+# endif
+# ifndef z_off_t
+# define z_off_t off_t
+# endif
+# endif
+#endif
+
+#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
+# define Z_LFS64
+#endif
+
+#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
+# define Z_LARGE64
+#endif
+
+#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
+# define Z_WANT64
+#endif
+
+#if !defined(SEEK_SET) && !defined(Z_SOLO)
+# define SEEK_SET 0 /* Seek from beginning of file. */
+# define SEEK_CUR 1 /* Seek from current position. */
+# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
+#endif
+
+#ifndef z_off_t
+# define z_off_t long
+#endif
+
+#if !defined(_WIN32) && defined(Z_LARGE64)
+# define z_off64_t off64_t
+#else
+# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
+# define z_off64_t __int64
+# else
+# define z_off64_t z_off_t
+# endif
+#endif
+
+/* MVS linker does not support external names larger than 8 bytes */
+#if defined(__MVS__)
+ #pragma map(deflateInit_,"DEIN")
+ #pragma map(deflateInit2_,"DEIN2")
+ #pragma map(deflateEnd,"DEEND")
+ #pragma map(deflateBound,"DEBND")
+ #pragma map(inflateInit_,"ININ")
+ #pragma map(inflateInit2_,"ININ2")
+ #pragma map(inflateEnd,"INEND")
+ #pragma map(inflateSync,"INSY")
+ #pragma map(inflateSetDictionary,"INSEDI")
+ #pragma map(compressBound,"CMBND")
+ #pragma map(inflate_table,"INTABL")
+ #pragma map(inflate_fast,"INFA")
+ #pragma map(inflate_copyright,"INCOPY")
+#endif
+
+#endif /* ZCONF_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.cmakein b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.cmakein
new file mode 100644
index 000000000..a7f24cce6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.cmakein
@@ -0,0 +1,536 @@
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#ifndef ZCONF_H
+#define ZCONF_H
+#cmakedefine Z_PREFIX
+#cmakedefine Z_HAVE_UNISTD_H
+
+/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
+ * this permanently in zconf.h using "./configure --zprefix".
+ */
+#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
+# define Z_PREFIX_SET
+
+/* all linked symbols and init macros */
+# define _dist_code z__dist_code
+# define _length_code z__length_code
+# define _tr_align z__tr_align
+# define _tr_flush_bits z__tr_flush_bits
+# define _tr_flush_block z__tr_flush_block
+# define _tr_init z__tr_init
+# define _tr_stored_block z__tr_stored_block
+# define _tr_tally z__tr_tally
+# define adler32 z_adler32
+# define adler32_combine z_adler32_combine
+# define adler32_combine64 z_adler32_combine64
+# define adler32_z z_adler32_z
+# ifndef Z_SOLO
+# define compress z_compress
+# define compress2 z_compress2
+# define compressBound z_compressBound
+# endif
+# define crc32 z_crc32
+# define crc32_combine z_crc32_combine
+# define crc32_combine64 z_crc32_combine64
+# define crc32_z z_crc32_z
+# define deflate z_deflate
+# define deflateBound z_deflateBound
+# define deflateCopy z_deflateCopy
+# define deflateEnd z_deflateEnd
+# define deflateGetDictionary z_deflateGetDictionary
+# define deflateInit z_deflateInit
+# define deflateInit2 z_deflateInit2
+# define deflateInit2_ z_deflateInit2_
+# define deflateInit_ z_deflateInit_
+# define deflateParams z_deflateParams
+# define deflatePending z_deflatePending
+# define deflatePrime z_deflatePrime
+# define deflateReset z_deflateReset
+# define deflateResetKeep z_deflateResetKeep
+# define deflateSetDictionary z_deflateSetDictionary
+# define deflateSetHeader z_deflateSetHeader
+# define deflateTune z_deflateTune
+# define deflate_copyright z_deflate_copyright
+# define get_crc_table z_get_crc_table
+# ifndef Z_SOLO
+# define gz_error z_gz_error
+# define gz_intmax z_gz_intmax
+# define gz_strwinerror z_gz_strwinerror
+# define gzbuffer z_gzbuffer
+# define gzclearerr z_gzclearerr
+# define gzclose z_gzclose
+# define gzclose_r z_gzclose_r
+# define gzclose_w z_gzclose_w
+# define gzdirect z_gzdirect
+# define gzdopen z_gzdopen
+# define gzeof z_gzeof
+# define gzerror z_gzerror
+# define gzflush z_gzflush
+# define gzfread z_gzfread
+# define gzfwrite z_gzfwrite
+# define gzgetc z_gzgetc
+# define gzgetc_ z_gzgetc_
+# define gzgets z_gzgets
+# define gzoffset z_gzoffset
+# define gzoffset64 z_gzoffset64
+# define gzopen z_gzopen
+# define gzopen64 z_gzopen64
+# ifdef _WIN32
+# define gzopen_w z_gzopen_w
+# endif
+# define gzprintf z_gzprintf
+# define gzputc z_gzputc
+# define gzputs z_gzputs
+# define gzread z_gzread
+# define gzrewind z_gzrewind
+# define gzseek z_gzseek
+# define gzseek64 z_gzseek64
+# define gzsetparams z_gzsetparams
+# define gztell z_gztell
+# define gztell64 z_gztell64
+# define gzungetc z_gzungetc
+# define gzvprintf z_gzvprintf
+# define gzwrite z_gzwrite
+# endif
+# define inflate z_inflate
+# define inflateBack z_inflateBack
+# define inflateBackEnd z_inflateBackEnd
+# define inflateBackInit z_inflateBackInit
+# define inflateBackInit_ z_inflateBackInit_
+# define inflateCodesUsed z_inflateCodesUsed
+# define inflateCopy z_inflateCopy
+# define inflateEnd z_inflateEnd
+# define inflateGetDictionary z_inflateGetDictionary
+# define inflateGetHeader z_inflateGetHeader
+# define inflateInit z_inflateInit
+# define inflateInit2 z_inflateInit2
+# define inflateInit2_ z_inflateInit2_
+# define inflateInit_ z_inflateInit_
+# define inflateMark z_inflateMark
+# define inflatePrime z_inflatePrime
+# define inflateReset z_inflateReset
+# define inflateReset2 z_inflateReset2
+# define inflateResetKeep z_inflateResetKeep
+# define inflateSetDictionary z_inflateSetDictionary
+# define inflateSync z_inflateSync
+# define inflateSyncPoint z_inflateSyncPoint
+# define inflateUndermine z_inflateUndermine
+# define inflateValidate z_inflateValidate
+# define inflate_copyright z_inflate_copyright
+# define inflate_fast z_inflate_fast
+# define inflate_table z_inflate_table
+# ifndef Z_SOLO
+# define uncompress z_uncompress
+# define uncompress2 z_uncompress2
+# endif
+# define zError z_zError
+# ifndef Z_SOLO
+# define zcalloc z_zcalloc
+# define zcfree z_zcfree
+# endif
+# define zlibCompileFlags z_zlibCompileFlags
+# define zlibVersion z_zlibVersion
+
+/* all zlib typedefs in zlib.h and zconf.h */
+# define Byte z_Byte
+# define Bytef z_Bytef
+# define alloc_func z_alloc_func
+# define charf z_charf
+# define free_func z_free_func
+# ifndef Z_SOLO
+# define gzFile z_gzFile
+# endif
+# define gz_header z_gz_header
+# define gz_headerp z_gz_headerp
+# define in_func z_in_func
+# define intf z_intf
+# define out_func z_out_func
+# define uInt z_uInt
+# define uIntf z_uIntf
+# define uLong z_uLong
+# define uLongf z_uLongf
+# define voidp z_voidp
+# define voidpc z_voidpc
+# define voidpf z_voidpf
+
+/* all zlib structs in zlib.h and zconf.h */
+# define gz_header_s z_gz_header_s
+# define internal_state z_internal_state
+
+#endif
+
+#if defined(__MSDOS__) && !defined(MSDOS)
+# define MSDOS
+#endif
+#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
+# define OS2
+#endif
+#if defined(_WINDOWS) && !defined(WINDOWS)
+# define WINDOWS
+#endif
+#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
+# ifndef WIN32
+# define WIN32
+# endif
+#endif
+#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
+# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
+# ifndef SYS16BIT
+# define SYS16BIT
+# endif
+# endif
+#endif
+
+/*
+ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
+ * than 64k bytes at a time (needed on systems with 16-bit int).
+ */
+#ifdef SYS16BIT
+# define MAXSEG_64K
+#endif
+#ifdef MSDOS
+# define UNALIGNED_OK
+#endif
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
+# define STDC
+#endif
+
+#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
+# define STDC
+#endif
+
+#ifndef STDC
+# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
+# define const /* note: need a more gentle solution here */
+# endif
+#endif
+
+#if defined(ZLIB_CONST) && !defined(z_const)
+# define z_const const
+#else
+# define z_const
+#endif
+
+#ifdef Z_SOLO
+ typedef unsigned long z_size_t;
+#else
+# define z_longlong long long
+# if defined(NO_SIZE_T)
+ typedef unsigned NO_SIZE_T z_size_t;
+# elif defined(STDC)
+# include <stddef.h>
+ typedef size_t z_size_t;
+# else
+ typedef unsigned long z_size_t;
+# endif
+# undef z_longlong
+#endif
+
+/* Maximum value for memLevel in deflateInit2 */
+#ifndef MAX_MEM_LEVEL
+# ifdef MAXSEG_64K
+# define MAX_MEM_LEVEL 8
+# else
+# define MAX_MEM_LEVEL 9
+# endif
+#endif
+
+/* Maximum value for windowBits in deflateInit2 and inflateInit2.
+ * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
+ * created by gzip. (Files created by minigzip can still be extracted by
+ * gzip.)
+ */
+#ifndef MAX_WBITS
+# define MAX_WBITS 15 /* 32K LZ77 window */
+#endif
+
+/* The memory requirements for deflate are (in bytes):
+ (1 << (windowBits+2)) + (1 << (memLevel+9))
+ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
+ plus a few kilobytes for small objects. For example, if you want to reduce
+ the default memory requirements from 256K to 128K, compile with
+ make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
+ Of course this will generally degrade compression (there's no free lunch).
+
+ The memory requirements for inflate are (in bytes) 1 << windowBits
+ that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
+ for small objects.
+*/
+
+ /* Type declarations */
+
+#ifndef OF /* function prototypes */
+# ifdef STDC
+# define OF(args) args
+# else
+# define OF(args) ()
+# endif
+#endif
+
+#ifndef Z_ARG /* function prototypes for stdarg */
+# if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# define Z_ARG(args) args
+# else
+# define Z_ARG(args) ()
+# endif
+#endif
+
+/* The following definitions for FAR are needed only for MSDOS mixed
+ * model programming (small or medium model with some far allocations).
+ * This was tested only with MSC; for other MSDOS compilers you may have
+ * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
+ * just define FAR to be empty.
+ */
+#ifdef SYS16BIT
+# if defined(M_I86SM) || defined(M_I86MM)
+ /* MSC small or medium model */
+# define SMALL_MEDIUM
+# ifdef _MSC_VER
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+# if (defined(__SMALL__) || defined(__MEDIUM__))
+ /* Turbo C small or medium model */
+# define SMALL_MEDIUM
+# ifdef __BORLANDC__
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+#endif
+
+#if defined(WINDOWS) || defined(WIN32)
+ /* If building or using zlib as a DLL, define ZLIB_DLL.
+ * This is not mandatory, but it offers a little performance increase.
+ */
+# ifdef ZLIB_DLL
+# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
+# ifdef ZLIB_INTERNAL
+# define ZEXTERN extern __declspec(dllexport)
+# else
+# define ZEXTERN extern __declspec(dllimport)
+# endif
+# endif
+# endif /* ZLIB_DLL */
+ /* If building or using zlib with the WINAPI/WINAPIV calling convention,
+ * define ZLIB_WINAPI.
+ * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
+ */
+# ifdef ZLIB_WINAPI
+# ifdef FAR
+# undef FAR
+# endif
+# include <windows.h>
+ /* No need for _export, use ZLIB.DEF instead. */
+ /* For complete Windows compatibility, use WINAPI, not __stdcall. */
+# define ZEXPORT WINAPI
+# ifdef WIN32
+# define ZEXPORTVA WINAPIV
+# else
+# define ZEXPORTVA FAR CDECL
+# endif
+# endif
+#endif
+
+#if defined (__BEOS__)
+# ifdef ZLIB_DLL
+# ifdef ZLIB_INTERNAL
+# define ZEXPORT __declspec(dllexport)
+# define ZEXPORTVA __declspec(dllexport)
+# else
+# define ZEXPORT __declspec(dllimport)
+# define ZEXPORTVA __declspec(dllimport)
+# endif
+# endif
+#endif
+
+#ifndef ZEXTERN
+# define ZEXTERN extern
+#endif
+#ifndef ZEXPORT
+# define ZEXPORT
+#endif
+#ifndef ZEXPORTVA
+# define ZEXPORTVA
+#endif
+
+#ifndef FAR
+# define FAR
+#endif
+
+#if !defined(__MACTYPES__)
+typedef unsigned char Byte; /* 8 bits */
+#endif
+typedef unsigned int uInt; /* 16 bits or more */
+typedef unsigned long uLong; /* 32 bits or more */
+
+#ifdef SMALL_MEDIUM
+ /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
+# define Bytef Byte FAR
+#else
+ typedef Byte FAR Bytef;
+#endif
+typedef char FAR charf;
+typedef int FAR intf;
+typedef uInt FAR uIntf;
+typedef uLong FAR uLongf;
+
+#ifdef STDC
+ typedef void const *voidpc;
+ typedef void FAR *voidpf;
+ typedef void *voidp;
+#else
+ typedef Byte const *voidpc;
+ typedef Byte FAR *voidpf;
+ typedef Byte *voidp;
+#endif
+
+#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
+# include <limits.h>
+# if (UINT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned
+# elif (ULONG_MAX == 0xffffffffUL)
+# define Z_U4 unsigned long
+# elif (USHRT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned short
+# endif
+#endif
+
+#ifdef Z_U4
+ typedef Z_U4 z_crc_t;
+#else
+ typedef unsigned long z_crc_t;
+#endif
+
+#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_UNISTD_H
+#endif
+
+#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_STDARG_H
+#endif
+
+#ifdef STDC
+# ifndef Z_SOLO
+# include <sys/types.h> /* for off_t */
+# endif
+#endif
+
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# ifndef Z_SOLO
+# include <stdarg.h> /* for va_list */
+# endif
+#endif
+
+#ifdef _WIN32
+# ifndef Z_SOLO
+# include <stddef.h> /* for wchar_t */
+# endif
+#endif
+
+/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
+ * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
+ * though the former does not conform to the LFS document), but considering
+ * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
+ * equivalently requesting no 64-bit operations
+ */
+#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
+# undef _LARGEFILE64_SOURCE
+#endif
+
+#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
+# define Z_HAVE_UNISTD_H
+#endif
+#ifndef Z_SOLO
+# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
+# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
+# ifdef VMS
+# include <unixio.h> /* for off_t */
+# endif
+# ifndef z_off_t
+# define z_off_t off_t
+# endif
+# endif
+#endif
+
+#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
+# define Z_LFS64
+#endif
+
+#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
+# define Z_LARGE64
+#endif
+
+#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
+# define Z_WANT64
+#endif
+
+#if !defined(SEEK_SET) && !defined(Z_SOLO)
+# define SEEK_SET 0 /* Seek from beginning of file. */
+# define SEEK_CUR 1 /* Seek from current position. */
+# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
+#endif
+
+#ifndef z_off_t
+# define z_off_t long
+#endif
+
+#if !defined(_WIN32) && defined(Z_LARGE64)
+# define z_off64_t off64_t
+#else
+# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
+# define z_off64_t __int64
+# else
+# define z_off64_t z_off_t
+# endif
+#endif
+
+/* MVS linker does not support external names larger than 8 bytes */
+#if defined(__MVS__)
+ #pragma map(deflateInit_,"DEIN")
+ #pragma map(deflateInit2_,"DEIN2")
+ #pragma map(deflateEnd,"DEEND")
+ #pragma map(deflateBound,"DEBND")
+ #pragma map(inflateInit_,"ININ")
+ #pragma map(inflateInit2_,"ININ2")
+ #pragma map(inflateEnd,"INEND")
+ #pragma map(inflateSync,"INSY")
+ #pragma map(inflateSetDictionary,"INSEDI")
+ #pragma map(compressBound,"CMBND")
+ #pragma map(inflate_table,"INTABL")
+ #pragma map(inflate_fast,"INFA")
+ #pragma map(inflate_copyright,"INCOPY")
+#endif
+
+#endif /* ZCONF_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.in b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.in
new file mode 100644
index 000000000..5e1d68a00
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zconf.h.in
@@ -0,0 +1,534 @@
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#ifndef ZCONF_H
+#define ZCONF_H
+
+/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
+ * this permanently in zconf.h using "./configure --zprefix".
+ */
+#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
+# define Z_PREFIX_SET
+
+/* all linked symbols and init macros */
+# define _dist_code z__dist_code
+# define _length_code z__length_code
+# define _tr_align z__tr_align
+# define _tr_flush_bits z__tr_flush_bits
+# define _tr_flush_block z__tr_flush_block
+# define _tr_init z__tr_init
+# define _tr_stored_block z__tr_stored_block
+# define _tr_tally z__tr_tally
+# define adler32 z_adler32
+# define adler32_combine z_adler32_combine
+# define adler32_combine64 z_adler32_combine64
+# define adler32_z z_adler32_z
+# ifndef Z_SOLO
+# define compress z_compress
+# define compress2 z_compress2
+# define compressBound z_compressBound
+# endif
+# define crc32 z_crc32
+# define crc32_combine z_crc32_combine
+# define crc32_combine64 z_crc32_combine64
+# define crc32_z z_crc32_z
+# define deflate z_deflate
+# define deflateBound z_deflateBound
+# define deflateCopy z_deflateCopy
+# define deflateEnd z_deflateEnd
+# define deflateGetDictionary z_deflateGetDictionary
+# define deflateInit z_deflateInit
+# define deflateInit2 z_deflateInit2
+# define deflateInit2_ z_deflateInit2_
+# define deflateInit_ z_deflateInit_
+# define deflateParams z_deflateParams
+# define deflatePending z_deflatePending
+# define deflatePrime z_deflatePrime
+# define deflateReset z_deflateReset
+# define deflateResetKeep z_deflateResetKeep
+# define deflateSetDictionary z_deflateSetDictionary
+# define deflateSetHeader z_deflateSetHeader
+# define deflateTune z_deflateTune
+# define deflate_copyright z_deflate_copyright
+# define get_crc_table z_get_crc_table
+# ifndef Z_SOLO
+# define gz_error z_gz_error
+# define gz_intmax z_gz_intmax
+# define gz_strwinerror z_gz_strwinerror
+# define gzbuffer z_gzbuffer
+# define gzclearerr z_gzclearerr
+# define gzclose z_gzclose
+# define gzclose_r z_gzclose_r
+# define gzclose_w z_gzclose_w
+# define gzdirect z_gzdirect
+# define gzdopen z_gzdopen
+# define gzeof z_gzeof
+# define gzerror z_gzerror
+# define gzflush z_gzflush
+# define gzfread z_gzfread
+# define gzfwrite z_gzfwrite
+# define gzgetc z_gzgetc
+# define gzgetc_ z_gzgetc_
+# define gzgets z_gzgets
+# define gzoffset z_gzoffset
+# define gzoffset64 z_gzoffset64
+# define gzopen z_gzopen
+# define gzopen64 z_gzopen64
+# ifdef _WIN32
+# define gzopen_w z_gzopen_w
+# endif
+# define gzprintf z_gzprintf
+# define gzputc z_gzputc
+# define gzputs z_gzputs
+# define gzread z_gzread
+# define gzrewind z_gzrewind
+# define gzseek z_gzseek
+# define gzseek64 z_gzseek64
+# define gzsetparams z_gzsetparams
+# define gztell z_gztell
+# define gztell64 z_gztell64
+# define gzungetc z_gzungetc
+# define gzvprintf z_gzvprintf
+# define gzwrite z_gzwrite
+# endif
+# define inflate z_inflate
+# define inflateBack z_inflateBack
+# define inflateBackEnd z_inflateBackEnd
+# define inflateBackInit z_inflateBackInit
+# define inflateBackInit_ z_inflateBackInit_
+# define inflateCodesUsed z_inflateCodesUsed
+# define inflateCopy z_inflateCopy
+# define inflateEnd z_inflateEnd
+# define inflateGetDictionary z_inflateGetDictionary
+# define inflateGetHeader z_inflateGetHeader
+# define inflateInit z_inflateInit
+# define inflateInit2 z_inflateInit2
+# define inflateInit2_ z_inflateInit2_
+# define inflateInit_ z_inflateInit_
+# define inflateMark z_inflateMark
+# define inflatePrime z_inflatePrime
+# define inflateReset z_inflateReset
+# define inflateReset2 z_inflateReset2
+# define inflateResetKeep z_inflateResetKeep
+# define inflateSetDictionary z_inflateSetDictionary
+# define inflateSync z_inflateSync
+# define inflateSyncPoint z_inflateSyncPoint
+# define inflateUndermine z_inflateUndermine
+# define inflateValidate z_inflateValidate
+# define inflate_copyright z_inflate_copyright
+# define inflate_fast z_inflate_fast
+# define inflate_table z_inflate_table
+# ifndef Z_SOLO
+# define uncompress z_uncompress
+# define uncompress2 z_uncompress2
+# endif
+# define zError z_zError
+# ifndef Z_SOLO
+# define zcalloc z_zcalloc
+# define zcfree z_zcfree
+# endif
+# define zlibCompileFlags z_zlibCompileFlags
+# define zlibVersion z_zlibVersion
+
+/* all zlib typedefs in zlib.h and zconf.h */
+# define Byte z_Byte
+# define Bytef z_Bytef
+# define alloc_func z_alloc_func
+# define charf z_charf
+# define free_func z_free_func
+# ifndef Z_SOLO
+# define gzFile z_gzFile
+# endif
+# define gz_header z_gz_header
+# define gz_headerp z_gz_headerp
+# define in_func z_in_func
+# define intf z_intf
+# define out_func z_out_func
+# define uInt z_uInt
+# define uIntf z_uIntf
+# define uLong z_uLong
+# define uLongf z_uLongf
+# define voidp z_voidp
+# define voidpc z_voidpc
+# define voidpf z_voidpf
+
+/* all zlib structs in zlib.h and zconf.h */
+# define gz_header_s z_gz_header_s
+# define internal_state z_internal_state
+
+#endif
+
+#if defined(__MSDOS__) && !defined(MSDOS)
+# define MSDOS
+#endif
+#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
+# define OS2
+#endif
+#if defined(_WINDOWS) && !defined(WINDOWS)
+# define WINDOWS
+#endif
+#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
+# ifndef WIN32
+# define WIN32
+# endif
+#endif
+#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
+# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
+# ifndef SYS16BIT
+# define SYS16BIT
+# endif
+# endif
+#endif
+
+/*
+ * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
+ * than 64k bytes at a time (needed on systems with 16-bit int).
+ */
+#ifdef SYS16BIT
+# define MAXSEG_64K
+#endif
+#ifdef MSDOS
+# define UNALIGNED_OK
+#endif
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
+# define STDC
+#endif
+#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
+# define STDC
+#endif
+
+#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
+# define STDC
+#endif
+
+#ifndef STDC
+# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
+# define const /* note: need a more gentle solution here */
+# endif
+#endif
+
+#if defined(ZLIB_CONST) && !defined(z_const)
+# define z_const const
+#else
+# define z_const
+#endif
+
+#ifdef Z_SOLO
+ typedef unsigned long z_size_t;
+#else
+# define z_longlong long long
+# if defined(NO_SIZE_T)
+ typedef unsigned NO_SIZE_T z_size_t;
+# elif defined(STDC)
+# include <stddef.h>
+ typedef size_t z_size_t;
+# else
+ typedef unsigned long z_size_t;
+# endif
+# undef z_longlong
+#endif
+
+/* Maximum value for memLevel in deflateInit2 */
+#ifndef MAX_MEM_LEVEL
+# ifdef MAXSEG_64K
+# define MAX_MEM_LEVEL 8
+# else
+# define MAX_MEM_LEVEL 9
+# endif
+#endif
+
+/* Maximum value for windowBits in deflateInit2 and inflateInit2.
+ * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
+ * created by gzip. (Files created by minigzip can still be extracted by
+ * gzip.)
+ */
+#ifndef MAX_WBITS
+# define MAX_WBITS 15 /* 32K LZ77 window */
+#endif
+
+/* The memory requirements for deflate are (in bytes):
+ (1 << (windowBits+2)) + (1 << (memLevel+9))
+ that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
+ plus a few kilobytes for small objects. For example, if you want to reduce
+ the default memory requirements from 256K to 128K, compile with
+ make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
+ Of course this will generally degrade compression (there's no free lunch).
+
+ The memory requirements for inflate are (in bytes) 1 << windowBits
+ that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
+ for small objects.
+*/
+
+ /* Type declarations */
+
+#ifndef OF /* function prototypes */
+# ifdef STDC
+# define OF(args) args
+# else
+# define OF(args) ()
+# endif
+#endif
+
+#ifndef Z_ARG /* function prototypes for stdarg */
+# if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# define Z_ARG(args) args
+# else
+# define Z_ARG(args) ()
+# endif
+#endif
+
+/* The following definitions for FAR are needed only for MSDOS mixed
+ * model programming (small or medium model with some far allocations).
+ * This was tested only with MSC; for other MSDOS compilers you may have
+ * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
+ * just define FAR to be empty.
+ */
+#ifdef SYS16BIT
+# if defined(M_I86SM) || defined(M_I86MM)
+ /* MSC small or medium model */
+# define SMALL_MEDIUM
+# ifdef _MSC_VER
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+# if (defined(__SMALL__) || defined(__MEDIUM__))
+ /* Turbo C small or medium model */
+# define SMALL_MEDIUM
+# ifdef __BORLANDC__
+# define FAR _far
+# else
+# define FAR far
+# endif
+# endif
+#endif
+
+#if defined(WINDOWS) || defined(WIN32)
+ /* If building or using zlib as a DLL, define ZLIB_DLL.
+ * This is not mandatory, but it offers a little performance increase.
+ */
+# ifdef ZLIB_DLL
+# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
+# ifdef ZLIB_INTERNAL
+# define ZEXTERN extern __declspec(dllexport)
+# else
+# define ZEXTERN extern __declspec(dllimport)
+# endif
+# endif
+# endif /* ZLIB_DLL */
+ /* If building or using zlib with the WINAPI/WINAPIV calling convention,
+ * define ZLIB_WINAPI.
+ * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
+ */
+# ifdef ZLIB_WINAPI
+# ifdef FAR
+# undef FAR
+# endif
+# include <windows.h>
+ /* No need for _export, use ZLIB.DEF instead. */
+ /* For complete Windows compatibility, use WINAPI, not __stdcall. */
+# define ZEXPORT WINAPI
+# ifdef WIN32
+# define ZEXPORTVA WINAPIV
+# else
+# define ZEXPORTVA FAR CDECL
+# endif
+# endif
+#endif
+
+#if defined (__BEOS__)
+# ifdef ZLIB_DLL
+# ifdef ZLIB_INTERNAL
+# define ZEXPORT __declspec(dllexport)
+# define ZEXPORTVA __declspec(dllexport)
+# else
+# define ZEXPORT __declspec(dllimport)
+# define ZEXPORTVA __declspec(dllimport)
+# endif
+# endif
+#endif
+
+#ifndef ZEXTERN
+# define ZEXTERN extern
+#endif
+#ifndef ZEXPORT
+# define ZEXPORT
+#endif
+#ifndef ZEXPORTVA
+# define ZEXPORTVA
+#endif
+
+#ifndef FAR
+# define FAR
+#endif
+
+#if !defined(__MACTYPES__)
+typedef unsigned char Byte; /* 8 bits */
+#endif
+typedef unsigned int uInt; /* 16 bits or more */
+typedef unsigned long uLong; /* 32 bits or more */
+
+#ifdef SMALL_MEDIUM
+ /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
+# define Bytef Byte FAR
+#else
+ typedef Byte FAR Bytef;
+#endif
+typedef char FAR charf;
+typedef int FAR intf;
+typedef uInt FAR uIntf;
+typedef uLong FAR uLongf;
+
+#ifdef STDC
+ typedef void const *voidpc;
+ typedef void FAR *voidpf;
+ typedef void *voidp;
+#else
+ typedef Byte const *voidpc;
+ typedef Byte FAR *voidpf;
+ typedef Byte *voidp;
+#endif
+
+#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
+# include <limits.h>
+# if (UINT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned
+# elif (ULONG_MAX == 0xffffffffUL)
+# define Z_U4 unsigned long
+# elif (USHRT_MAX == 0xffffffffUL)
+# define Z_U4 unsigned short
+# endif
+#endif
+
+#ifdef Z_U4
+ typedef Z_U4 z_crc_t;
+#else
+ typedef unsigned long z_crc_t;
+#endif
+
+#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_UNISTD_H
+#endif
+
+#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
+# define Z_HAVE_STDARG_H
+#endif
+
+#ifdef STDC
+# ifndef Z_SOLO
+# include <sys/types.h> /* for off_t */
+# endif
+#endif
+
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# ifndef Z_SOLO
+# include <stdarg.h> /* for va_list */
+# endif
+#endif
+
+#ifdef _WIN32
+# ifndef Z_SOLO
+# include <stddef.h> /* for wchar_t */
+# endif
+#endif
+
+/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
+ * "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
+ * though the former does not conform to the LFS document), but considering
+ * both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
+ * equivalently requesting no 64-bit operations
+ */
+#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
+# undef _LARGEFILE64_SOURCE
+#endif
+
+#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
+# define Z_HAVE_UNISTD_H
+#endif
+#ifndef Z_SOLO
+# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
+# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
+# ifdef VMS
+# include <unixio.h> /* for off_t */
+# endif
+# ifndef z_off_t
+# define z_off_t off_t
+# endif
+# endif
+#endif
+
+#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
+# define Z_LFS64
+#endif
+
+#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
+# define Z_LARGE64
+#endif
+
+#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
+# define Z_WANT64
+#endif
+
+#if !defined(SEEK_SET) && !defined(Z_SOLO)
+# define SEEK_SET 0 /* Seek from beginning of file. */
+# define SEEK_CUR 1 /* Seek from current position. */
+# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
+#endif
+
+#ifndef z_off_t
+# define z_off_t long
+#endif
+
+#if !defined(_WIN32) && defined(Z_LARGE64)
+# define z_off64_t off64_t
+#else
+# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
+# define z_off64_t __int64
+# else
+# define z_off64_t z_off_t
+# endif
+#endif
+
+/* MVS linker does not support external names larger than 8 bytes */
+#if defined(__MVS__)
+ #pragma map(deflateInit_,"DEIN")
+ #pragma map(deflateInit2_,"DEIN2")
+ #pragma map(deflateEnd,"DEEND")
+ #pragma map(deflateBound,"DEBND")
+ #pragma map(inflateInit_,"ININ")
+ #pragma map(inflateInit2_,"ININ2")
+ #pragma map(inflateEnd,"INEND")
+ #pragma map(inflateSync,"INSY")
+ #pragma map(inflateSetDictionary,"INSEDI")
+ #pragma map(compressBound,"CMBND")
+ #pragma map(inflate_table,"INTABL")
+ #pragma map(inflate_fast,"INFA")
+ #pragma map(inflate_copyright,"INCOPY")
+#endif
+
+#endif /* ZCONF_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3 b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3
new file mode 100644
index 000000000..bda4eb073
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3
@@ -0,0 +1,149 @@
+.TH ZLIB 3 "15 Jan 2017"
+.SH NAME
+zlib \- compression/decompression library
+.SH SYNOPSIS
+[see
+.I zlib.h
+for full description]
+.SH DESCRIPTION
+The
+.I zlib
+library is a general purpose data compression library.
+The code is thread safe, assuming that the standard library functions
+used are thread safe, such as memory allocation routines.
+It provides in-memory compression and decompression functions,
+including integrity checks of the uncompressed data.
+This version of the library supports only one compression method (deflation)
+but other algorithms may be added later
+with the same stream interface.
+.LP
+Compression can be done in a single step if the buffers are large enough
+or can be done by repeated calls of the compression function.
+In the latter case,
+the application must provide more input and/or consume the output
+(providing more output space) before each call.
+.LP
+The library also supports reading and writing files in
+.IR gzip (1)
+(.gz) format
+with an interface similar to that of stdio.
+.LP
+The library does not install any signal handler.
+The decoder checks the consistency of the compressed data,
+so the library should never crash even in the case of corrupted input.
+.LP
+All functions of the compression library are documented in the file
+.IR zlib.h .
+The distribution source includes examples of use of the library
+in the files
+.I test/example.c
+and
+.IR test/minigzip.c,
+as well as other examples in the
+.IR examples/
+directory.
+.LP
+Changes to this version are documented in the file
+.I ChangeLog
+that accompanies the source.
+.LP
+.I zlib
+is built in to many languages and operating systems, including but not limited to
+Java, Python, .NET, PHP, Perl, Ruby, Swift, and Go.
+.LP
+An experimental package to read and write files in the .zip format,
+written on top of
+.I zlib
+by Gilles Vollant (info@winimage.com),
+is available at:
+.IP
+http://www.winimage.com/zLibDll/minizip.html
+and also in the
+.I contrib/minizip
+directory of the main
+.I zlib
+source distribution.
+.SH "SEE ALSO"
+The
+.I zlib
+web site can be found at:
+.IP
+http://zlib.net/
+.LP
+The data format used by the
+.I zlib
+library is described by RFC
+(Request for Comments) 1950 to 1952 in the files:
+.IP
+http://tools.ietf.org/html/rfc1950 (for the zlib header and trailer format)
+.br
+http://tools.ietf.org/html/rfc1951 (for the deflate compressed data format)
+.br
+http://tools.ietf.org/html/rfc1952 (for the gzip header and trailer format)
+.LP
+Mark Nelson wrote an article about
+.I zlib
+for the Jan. 1997 issue of Dr. Dobb's Journal;
+a copy of the article is available at:
+.IP
+http://marknelson.us/1997/01/01/zlib-engine/
+.SH "REPORTING PROBLEMS"
+Before reporting a problem,
+please check the
+.I zlib
+web site to verify that you have the latest version of
+.IR zlib ;
+otherwise,
+obtain the latest version and see if the problem still exists.
+Please read the
+.I zlib
+FAQ at:
+.IP
+http://zlib.net/zlib_faq.html
+.LP
+before asking for help.
+Send questions and/or comments to zlib@gzip.org,
+or (for the Windows DLL version) to Gilles Vollant (info@winimage.com).
+.SH AUTHORS AND LICENSE
+Version 1.2.11
+.LP
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+.LP
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+.LP
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+.LP
+.nr step 1 1
+.IP \n[step]. 3
+The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software
+in a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+.IP \n+[step].
+Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+.IP \n+[step].
+This notice may not be removed or altered from any source distribution.
+.LP
+Jean-loup Gailly Mark Adler
+.br
+jloup@gzip.org madler@alumni.caltech.edu
+.LP
+The deflate format used by
+.I zlib
+was defined by Phil Katz.
+The deflate and
+.I zlib
+specifications were written by L. Peter Deutsch.
+Thanks to all the people who reported problems and suggested various
+improvements in
+.IR zlib ;
+who are too numerous to cite here.
+.LP
+UNIX manual page by R. P. C. Rodgers,
+U.S. National Library of Medicine (rodgers@nlm.nih.gov).
+.\" end of man page
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3.pdf b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3.pdf
new file mode 100644
index 000000000..6fa519c5b
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.3.pdf
Binary files differ
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.h
new file mode 100644
index 000000000..f09cdaf1e
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.h
@@ -0,0 +1,1912 @@
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.11, January 15th, 2017
+
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+
+ The data format used by the zlib library is described by RFCs (Request for
+ Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
+ (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
+*/
+
+#ifndef ZLIB_H
+#define ZLIB_H
+
+#include "zconf.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ZLIB_VERSION "1.2.11"
+#define ZLIB_VERNUM 0x12b0
+#define ZLIB_VER_MAJOR 1
+#define ZLIB_VER_MINOR 2
+#define ZLIB_VER_REVISION 11
+#define ZLIB_VER_SUBREVISION 0
+
+/*
+ The 'zlib' compression library provides in-memory compression and
+ decompression functions, including integrity checks of the uncompressed data.
+ This version of the library supports only one compression method (deflation)
+ but other algorithms will be added later and will have the same stream
+ interface.
+
+ Compression can be done in a single step if the buffers are large enough,
+ or can be done by repeated calls of the compression function. In the latter
+ case, the application must provide more input and/or consume the output
+ (providing more output space) before each call.
+
+ The compressed data format used by default by the in-memory functions is
+ the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
+ around a deflate stream, which is itself documented in RFC 1951.
+
+ The library also supports reading and writing files in gzip (.gz) format
+ with an interface similar to that of stdio using the functions that start
+ with "gz". The gzip format is different from the zlib format. gzip is a
+ gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
+
+ This library can optionally read and write gzip and raw deflate streams in
+ memory as well.
+
+ The zlib format was designed to be compact and fast for use in memory
+ and on communications channels. The gzip format was designed for single-
+ file compression on file systems, has a larger header than zlib to maintain
+ directory information, and uses a different, slower check method than zlib.
+
+ The library does not install any signal handler. The decoder checks
+ the consistency of the compressed data, so the library should never crash
+ even in the case of corrupted input.
+*/
+
+typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
+typedef void (*free_func) OF((voidpf opaque, voidpf address));
+
+struct internal_state;
+
+typedef struct z_stream_s {
+ z_const Bytef *next_in; /* next input byte */
+ uInt avail_in; /* number of bytes available at next_in */
+ uLong total_in; /* total number of input bytes read so far */
+
+ Bytef *next_out; /* next output byte will go here */
+ uInt avail_out; /* remaining free space at next_out */
+ uLong total_out; /* total number of bytes output so far */
+
+ z_const char *msg; /* last error message, NULL if no error */
+ struct internal_state FAR *state; /* not visible by applications */
+
+ alloc_func zalloc; /* used to allocate the internal state */
+ free_func zfree; /* used to free the internal state */
+ voidpf opaque; /* private data object passed to zalloc and zfree */
+
+ int data_type; /* best guess about the data type: binary or text
+ for deflate, or the decoding state for inflate */
+ uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */
+ uLong reserved; /* reserved for future use */
+} z_stream;
+
+typedef z_stream FAR *z_streamp;
+
+/*
+ gzip header information passed to and from zlib routines. See RFC 1952
+ for more details on the meanings of these fields.
+*/
+typedef struct gz_header_s {
+ int text; /* true if compressed data believed to be text */
+ uLong time; /* modification time */
+ int xflags; /* extra flags (not used when writing a gzip file) */
+ int os; /* operating system */
+ Bytef *extra; /* pointer to extra field or Z_NULL if none */
+ uInt extra_len; /* extra field length (valid if extra != Z_NULL) */
+ uInt extra_max; /* space at extra (only when reading header) */
+ Bytef *name; /* pointer to zero-terminated file name or Z_NULL */
+ uInt name_max; /* space at name (only when reading header) */
+ Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */
+ uInt comm_max; /* space at comment (only when reading header) */
+ int hcrc; /* true if there was or will be a header crc */
+ int done; /* true when done reading gzip header (not used
+ when writing a gzip file) */
+} gz_header;
+
+typedef gz_header FAR *gz_headerp;
+
+/*
+ The application must update next_in and avail_in when avail_in has dropped
+ to zero. It must update next_out and avail_out when avail_out has dropped
+ to zero. The application must initialize zalloc, zfree and opaque before
+ calling the init function. All other fields are set by the compression
+ library and must not be updated by the application.
+
+ The opaque value provided by the application will be passed as the first
+ parameter for calls of zalloc and zfree. This can be useful for custom
+ memory management. The compression library attaches no meaning to the
+ opaque value.
+
+ zalloc must return Z_NULL if there is not enough memory for the object.
+ If zlib is used in a multi-threaded application, zalloc and zfree must be
+ thread safe. In that case, zlib is thread-safe. When zalloc and zfree are
+ Z_NULL on entry to the initialization function, they are set to internal
+ routines that use the standard library functions malloc() and free().
+
+ On 16-bit systems, the functions zalloc and zfree must be able to allocate
+ exactly 65536 bytes, but will not be required to allocate more than this if
+ the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers
+ returned by zalloc for objects of exactly 65536 bytes *must* have their
+ offset normalized to zero. The default allocation function provided by this
+ library ensures this (see zutil.c). To reduce memory requirements and avoid
+ any allocation of 64K objects, at the expense of compression ratio, compile
+ the library with -DMAX_WBITS=14 (see zconf.h).
+
+ The fields total_in and total_out can be used for statistics or progress
+ reports. After compression, total_in holds the total size of the
+ uncompressed data and may be saved for use by the decompressor (particularly
+ if the decompressor wants to decompress everything in a single step).
+*/
+
+ /* constants */
+
+#define Z_NO_FLUSH 0
+#define Z_PARTIAL_FLUSH 1
+#define Z_SYNC_FLUSH 2
+#define Z_FULL_FLUSH 3
+#define Z_FINISH 4
+#define Z_BLOCK 5
+#define Z_TREES 6
+/* Allowed flush values; see deflate() and inflate() below for details */
+
+#define Z_OK 0
+#define Z_STREAM_END 1
+#define Z_NEED_DICT 2
+#define Z_ERRNO (-1)
+#define Z_STREAM_ERROR (-2)
+#define Z_DATA_ERROR (-3)
+#define Z_MEM_ERROR (-4)
+#define Z_BUF_ERROR (-5)
+#define Z_VERSION_ERROR (-6)
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+
+#define Z_NO_COMPRESSION 0
+#define Z_BEST_SPEED 1
+#define Z_BEST_COMPRESSION 9
+#define Z_DEFAULT_COMPRESSION (-1)
+/* compression levels */
+
+#define Z_FILTERED 1
+#define Z_HUFFMAN_ONLY 2
+#define Z_RLE 3
+#define Z_FIXED 4
+#define Z_DEFAULT_STRATEGY 0
+/* compression strategy; see deflateInit2() below for details */
+
+#define Z_BINARY 0
+#define Z_TEXT 1
+#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */
+#define Z_UNKNOWN 2
+/* Possible values of the data_type field for deflate() */
+
+#define Z_DEFLATED 8
+/* The deflate compression method (the only one supported in this version) */
+
+#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
+
+#define zlib_version zlibVersion()
+/* for compatibility with versions < 1.0.2 */
+
+
+ /* basic functions */
+
+ZEXTERN const char * ZEXPORT zlibVersion OF((void));
+/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
+ If the first character differs, the library code actually used is not
+ compatible with the zlib.h header file used by the application. This check
+ is automatically made by deflateInit and inflateInit.
+ */
+
+/*
+ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
+
+ Initializes the internal stream state for compression. The fields
+ zalloc, zfree and opaque must be initialized before by the caller. If
+ zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
+ allocation functions.
+
+ The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
+ 1 gives best speed, 9 gives best compression, 0 gives no compression at all
+ (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION
+ requests a default compromise between speed and compression (currently
+ equivalent to level 6).
+
+ deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_STREAM_ERROR if level is not a valid compression level, or
+ Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
+ with the version assumed by the caller (ZLIB_VERSION). msg is set to null
+ if there is no error message. deflateInit does not perform any compression:
+ this will be done by deflate().
+*/
+
+
+ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
+/*
+ deflate compresses as much data as possible, and stops when the input
+ buffer becomes empty or the output buffer becomes full. It may introduce
+ some output latency (reading input without producing any output) except when
+ forced to flush.
+
+ The detailed semantics are as follows. deflate performs one or both of the
+ following actions:
+
+ - Compress more input starting at next_in and update next_in and avail_in
+ accordingly. If not all input can be processed (because there is not
+ enough room in the output buffer), next_in and avail_in are updated and
+ processing will resume at this point for the next call of deflate().
+
+ - Generate more output starting at next_out and update next_out and avail_out
+ accordingly. This action is forced if the parameter flush is non zero.
+ Forcing flush frequently degrades the compression ratio, so this parameter
+ should be set only when necessary. Some output may be provided even if
+ flush is zero.
+
+ Before the call of deflate(), the application should ensure that at least
+ one of the actions is possible, by providing more input and/or consuming more
+ output, and updating avail_in or avail_out accordingly; avail_out should
+ never be zero before the call. The application can consume the compressed
+ output when it wants, for example when the output buffer is full (avail_out
+ == 0), or after each call of deflate(). If deflate returns Z_OK and with
+ zero avail_out, it must be called again after making room in the output
+ buffer because there might be more output pending. See deflatePending(),
+ which can be used if desired to determine whether or not there is more ouput
+ in that case.
+
+ Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
+ decide how much data to accumulate before producing output, in order to
+ maximize compression.
+
+ If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
+ flushed to the output buffer and the output is aligned on a byte boundary, so
+ that the decompressor can get all input data available so far. (In
+ particular avail_in is zero after the call if enough output space has been
+ provided before the call.) Flushing may degrade compression for some
+ compression algorithms and so it should be used only when necessary. This
+ completes the current deflate block and follows it with an empty stored block
+ that is three bits plus filler bits to the next byte, followed by four bytes
+ (00 00 ff ff).
+
+ If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
+ output buffer, but the output is not aligned to a byte boundary. All of the
+ input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
+ This completes the current deflate block and follows it with an empty fixed
+ codes block that is 10 bits long. This assures that enough bytes are output
+ in order for the decompressor to finish the block before the empty fixed
+ codes block.
+
+ If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
+ for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
+ seven bits of the current block are held to be written as the next byte after
+ the next deflate block is completed. In this case, the decompressor may not
+ be provided enough bits at this point in order to complete decompression of
+ the data provided so far to the compressor. It may need to wait for the next
+ block to be emitted. This is for advanced applications that need to control
+ the emission of deflate blocks.
+
+ If flush is set to Z_FULL_FLUSH, all output is flushed as with
+ Z_SYNC_FLUSH, and the compression state is reset so that decompression can
+ restart from this point if previous compressed data has been damaged or if
+ random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
+ compression.
+
+ If deflate returns with avail_out == 0, this function must be called again
+ with the same value of the flush parameter and more output space (updated
+ avail_out), until the flush is complete (deflate returns with non-zero
+ avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
+ avail_out is greater than six to avoid repeated flush markers due to
+ avail_out == 0 on return.
+
+ If the parameter flush is set to Z_FINISH, pending input is processed,
+ pending output is flushed and deflate returns with Z_STREAM_END if there was
+ enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this
+ function must be called again with Z_FINISH and more output space (updated
+ avail_out) but no more input data, until it returns with Z_STREAM_END or an
+ error. After deflate has returned Z_STREAM_END, the only possible operations
+ on the stream are deflateReset or deflateEnd.
+
+ Z_FINISH can be used in the first deflate call after deflateInit if all the
+ compression is to be done in a single step. In order to complete in one
+ call, avail_out must be at least the value returned by deflateBound (see
+ below). Then deflate is guaranteed to return Z_STREAM_END. If not enough
+ output space is provided, deflate will not return Z_STREAM_END, and it must
+ be called again as described above.
+
+ deflate() sets strm->adler to the Adler-32 checksum of all input read
+ so far (that is, total_in bytes). If a gzip stream is being generated, then
+ strm->adler will be the CRC-32 checksum of the input read so far. (See
+ deflateInit2 below.)
+
+ deflate() may update strm->data_type if it can make a good guess about
+ the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is
+ considered binary. This field is only for information purposes and does not
+ affect the compression algorithm in any manner.
+
+ deflate() returns Z_OK if some progress has been made (more input
+ processed or more output produced), Z_STREAM_END if all input has been
+ consumed and all output has been produced (only when flush is set to
+ Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
+ if next_in or next_out was Z_NULL or the state was inadvertently written over
+ by the application), or Z_BUF_ERROR if no progress is possible (for example
+ avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and
+ deflate() can be called again with more input and more output space to
+ continue compressing.
+*/
+
+
+ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
+/*
+ All dynamically allocated data structures for this stream are freed.
+ This function discards any unprocessed input and does not flush any pending
+ output.
+
+ deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
+ stream state was inconsistent, Z_DATA_ERROR if the stream was freed
+ prematurely (some input or output was discarded). In the error case, msg
+ may be set but then points to a static string (which must not be
+ deallocated).
+*/
+
+
+/*
+ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
+
+ Initializes the internal stream state for decompression. The fields
+ next_in, avail_in, zalloc, zfree and opaque must be initialized before by
+ the caller. In the current version of inflate, the provided input is not
+ read or consumed. The allocation of a sliding window will be deferred to
+ the first call of inflate (if the decompression does not complete on the
+ first call). If zalloc and zfree are set to Z_NULL, inflateInit updates
+ them to use default allocation functions.
+
+ inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
+ version assumed by the caller, or Z_STREAM_ERROR if the parameters are
+ invalid, such as a null pointer to the structure. msg is set to null if
+ there is no error message. inflateInit does not perform any decompression.
+ Actual decompression will be done by inflate(). So next_in, and avail_in,
+ next_out, and avail_out are unused and unchanged. The current
+ implementation of inflateInit() does not process any header information --
+ that is deferred until inflate() is called.
+*/
+
+
+ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
+/*
+ inflate decompresses as much data as possible, and stops when the input
+ buffer becomes empty or the output buffer becomes full. It may introduce
+ some output latency (reading input without producing any output) except when
+ forced to flush.
+
+ The detailed semantics are as follows. inflate performs one or both of the
+ following actions:
+
+ - Decompress more input starting at next_in and update next_in and avail_in
+ accordingly. If not all input can be processed (because there is not
+ enough room in the output buffer), then next_in and avail_in are updated
+ accordingly, and processing will resume at this point for the next call of
+ inflate().
+
+ - Generate more output starting at next_out and update next_out and avail_out
+ accordingly. inflate() provides as much output as possible, until there is
+ no more input data or no more space in the output buffer (see below about
+ the flush parameter).
+
+ Before the call of inflate(), the application should ensure that at least
+ one of the actions is possible, by providing more input and/or consuming more
+ output, and updating the next_* and avail_* values accordingly. If the
+ caller of inflate() does not provide both available input and available
+ output space, it is possible that there will be no progress made. The
+ application can consume the uncompressed output when it wants, for example
+ when the output buffer is full (avail_out == 0), or after each call of
+ inflate(). If inflate returns Z_OK and with zero avail_out, it must be
+ called again after making room in the output buffer because there might be
+ more output pending.
+
+ The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
+ Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much
+ output as possible to the output buffer. Z_BLOCK requests that inflate()
+ stop if and when it gets to the next deflate block boundary. When decoding
+ the zlib or gzip format, this will cause inflate() to return immediately
+ after the header and before the first block. When doing a raw inflate,
+ inflate() will go ahead and process the first block, and will return when it
+ gets to the end of that block, or when it runs out of data.
+
+ The Z_BLOCK option assists in appending to or combining deflate streams.
+ To assist in this, on return inflate() always sets strm->data_type to the
+ number of unused bits in the last byte taken from strm->next_in, plus 64 if
+ inflate() is currently decoding the last block in the deflate stream, plus
+ 128 if inflate() returned immediately after decoding an end-of-block code or
+ decoding the complete header up to just before the first byte of the deflate
+ stream. The end-of-block will not be indicated until all of the uncompressed
+ data from that block has been written to strm->next_out. The number of
+ unused bits may in general be greater than seven, except when bit 7 of
+ data_type is set, in which case the number of unused bits will be less than
+ eight. data_type is set as noted here every time inflate() returns for all
+ flush options, and so can be used to determine the amount of currently
+ consumed input in bits.
+
+ The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
+ end of each deflate block header is reached, before any actual data in that
+ block is decoded. This allows the caller to determine the length of the
+ deflate block header for later use in random access within a deflate block.
+ 256 is added to the value of strm->data_type when inflate() returns
+ immediately after reaching the end of the deflate block header.
+
+ inflate() should normally be called until it returns Z_STREAM_END or an
+ error. However if all decompression is to be performed in a single step (a
+ single call of inflate), the parameter flush should be set to Z_FINISH. In
+ this case all pending input is processed and all pending output is flushed;
+ avail_out must be large enough to hold all of the uncompressed data for the
+ operation to complete. (The size of the uncompressed data may have been
+ saved by the compressor for this purpose.) The use of Z_FINISH is not
+ required to perform an inflation in one step. However it may be used to
+ inform inflate that a faster approach can be used for the single inflate()
+ call. Z_FINISH also informs inflate to not maintain a sliding window if the
+ stream completes, which reduces inflate's memory footprint. If the stream
+ does not complete, either because not all of the stream is provided or not
+ enough output space is provided, then a sliding window will be allocated and
+ inflate() can be called again to continue the operation as if Z_NO_FLUSH had
+ been used.
+
+ In this implementation, inflate() always flushes as much output as
+ possible to the output buffer, and always uses the faster approach on the
+ first call. So the effects of the flush parameter in this implementation are
+ on the return value of inflate() as noted below, when inflate() returns early
+ when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
+ memory for a sliding window when Z_FINISH is used.
+
+ If a preset dictionary is needed after this call (see inflateSetDictionary
+ below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
+ chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
+ strm->adler to the Adler-32 checksum of all output produced so far (that is,
+ total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
+ below. At the end of the stream, inflate() checks that its computed Adler-32
+ checksum is equal to that saved by the compressor and returns Z_STREAM_END
+ only if the checksum is correct.
+
+ inflate() can decompress and check either zlib-wrapped or gzip-wrapped
+ deflate data. The header type is detected automatically, if requested when
+ initializing with inflateInit2(). Any information contained in the gzip
+ header is not retained unless inflateGetHeader() is used. When processing
+ gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
+ produced so far. The CRC-32 is checked against the gzip trailer, as is the
+ uncompressed length, modulo 2^32.
+
+ inflate() returns Z_OK if some progress has been made (more input processed
+ or more output produced), Z_STREAM_END if the end of the compressed data has
+ been reached and all uncompressed output has been produced, Z_NEED_DICT if a
+ preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
+ corrupted (input stream not conforming to the zlib format or incorrect check
+ value, in which case strm->msg points to a string with a more specific
+ error), Z_STREAM_ERROR if the stream structure was inconsistent (for example
+ next_in or next_out was Z_NULL, or the state was inadvertently written over
+ by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR
+ if no progress was possible or if there was not enough room in the output
+ buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
+ inflate() can be called again with more input and more output space to
+ continue decompressing. If Z_DATA_ERROR is returned, the application may
+ then call inflateSync() to look for a good compression block if a partial
+ recovery of the data is to be attempted.
+*/
+
+
+ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
+/*
+ All dynamically allocated data structures for this stream are freed.
+ This function discards any unprocessed input and does not flush any pending
+ output.
+
+ inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state
+ was inconsistent.
+*/
+
+
+ /* Advanced functions */
+
+/*
+ The following functions are needed only in some special applications.
+*/
+
+/*
+ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
+ int level,
+ int method,
+ int windowBits,
+ int memLevel,
+ int strategy));
+
+ This is another version of deflateInit with more compression options. The
+ fields next_in, zalloc, zfree and opaque must be initialized before by the
+ caller.
+
+ The method parameter is the compression method. It must be Z_DEFLATED in
+ this version of the library.
+
+ The windowBits parameter is the base two logarithm of the window size
+ (the size of the history buffer). It should be in the range 8..15 for this
+ version of the library. Larger values of this parameter result in better
+ compression at the expense of memory usage. The default value is 15 if
+ deflateInit is used instead.
+
+ For the current implementation of deflate(), a windowBits value of 8 (a
+ window size of 256 bytes) is not supported. As a result, a request for 8
+ will result in 9 (a 512-byte window). In that case, providing 8 to
+ inflateInit2() will result in an error when the zlib header with 9 is
+ checked against the initialization of inflate(). The remedy is to not use 8
+ with deflateInit2() with this initialization, or at least in that case use 9
+ with inflateInit2().
+
+ windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
+ determines the window size. deflate() will then generate raw deflate data
+ with no zlib header or trailer, and will not compute a check value.
+
+ windowBits can also be greater than 15 for optional gzip encoding. Add
+ 16 to windowBits to write a simple gzip header and trailer around the
+ compressed data instead of a zlib wrapper. The gzip header will have no
+ file name, no extra data, no comment, no modification time (set to zero), no
+ header crc, and the operating system will be set to the appropriate value,
+ if the operating system was determined at compile time. If a gzip stream is
+ being written, strm->adler is a CRC-32 instead of an Adler-32.
+
+ For raw deflate or gzip encoding, a request for a 256-byte window is
+ rejected as invalid, since only the zlib header provides a means of
+ transmitting the window size to the decompressor.
+
+ The memLevel parameter specifies how much memory should be allocated
+ for the internal compression state. memLevel=1 uses minimum memory but is
+ slow and reduces compression ratio; memLevel=9 uses maximum memory for
+ optimal speed. The default value is 8. See zconf.h for total memory usage
+ as a function of windowBits and memLevel.
+
+ The strategy parameter is used to tune the compression algorithm. Use the
+ value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
+ filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
+ string match), or Z_RLE to limit match distances to one (run-length
+ encoding). Filtered data consists mostly of small values with a somewhat
+ random distribution. In this case, the compression algorithm is tuned to
+ compress them better. The effect of Z_FILTERED is to force more Huffman
+ coding and less string matching; it is somewhat intermediate between
+ Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as
+ fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The
+ strategy parameter only affects the compression ratio but not the
+ correctness of the compressed output even if it is not set appropriately.
+ Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
+ decoder for special applications.
+
+ deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
+ method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
+ incompatible with the version assumed by the caller (ZLIB_VERSION). msg is
+ set to null if there is no error message. deflateInit2 does not perform any
+ compression: this will be done by deflate().
+*/
+
+ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
+ const Bytef *dictionary,
+ uInt dictLength));
+/*
+ Initializes the compression dictionary from the given byte sequence
+ without producing any compressed output. When using the zlib format, this
+ function must be called immediately after deflateInit, deflateInit2 or
+ deflateReset, and before any call of deflate. When doing raw deflate, this
+ function must be called either before any call of deflate, or immediately
+ after the completion of a deflate block, i.e. after all input has been
+ consumed and all output has been delivered when using any of the flush
+ options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The
+ compressor and decompressor must use exactly the same dictionary (see
+ inflateSetDictionary).
+
+ The dictionary should consist of strings (byte sequences) that are likely
+ to be encountered later in the data to be compressed, with the most commonly
+ used strings preferably put towards the end of the dictionary. Using a
+ dictionary is most useful when the data to be compressed is short and can be
+ predicted with good accuracy; the data can then be compressed better than
+ with the default empty dictionary.
+
+ Depending on the size of the compression data structures selected by
+ deflateInit or deflateInit2, a part of the dictionary may in effect be
+ discarded, for example if the dictionary is larger than the window size
+ provided in deflateInit or deflateInit2. Thus the strings most likely to be
+ useful should be put at the end of the dictionary, not at the front. In
+ addition, the current implementation of deflate will use at most the window
+ size minus 262 bytes of the provided dictionary.
+
+ Upon return of this function, strm->adler is set to the Adler-32 value
+ of the dictionary; the decompressor may later use this value to determine
+ which dictionary has been used by the compressor. (The Adler-32 value
+ applies to the whole dictionary even if only a subset of the dictionary is
+ actually used by the compressor.) If a raw deflate was requested, then the
+ Adler-32 value is not computed and strm->adler is not set.
+
+ deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
+ parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
+ inconsistent (for example if deflate has already been called for this stream
+ or if not at a block boundary for raw deflate). deflateSetDictionary does
+ not perform any compression: this will be done by deflate().
+*/
+
+ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm,
+ Bytef *dictionary,
+ uInt *dictLength));
+/*
+ Returns the sliding dictionary being maintained by deflate. dictLength is
+ set to the number of bytes in the dictionary, and that many bytes are copied
+ to dictionary. dictionary must have enough space, where 32768 bytes is
+ always enough. If deflateGetDictionary() is called with dictionary equal to
+ Z_NULL, then only the dictionary length is returned, and nothing is copied.
+ Similary, if dictLength is Z_NULL, then it is not set.
+
+ deflateGetDictionary() may return a length less than the window size, even
+ when more than the window size in input has been provided. It may return up
+ to 258 bytes less in that case, due to how zlib's implementation of deflate
+ manages the sliding window and lookahead for matches, where matches can be
+ up to 258 bytes long. If the application needs the last window-size bytes of
+ input, then that would need to be saved by the application outside of zlib.
+
+ deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
+ stream state is inconsistent.
+*/
+
+ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
+ z_streamp source));
+/*
+ Sets the destination stream as a complete copy of the source stream.
+
+ This function can be useful when several compression strategies will be
+ tried, for example when there are several ways of pre-processing the input
+ data with a filter. The streams that will be discarded should then be freed
+ by calling deflateEnd. Note that deflateCopy duplicates the internal
+ compression state which can be quite large, so this strategy is slow and can
+ consume lots of memory.
+
+ deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
+ enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
+ (such as zalloc being Z_NULL). msg is left unchanged in both source and
+ destination.
+*/
+
+ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
+/*
+ This function is equivalent to deflateEnd followed by deflateInit, but
+ does not free and reallocate the internal compression state. The stream
+ will leave the compression level and any other attributes that may have been
+ set unchanged.
+
+ deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent (such as zalloc or state being Z_NULL).
+*/
+
+ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
+ int level,
+ int strategy));
+/*
+ Dynamically update the compression level and compression strategy. The
+ interpretation of level and strategy is as in deflateInit2(). This can be
+ used to switch between compression and straight copy of the input data, or
+ to switch to a different kind of input data requiring a different strategy.
+ If the compression approach (which is a function of the level) or the
+ strategy is changed, and if any input has been consumed in a previous
+ deflate() call, then the input available so far is compressed with the old
+ level and strategy using deflate(strm, Z_BLOCK). There are three approaches
+ for the compression levels 0, 1..3, and 4..9 respectively. The new level
+ and strategy will take effect at the next call of deflate().
+
+ If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
+ not have enough output space to complete, then the parameter change will not
+ take effect. In this case, deflateParams() can be called again with the
+ same parameters and more output space to try again.
+
+ In order to assure a change in the parameters on the first try, the
+ deflate stream should be flushed using deflate() with Z_BLOCK or other flush
+ request until strm.avail_out is not zero, before calling deflateParams().
+ Then no more input data should be provided before the deflateParams() call.
+ If this is done, the old level and strategy will be applied to the data
+ compressed before deflateParams(), and the new level and strategy will be
+ applied to the the data compressed after deflateParams().
+
+ deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
+ state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if
+ there was not enough output space to complete the compression of the
+ available input data before a change in the strategy or approach. Note that
+ in the case of a Z_BUF_ERROR, the parameters are not changed. A return
+ value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be
+ retried with more output space.
+*/
+
+ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
+ int good_length,
+ int max_lazy,
+ int nice_length,
+ int max_chain));
+/*
+ Fine tune deflate's internal compression parameters. This should only be
+ used by someone who understands the algorithm used by zlib's deflate for
+ searching for the best matching string, and even then only by the most
+ fanatic optimizer trying to squeeze out the last compressed bit for their
+ specific input data. Read the deflate.c source code for the meaning of the
+ max_lazy, good_length, nice_length, and max_chain parameters.
+
+ deflateTune() can be called after deflateInit() or deflateInit2(), and
+ returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
+ */
+
+ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
+ uLong sourceLen));
+/*
+ deflateBound() returns an upper bound on the compressed size after
+ deflation of sourceLen bytes. It must be called after deflateInit() or
+ deflateInit2(), and after deflateSetHeader(), if used. This would be used
+ to allocate an output buffer for deflation in a single pass, and so would be
+ called before deflate(). If that first deflate() call is provided the
+ sourceLen input bytes, an output buffer allocated to the size returned by
+ deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
+ to return Z_STREAM_END. Note that it is possible for the compressed size to
+ be larger than the value returned by deflateBound() if flush options other
+ than Z_FINISH or Z_NO_FLUSH are used.
+*/
+
+ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
+ unsigned *pending,
+ int *bits));
+/*
+ deflatePending() returns the number of bytes and bits of output that have
+ been generated, but not yet provided in the available output. The bytes not
+ provided would be due to the available output space having being consumed.
+ The number of bits of output not provided are between 0 and 7, where they
+ await more bits to join them in order to fill out a full byte. If pending
+ or bits are Z_NULL, then those values are not set.
+
+ deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent.
+ */
+
+ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
+ int bits,
+ int value));
+/*
+ deflatePrime() inserts bits in the deflate output stream. The intent
+ is that this function is used to start off the deflate output with the bits
+ leftover from a previous deflate stream when appending to it. As such, this
+ function can only be used for raw deflate, and must be used before the first
+ deflate() call after a deflateInit2() or deflateReset(). bits must be less
+ than or equal to 16, and that many of the least significant bits of value
+ will be inserted in the output.
+
+ deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
+ room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
+ source stream state was inconsistent.
+*/
+
+ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
+ gz_headerp head));
+/*
+ deflateSetHeader() provides gzip header information for when a gzip
+ stream is requested by deflateInit2(). deflateSetHeader() may be called
+ after deflateInit2() or deflateReset() and before the first call of
+ deflate(). The text, time, os, extra field, name, and comment information
+ in the provided gz_header structure are written to the gzip header (xflag is
+ ignored -- the extra flags are set according to the compression level). The
+ caller must assure that, if not Z_NULL, name and comment are terminated with
+ a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
+ available there. If hcrc is true, a gzip header crc is included. Note that
+ the current versions of the command-line version of gzip (up through version
+ 1.3.x) do not support header crc's, and will report that it is a "multi-part
+ gzip file" and give up.
+
+ If deflateSetHeader is not used, the default gzip header has text false,
+ the time set to zero, and os set to 255, with no extra, name, or comment
+ fields. The gzip header is returned to the default state by deflateReset().
+
+ deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent.
+*/
+
+/*
+ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
+ int windowBits));
+
+ This is another version of inflateInit with an extra parameter. The
+ fields next_in, avail_in, zalloc, zfree and opaque must be initialized
+ before by the caller.
+
+ The windowBits parameter is the base two logarithm of the maximum window
+ size (the size of the history buffer). It should be in the range 8..15 for
+ this version of the library. The default value is 15 if inflateInit is used
+ instead. windowBits must be greater than or equal to the windowBits value
+ provided to deflateInit2() while compressing, or it must be equal to 15 if
+ deflateInit2() was not used. If a compressed stream with a larger window
+ size is given as input, inflate() will return with the error code
+ Z_DATA_ERROR instead of trying to allocate a larger window.
+
+ windowBits can also be zero to request that inflate use the window size in
+ the zlib header of the compressed stream.
+
+ windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
+ determines the window size. inflate() will then process raw deflate data,
+ not looking for a zlib or gzip header, not generating a check value, and not
+ looking for any check values for comparison at the end of the stream. This
+ is for use with other formats that use the deflate compressed data format
+ such as zip. Those formats provide their own check values. If a custom
+ format is developed using the raw deflate format for compressed data, it is
+ recommended that a check value such as an Adler-32 or a CRC-32 be applied to
+ the uncompressed data as is done in the zlib, gzip, and zip formats. For
+ most applications, the zlib format should be used as is. Note that comments
+ above on the use in deflateInit2() applies to the magnitude of windowBits.
+
+ windowBits can also be greater than 15 for optional gzip decoding. Add
+ 32 to windowBits to enable zlib and gzip decoding with automatic header
+ detection, or add 16 to decode only the gzip format (the zlib format will
+ return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a
+ CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see
+ below), inflate() will not automatically decode concatenated gzip streams.
+ inflate() will return Z_STREAM_END at the end of the gzip stream. The state
+ would need to be reset to continue decoding a subsequent gzip stream.
+
+ inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
+ version assumed by the caller, or Z_STREAM_ERROR if the parameters are
+ invalid, such as a null pointer to the structure. msg is set to null if
+ there is no error message. inflateInit2 does not perform any decompression
+ apart from possibly reading the zlib header if present: actual decompression
+ will be done by inflate(). (So next_in and avail_in may be modified, but
+ next_out and avail_out are unused and unchanged.) The current implementation
+ of inflateInit2() does not process any header information -- that is
+ deferred until inflate() is called.
+*/
+
+ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
+ const Bytef *dictionary,
+ uInt dictLength));
+/*
+ Initializes the decompression dictionary from the given uncompressed byte
+ sequence. This function must be called immediately after a call of inflate,
+ if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
+ can be determined from the Adler-32 value returned by that call of inflate.
+ The compressor and decompressor must use exactly the same dictionary (see
+ deflateSetDictionary). For raw inflate, this function can be called at any
+ time to set the dictionary. If the provided dictionary is smaller than the
+ window and there is already data in the window, then the provided dictionary
+ will amend what's there. The application must insure that the dictionary
+ that was used for compression is provided.
+
+ inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
+ parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
+ inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
+ expected one (incorrect Adler-32 value). inflateSetDictionary does not
+ perform any decompression: this will be done by subsequent calls of
+ inflate().
+*/
+
+ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,
+ Bytef *dictionary,
+ uInt *dictLength));
+/*
+ Returns the sliding dictionary being maintained by inflate. dictLength is
+ set to the number of bytes in the dictionary, and that many bytes are copied
+ to dictionary. dictionary must have enough space, where 32768 bytes is
+ always enough. If inflateGetDictionary() is called with dictionary equal to
+ Z_NULL, then only the dictionary length is returned, and nothing is copied.
+ Similary, if dictLength is Z_NULL, then it is not set.
+
+ inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
+ stream state is inconsistent.
+*/
+
+ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
+/*
+ Skips invalid compressed data until a possible full flush point (see above
+ for the description of deflate with Z_FULL_FLUSH) can be found, or until all
+ available input is skipped. No output is provided.
+
+ inflateSync searches for a 00 00 FF FF pattern in the compressed data.
+ All full flush points have this pattern, but not all occurrences of this
+ pattern are full flush points.
+
+ inflateSync returns Z_OK if a possible full flush point has been found,
+ Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
+ has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
+ In the success case, the application may save the current current value of
+ total_in which indicates where valid compressed data was found. In the
+ error case, the application may repeatedly call inflateSync, providing more
+ input each time, until success or end of the input data.
+*/
+
+ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
+ z_streamp source));
+/*
+ Sets the destination stream as a complete copy of the source stream.
+
+ This function can be useful when randomly accessing a large stream. The
+ first pass through the stream can periodically record the inflate state,
+ allowing restarting inflate at those points when randomly accessing the
+ stream.
+
+ inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
+ enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
+ (such as zalloc being Z_NULL). msg is left unchanged in both source and
+ destination.
+*/
+
+ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
+/*
+ This function is equivalent to inflateEnd followed by inflateInit,
+ but does not free and reallocate the internal decompression state. The
+ stream will keep attributes that may have been set by inflateInit2.
+
+ inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent (such as zalloc or state being Z_NULL).
+*/
+
+ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
+ int windowBits));
+/*
+ This function is the same as inflateReset, but it also permits changing
+ the wrap and window size requests. The windowBits parameter is interpreted
+ the same as it is for inflateInit2. If the window size is changed, then the
+ memory allocated for the window is freed, and the window will be reallocated
+ by inflate() if needed.
+
+ inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent (such as zalloc or state being Z_NULL), or if
+ the windowBits parameter is invalid.
+*/
+
+ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
+ int bits,
+ int value));
+/*
+ This function inserts bits in the inflate input stream. The intent is
+ that this function is used to start inflating at a bit position in the
+ middle of a byte. The provided bits will be used before any bytes are used
+ from next_in. This function should only be used with raw inflate, and
+ should be used before the first inflate() call after inflateInit2() or
+ inflateReset(). bits must be less than or equal to 16, and that many of the
+ least significant bits of value will be inserted in the input.
+
+ If bits is negative, then the input stream bit buffer is emptied. Then
+ inflatePrime() can be called again to put bits in the buffer. This is used
+ to clear out bits leftover after feeding inflate a block description prior
+ to feeding inflate codes.
+
+ inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent.
+*/
+
+ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
+/*
+ This function returns two values, one in the lower 16 bits of the return
+ value, and the other in the remaining upper bits, obtained by shifting the
+ return value down 16 bits. If the upper value is -1 and the lower value is
+ zero, then inflate() is currently decoding information outside of a block.
+ If the upper value is -1 and the lower value is non-zero, then inflate is in
+ the middle of a stored block, with the lower value equaling the number of
+ bytes from the input remaining to copy. If the upper value is not -1, then
+ it is the number of bits back from the current bit position in the input of
+ the code (literal or length/distance pair) currently being processed. In
+ that case the lower value is the number of bytes already emitted for that
+ code.
+
+ A code is being processed if inflate is waiting for more input to complete
+ decoding of the code, or if it has completed decoding but is waiting for
+ more output space to write the literal or match data.
+
+ inflateMark() is used to mark locations in the input data for random
+ access, which may be at bit positions, and to note those cases where the
+ output of a code may span boundaries of random access blocks. The current
+ location in the input stream can be determined from avail_in and data_type
+ as noted in the description for the Z_BLOCK flush parameter for inflate.
+
+ inflateMark returns the value noted above, or -65536 if the provided
+ source stream state was inconsistent.
+*/
+
+ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
+ gz_headerp head));
+/*
+ inflateGetHeader() requests that gzip header information be stored in the
+ provided gz_header structure. inflateGetHeader() may be called after
+ inflateInit2() or inflateReset(), and before the first call of inflate().
+ As inflate() processes the gzip stream, head->done is zero until the header
+ is completed, at which time head->done is set to one. If a zlib stream is
+ being decoded, then head->done is set to -1 to indicate that there will be
+ no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be
+ used to force inflate() to return immediately after header processing is
+ complete and before any actual data is decompressed.
+
+ The text, time, xflags, and os fields are filled in with the gzip header
+ contents. hcrc is set to true if there is a header CRC. (The header CRC
+ was valid if done is set to one.) If extra is not Z_NULL, then extra_max
+ contains the maximum number of bytes to write to extra. Once done is true,
+ extra_len contains the actual extra field length, and extra contains the
+ extra field, or that field truncated if extra_max is less than extra_len.
+ If name is not Z_NULL, then up to name_max characters are written there,
+ terminated with a zero unless the length is greater than name_max. If
+ comment is not Z_NULL, then up to comm_max characters are written there,
+ terminated with a zero unless the length is greater than comm_max. When any
+ of extra, name, or comment are not Z_NULL and the respective field is not
+ present in the header, then that field is set to Z_NULL to signal its
+ absence. This allows the use of deflateSetHeader() with the returned
+ structure to duplicate the header. However if those fields are set to
+ allocated memory, then the application will need to save those pointers
+ elsewhere so that they can be eventually freed.
+
+ If inflateGetHeader is not used, then the header information is simply
+ discarded. The header is always checked for validity, including the header
+ CRC if present. inflateReset() will reset the process to discard the header
+ information. The application would need to call inflateGetHeader() again to
+ retrieve the header from the next gzip stream.
+
+ inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
+ stream state was inconsistent.
+*/
+
+/*
+ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
+ unsigned char FAR *window));
+
+ Initialize the internal stream state for decompression using inflateBack()
+ calls. The fields zalloc, zfree and opaque in strm must be initialized
+ before the call. If zalloc and zfree are Z_NULL, then the default library-
+ derived memory allocation routines are used. windowBits is the base two
+ logarithm of the window size, in the range 8..15. window is a caller
+ supplied buffer of that size. Except for special applications where it is
+ assured that deflate was used with small window sizes, windowBits must be 15
+ and a 32K byte window must be supplied to be able to decompress general
+ deflate streams.
+
+ See inflateBack() for the usage of these routines.
+
+ inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
+ the parameters are invalid, Z_MEM_ERROR if the internal state could not be
+ allocated, or Z_VERSION_ERROR if the version of the library does not match
+ the version of the header file.
+*/
+
+typedef unsigned (*in_func) OF((void FAR *,
+ z_const unsigned char FAR * FAR *));
+typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
+
+ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
+ in_func in, void FAR *in_desc,
+ out_func out, void FAR *out_desc));
+/*
+ inflateBack() does a raw inflate with a single call using a call-back
+ interface for input and output. This is potentially more efficient than
+ inflate() for file i/o applications, in that it avoids copying between the
+ output and the sliding window by simply making the window itself the output
+ buffer. inflate() can be faster on modern CPUs when used with large
+ buffers. inflateBack() trusts the application to not change the output
+ buffer passed by the output function, at least until inflateBack() returns.
+
+ inflateBackInit() must be called first to allocate the internal state
+ and to initialize the state with the user-provided window buffer.
+ inflateBack() may then be used multiple times to inflate a complete, raw
+ deflate stream with each call. inflateBackEnd() is then called to free the
+ allocated state.
+
+ A raw deflate stream is one with no zlib or gzip header or trailer.
+ This routine would normally be used in a utility that reads zip or gzip
+ files and writes out uncompressed files. The utility would decode the
+ header and process the trailer on its own, hence this routine expects only
+ the raw deflate stream to decompress. This is different from the default
+ behavior of inflate(), which expects a zlib header and trailer around the
+ deflate stream.
+
+ inflateBack() uses two subroutines supplied by the caller that are then
+ called by inflateBack() for input and output. inflateBack() calls those
+ routines until it reads a complete deflate stream and writes out all of the
+ uncompressed data, or until it encounters an error. The function's
+ parameters and return types are defined above in the in_func and out_func
+ typedefs. inflateBack() will call in(in_desc, &buf) which should return the
+ number of bytes of provided input, and a pointer to that input in buf. If
+ there is no input available, in() must return zero -- buf is ignored in that
+ case -- and inflateBack() will return a buffer error. inflateBack() will
+ call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].
+ out() should return zero on success, or non-zero on failure. If out()
+ returns non-zero, inflateBack() will return with an error. Neither in() nor
+ out() are permitted to change the contents of the window provided to
+ inflateBackInit(), which is also the buffer that out() uses to write from.
+ The length written by out() will be at most the window size. Any non-zero
+ amount of input may be provided by in().
+
+ For convenience, inflateBack() can be provided input on the first call by
+ setting strm->next_in and strm->avail_in. If that input is exhausted, then
+ in() will be called. Therefore strm->next_in must be initialized before
+ calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called
+ immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in
+ must also be initialized, and then if strm->avail_in is not zero, input will
+ initially be taken from strm->next_in[0 .. strm->avail_in - 1].
+
+ The in_desc and out_desc parameters of inflateBack() is passed as the
+ first parameter of in() and out() respectively when they are called. These
+ descriptors can be optionally used to pass any information that the caller-
+ supplied in() and out() functions need to do their job.
+
+ On return, inflateBack() will set strm->next_in and strm->avail_in to
+ pass back any unused input that was provided by the last in() call. The
+ return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
+ if in() or out() returned an error, Z_DATA_ERROR if there was a format error
+ in the deflate stream (in which case strm->msg is set to indicate the nature
+ of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
+ In the case of Z_BUF_ERROR, an input or output error can be distinguished
+ using strm->next_in which will be Z_NULL only if in() returned an error. If
+ strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
+ non-zero. (in() will always be called before out(), so strm->next_in is
+ assured to be defined if out() returns non-zero.) Note that inflateBack()
+ cannot return Z_OK.
+*/
+
+ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
+/*
+ All memory allocated by inflateBackInit() is freed.
+
+ inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
+ state was inconsistent.
+*/
+
+ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
+/* Return flags indicating compile-time options.
+
+ Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
+ 1.0: size of uInt
+ 3.2: size of uLong
+ 5.4: size of voidpf (pointer)
+ 7.6: size of z_off_t
+
+ Compiler, assembler, and debug options:
+ 8: ZLIB_DEBUG
+ 9: ASMV or ASMINF -- use ASM code
+ 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
+ 11: 0 (reserved)
+
+ One-time table building (smaller code, but not thread-safe if true):
+ 12: BUILDFIXED -- build static block decoding tables when needed
+ 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
+ 14,15: 0 (reserved)
+
+ Library content (indicates missing functionality):
+ 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
+ deflate code when not needed)
+ 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
+ and decode gzip streams (to avoid linking crc code)
+ 18-19: 0 (reserved)
+
+ Operation variations (changes in library functionality):
+ 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
+ 21: FASTEST -- deflate algorithm with only one, lowest compression level
+ 22,23: 0 (reserved)
+
+ The sprintf variant used by gzprintf (zero is best):
+ 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
+ 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
+ 26: 0 = returns value, 1 = void -- 1 means inferred string length returned
+
+ Remainder:
+ 27-31: 0 (reserved)
+ */
+
+#ifndef Z_SOLO
+
+ /* utility functions */
+
+/*
+ The following utility functions are implemented on top of the basic
+ stream-oriented functions. To simplify the interface, some default options
+ are assumed (compression level and memory usage, standard memory allocation
+ functions). The source code of these utility functions can be modified if
+ you need special options.
+*/
+
+ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
+ const Bytef *source, uLong sourceLen));
+/*
+ Compresses the source buffer into the destination buffer. sourceLen is
+ the byte length of the source buffer. Upon entry, destLen is the total size
+ of the destination buffer, which must be at least the value returned by
+ compressBound(sourceLen). Upon exit, destLen is the actual size of the
+ compressed data. compress() is equivalent to compress2() with a level
+ parameter of Z_DEFAULT_COMPRESSION.
+
+ compress returns Z_OK if success, Z_MEM_ERROR if there was not
+ enough memory, Z_BUF_ERROR if there was not enough room in the output
+ buffer.
+*/
+
+ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
+ const Bytef *source, uLong sourceLen,
+ int level));
+/*
+ Compresses the source buffer into the destination buffer. The level
+ parameter has the same meaning as in deflateInit. sourceLen is the byte
+ length of the source buffer. Upon entry, destLen is the total size of the
+ destination buffer, which must be at least the value returned by
+ compressBound(sourceLen). Upon exit, destLen is the actual size of the
+ compressed data.
+
+ compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer,
+ Z_STREAM_ERROR if the level parameter is invalid.
+*/
+
+ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
+/*
+ compressBound() returns an upper bound on the compressed size after
+ compress() or compress2() on sourceLen bytes. It would be used before a
+ compress() or compress2() call to allocate the destination buffer.
+*/
+
+ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
+ const Bytef *source, uLong sourceLen));
+/*
+ Decompresses the source buffer into the destination buffer. sourceLen is
+ the byte length of the source buffer. Upon entry, destLen is the total size
+ of the destination buffer, which must be large enough to hold the entire
+ uncompressed data. (The size of the uncompressed data must have been saved
+ previously by the compressor and transmitted to the decompressor by some
+ mechanism outside the scope of this compression library.) Upon exit, destLen
+ is the actual size of the uncompressed data.
+
+ uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
+ enough memory, Z_BUF_ERROR if there was not enough room in the output
+ buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In
+ the case where there is not enough room, uncompress() will fill the output
+ buffer with the uncompressed data up to that point.
+*/
+
+ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen,
+ const Bytef *source, uLong *sourceLen));
+/*
+ Same as uncompress, except that sourceLen is a pointer, where the
+ length of the source is *sourceLen. On return, *sourceLen is the number of
+ source bytes consumed.
+*/
+
+ /* gzip file access functions */
+
+/*
+ This library supports reading and writing files in gzip (.gz) format with
+ an interface similar to that of stdio, using the functions that start with
+ "gz". The gzip format is different from the zlib format. gzip is a gzip
+ wrapper, documented in RFC 1952, wrapped around a deflate stream.
+*/
+
+typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */
+
+/*
+ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
+
+ Opens a gzip (.gz) file for reading or writing. The mode parameter is as
+ in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
+ a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
+ compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
+ for fixed code compression as in "wb9F". (See the description of
+ deflateInit2 for more information about the strategy parameter.) 'T' will
+ request transparent writing or appending with no compression and not using
+ the gzip format.
+
+ "a" can be used instead of "w" to request that the gzip stream that will
+ be written be appended to the file. "+" will result in an error, since
+ reading and writing to the same gzip file is not supported. The addition of
+ "x" when writing will create the file exclusively, which fails if the file
+ already exists. On systems that support it, the addition of "e" when
+ reading or writing will set the flag to close the file on an execve() call.
+
+ These functions, as well as gzip, will read and decode a sequence of gzip
+ streams in a file. The append function of gzopen() can be used to create
+ such a file. (Also see gzflush() for another way to do this.) When
+ appending, gzopen does not test whether the file begins with a gzip stream,
+ nor does it look for the end of the gzip streams to begin appending. gzopen
+ will simply append a gzip stream to the existing file.
+
+ gzopen can be used to read a file which is not in gzip format; in this
+ case gzread will directly read from the file without decompression. When
+ reading, this will be detected automatically by looking for the magic two-
+ byte gzip header.
+
+ gzopen returns NULL if the file could not be opened, if there was
+ insufficient memory to allocate the gzFile state, or if an invalid mode was
+ specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
+ errno can be checked to determine if the reason gzopen failed was that the
+ file could not be opened.
+*/
+
+ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
+/*
+ gzdopen associates a gzFile with the file descriptor fd. File descriptors
+ are obtained from calls like open, dup, creat, pipe or fileno (if the file
+ has been previously opened with fopen). The mode parameter is as in gzopen.
+
+ The next call of gzclose on the returned gzFile will also close the file
+ descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
+ fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
+ mode);. The duplicated descriptor should be saved to avoid a leak, since
+ gzdopen does not close fd if it fails. If you are using fileno() to get the
+ file descriptor from a FILE *, then you will have to use dup() to avoid
+ double-close()ing the file descriptor. Both gzclose() and fclose() will
+ close the associated file descriptor, so they need to have different file
+ descriptors.
+
+ gzdopen returns NULL if there was insufficient memory to allocate the
+ gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
+ provided, or '+' was provided), or if fd is -1. The file descriptor is not
+ used until the next gz* read, write, seek, or close operation, so gzdopen
+ will not detect if fd is invalid (unless fd is -1).
+*/
+
+ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
+/*
+ Set the internal buffer size used by this library's functions. The
+ default buffer size is 8192 bytes. This function must be called after
+ gzopen() or gzdopen(), and before any other calls that read or write the
+ file. The buffer memory allocation is always deferred to the first read or
+ write. Three times that size in buffer space is allocated. A larger buffer
+ size of, for example, 64K or 128K bytes will noticeably increase the speed
+ of decompression (reading).
+
+ The new buffer size also affects the maximum length for gzprintf().
+
+ gzbuffer() returns 0 on success, or -1 on failure, such as being called
+ too late.
+*/
+
+ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
+/*
+ Dynamically update the compression level or strategy. See the description
+ of deflateInit2 for the meaning of these parameters. Previously provided
+ data is flushed before the parameter change.
+
+ gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not
+ opened for writing, Z_ERRNO if there is an error writing the flushed data,
+ or Z_MEM_ERROR if there is a memory allocation error.
+*/
+
+ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
+/*
+ Reads the given number of uncompressed bytes from the compressed file. If
+ the input file is not in gzip format, gzread copies the given number of
+ bytes into the buffer directly from the file.
+
+ After reaching the end of a gzip stream in the input, gzread will continue
+ to read, looking for another gzip stream. Any number of gzip streams may be
+ concatenated in the input file, and will all be decompressed by gzread().
+ If something other than a gzip stream is encountered after a gzip stream,
+ that remaining trailing garbage is ignored (and no error is returned).
+
+ gzread can be used to read a gzip file that is being concurrently written.
+ Upon reaching the end of the input, gzread will return with the available
+ data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
+ gzclearerr can be used to clear the end of file indicator in order to permit
+ gzread to be tried again. Z_OK indicates that a gzip stream was completed
+ on the last gzread. Z_BUF_ERROR indicates that the input file ended in the
+ middle of a gzip stream. Note that gzread does not return -1 in the event
+ of an incomplete gzip stream. This error is deferred until gzclose(), which
+ will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
+ stream. Alternatively, gzerror can be used before gzclose to detect this
+ case.
+
+ gzread returns the number of uncompressed bytes actually read, less than
+ len for end of file, or -1 for error. If len is too large to fit in an int,
+ then nothing is read, -1 is returned, and the error state is set to
+ Z_STREAM_ERROR.
+*/
+
+ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems,
+ gzFile file));
+/*
+ Read up to nitems items of size size from file to buf, otherwise operating
+ as gzread() does. This duplicates the interface of stdio's fread(), with
+ size_t request and return types. If the library defines size_t, then
+ z_size_t is identical to size_t. If not, then z_size_t is an unsigned
+ integer type that can contain a pointer.
+
+ gzfread() returns the number of full items read of size size, or zero if
+ the end of the file was reached and a full item could not be read, or if
+ there was an error. gzerror() must be consulted if zero is returned in
+ order to determine if there was an error. If the multiplication of size and
+ nitems overflows, i.e. the product does not fit in a z_size_t, then nothing
+ is read, zero is returned, and the error state is set to Z_STREAM_ERROR.
+
+ In the event that the end of file is reached and only a partial item is
+ available at the end, i.e. the remaining uncompressed data length is not a
+ multiple of size, then the final partial item is nevetheless read into buf
+ and the end-of-file flag is set. The length of the partial item read is not
+ provided, but could be inferred from the result of gztell(). This behavior
+ is the same as the behavior of fread() implementations in common libraries,
+ but it prevents the direct use of gzfread() to read a concurrently written
+ file, reseting and retrying on end-of-file, when size is not 1.
+*/
+
+ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
+ voidpc buf, unsigned len));
+/*
+ Writes the given number of uncompressed bytes into the compressed file.
+ gzwrite returns the number of uncompressed bytes written or 0 in case of
+ error.
+*/
+
+ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size,
+ z_size_t nitems, gzFile file));
+/*
+ gzfwrite() writes nitems items of size size from buf to file, duplicating
+ the interface of stdio's fwrite(), with size_t request and return types. If
+ the library defines size_t, then z_size_t is identical to size_t. If not,
+ then z_size_t is an unsigned integer type that can contain a pointer.
+
+ gzfwrite() returns the number of full items written of size size, or zero
+ if there was an error. If the multiplication of size and nitems overflows,
+ i.e. the product does not fit in a z_size_t, then nothing is written, zero
+ is returned, and the error state is set to Z_STREAM_ERROR.
+*/
+
+ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
+/*
+ Converts, formats, and writes the arguments to the compressed file under
+ control of the format string, as in fprintf. gzprintf returns the number of
+ uncompressed bytes actually written, or a negative zlib error code in case
+ of error. The number of uncompressed bytes written is limited to 8191, or
+ one less than the buffer size given to gzbuffer(). The caller should assure
+ that this limit is not exceeded. If it is exceeded, then gzprintf() will
+ return an error (0) with nothing written. In this case, there may also be a
+ buffer overflow with unpredictable consequences, which is possible only if
+ zlib was compiled with the insecure functions sprintf() or vsprintf()
+ because the secure snprintf() or vsnprintf() functions were not available.
+ This can be determined using zlibCompileFlags().
+*/
+
+ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
+/*
+ Writes the given null-terminated string to the compressed file, excluding
+ the terminating null character.
+
+ gzputs returns the number of characters written, or -1 in case of error.
+*/
+
+ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
+/*
+ Reads bytes from the compressed file until len-1 characters are read, or a
+ newline character is read and transferred to buf, or an end-of-file
+ condition is encountered. If any characters are read or if len == 1, the
+ string is terminated with a null character. If no characters are read due
+ to an end-of-file or len < 1, then the buffer is left untouched.
+
+ gzgets returns buf which is a null-terminated string, or it returns NULL
+ for end-of-file or in case of error. If there was an error, the contents at
+ buf are indeterminate.
+*/
+
+ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
+/*
+ Writes c, converted to an unsigned char, into the compressed file. gzputc
+ returns the value that was written, or -1 in case of error.
+*/
+
+ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
+/*
+ Reads one byte from the compressed file. gzgetc returns this byte or -1
+ in case of end of file or error. This is implemented as a macro for speed.
+ As such, it does not do all of the checking the other functions do. I.e.
+ it does not check to see if file is NULL, nor whether the structure file
+ points to has been clobbered or not.
+*/
+
+ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
+/*
+ Push one character back onto the stream to be read as the first character
+ on the next read. At least one character of push-back is allowed.
+ gzungetc() returns the character pushed, or -1 on failure. gzungetc() will
+ fail if c is -1, and may fail if a character has been pushed but not read
+ yet. If gzungetc is used immediately after gzopen or gzdopen, at least the
+ output buffer size of pushed characters is allowed. (See gzbuffer above.)
+ The pushed character will be discarded if the stream is repositioned with
+ gzseek() or gzrewind().
+*/
+
+ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
+/*
+ Flushes all pending output into the compressed file. The parameter flush
+ is as in the deflate() function. The return value is the zlib error number
+ (see function gzerror below). gzflush is only permitted when writing.
+
+ If the flush parameter is Z_FINISH, the remaining data is written and the
+ gzip stream is completed in the output. If gzwrite() is called again, a new
+ gzip stream will be started in the output. gzread() is able to read such
+ concatenated gzip streams.
+
+ gzflush should be called only when strictly necessary because it will
+ degrade compression if called too often.
+*/
+
+/*
+ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
+ z_off_t offset, int whence));
+
+ Sets the starting position for the next gzread or gzwrite on the given
+ compressed file. The offset represents a number of bytes in the
+ uncompressed data stream. The whence parameter is defined as in lseek(2);
+ the value SEEK_END is not supported.
+
+ If the file is opened for reading, this function is emulated but can be
+ extremely slow. If the file is opened for writing, only forward seeks are
+ supported; gzseek then compresses a sequence of zeroes up to the new
+ starting position.
+
+ gzseek returns the resulting offset location as measured in bytes from
+ the beginning of the uncompressed stream, or -1 in case of error, in
+ particular if the file is opened for writing and the new starting position
+ would be before the current position.
+*/
+
+ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
+/*
+ Rewinds the given file. This function is supported only for reading.
+
+ gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
+*/
+
+/*
+ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
+
+ Returns the starting position for the next gzread or gzwrite on the given
+ compressed file. This position represents a number of bytes in the
+ uncompressed data stream, and is zero when starting, even if appending or
+ reading a gzip stream from the middle of a file using gzdopen().
+
+ gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
+*/
+
+/*
+ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
+
+ Returns the current offset in the file being read or written. This offset
+ includes the count of bytes that precede the gzip stream, for example when
+ appending or when using gzdopen() for reading. When reading, the offset
+ does not include as yet unused buffered input. This information can be used
+ for a progress indicator. On error, gzoffset() returns -1.
+*/
+
+ZEXTERN int ZEXPORT gzeof OF((gzFile file));
+/*
+ Returns true (1) if the end-of-file indicator has been set while reading,
+ false (0) otherwise. Note that the end-of-file indicator is set only if the
+ read tried to go past the end of the input, but came up short. Therefore,
+ just like feof(), gzeof() may return false even if there is no more data to
+ read, in the event that the last read request was for the exact number of
+ bytes remaining in the input file. This will happen if the input file size
+ is an exact multiple of the buffer size.
+
+ If gzeof() returns true, then the read functions will return no more data,
+ unless the end-of-file indicator is reset by gzclearerr() and the input file
+ has grown since the previous end of file was detected.
+*/
+
+ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
+/*
+ Returns true (1) if file is being copied directly while reading, or false
+ (0) if file is a gzip stream being decompressed.
+
+ If the input file is empty, gzdirect() will return true, since the input
+ does not contain a gzip stream.
+
+ If gzdirect() is used immediately after gzopen() or gzdopen() it will
+ cause buffers to be allocated to allow reading the file to determine if it
+ is a gzip file. Therefore if gzbuffer() is used, it should be called before
+ gzdirect().
+
+ When writing, gzdirect() returns true (1) if transparent writing was
+ requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note:
+ gzdirect() is not needed when writing. Transparent writing must be
+ explicitly requested, so the application already knows the answer. When
+ linking statically, using gzdirect() will include all of the zlib code for
+ gzip file reading and decompression, which may not be desired.)
+*/
+
+ZEXTERN int ZEXPORT gzclose OF((gzFile file));
+/*
+ Flushes all pending output if necessary, closes the compressed file and
+ deallocates the (de)compression state. Note that once file is closed, you
+ cannot call gzerror with file, since its structures have been deallocated.
+ gzclose must not be called more than once on the same file, just as free
+ must not be called more than once on the same allocation.
+
+ gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
+ file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
+ last read ended in the middle of a gzip stream, or Z_OK on success.
+*/
+
+ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
+ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
+/*
+ Same as gzclose(), but gzclose_r() is only for use when reading, and
+ gzclose_w() is only for use when writing or appending. The advantage to
+ using these instead of gzclose() is that they avoid linking in zlib
+ compression or decompression code that is not used when only reading or only
+ writing respectively. If gzclose() is used, then both compression and
+ decompression code will be included the application when linking to a static
+ zlib library.
+*/
+
+ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
+/*
+ Returns the error message for the last error which occurred on the given
+ compressed file. errnum is set to zlib error number. If an error occurred
+ in the file system and not in the compression library, errnum is set to
+ Z_ERRNO and the application may consult errno to get the exact error code.
+
+ The application must not modify the returned string. Future calls to
+ this function may invalidate the previously returned string. If file is
+ closed, then the string previously returned by gzerror will no longer be
+ available.
+
+ gzerror() should be used to distinguish errors from end-of-file for those
+ functions above that do not distinguish those cases in their return values.
+*/
+
+ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
+/*
+ Clears the error and end-of-file flags for file. This is analogous to the
+ clearerr() function in stdio. This is useful for continuing to read a gzip
+ file that is being written concurrently.
+*/
+
+#endif /* !Z_SOLO */
+
+ /* checksum functions */
+
+/*
+ These functions are not related to compression but are exported
+ anyway because they might be useful in applications using the compression
+ library.
+*/
+
+ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
+/*
+ Update a running Adler-32 checksum with the bytes buf[0..len-1] and
+ return the updated checksum. If buf is Z_NULL, this function returns the
+ required initial value for the checksum.
+
+ An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed
+ much faster.
+
+ Usage example:
+
+ uLong adler = adler32(0L, Z_NULL, 0);
+
+ while (read_buffer(buffer, length) != EOF) {
+ adler = adler32(adler, buffer, length);
+ }
+ if (adler != original_adler) error();
+*/
+
+ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf,
+ z_size_t len));
+/*
+ Same as adler32(), but with a size_t length.
+*/
+
+/*
+ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
+ z_off_t len2));
+
+ Combine two Adler-32 checksums into one. For two sequences of bytes, seq1
+ and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
+ each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of
+ seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note
+ that the z_off_t type (like off_t) is a signed integer. If len2 is
+ negative, the result has no meaning or utility.
+*/
+
+ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
+/*
+ Update a running CRC-32 with the bytes buf[0..len-1] and return the
+ updated CRC-32. If buf is Z_NULL, this function returns the required
+ initial value for the crc. Pre- and post-conditioning (one's complement) is
+ performed within this function so it shouldn't be done by the application.
+
+ Usage example:
+
+ uLong crc = crc32(0L, Z_NULL, 0);
+
+ while (read_buffer(buffer, length) != EOF) {
+ crc = crc32(crc, buffer, length);
+ }
+ if (crc != original_crc) error();
+*/
+
+ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf,
+ z_size_t len));
+/*
+ Same as crc32(), but with a size_t length.
+*/
+
+/*
+ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
+
+ Combine two CRC-32 check values into one. For two sequences of bytes,
+ seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
+ calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
+ check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
+ len2.
+*/
+
+
+ /* various hacks, don't look :) */
+
+/* deflateInit and inflateInit are macros to allow checking the zlib version
+ * and the compiler's view of z_stream:
+ */
+ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
+ const char *version, int stream_size));
+ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
+ const char *version, int stream_size));
+ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
+ int windowBits, int memLevel,
+ int strategy, const char *version,
+ int stream_size));
+ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
+ const char *version, int stream_size));
+ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
+ unsigned char FAR *window,
+ const char *version,
+ int stream_size));
+#ifdef Z_PREFIX_SET
+# define z_deflateInit(strm, level) \
+ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_inflateInit(strm) \
+ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
+ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
+ (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
+# define z_inflateInit2(strm, windowBits) \
+ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
+ (int)sizeof(z_stream))
+# define z_inflateBackInit(strm, windowBits, window) \
+ inflateBackInit_((strm), (windowBits), (window), \
+ ZLIB_VERSION, (int)sizeof(z_stream))
+#else
+# define deflateInit(strm, level) \
+ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
+# define inflateInit(strm) \
+ inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
+# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
+ deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
+ (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
+# define inflateInit2(strm, windowBits) \
+ inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
+ (int)sizeof(z_stream))
+# define inflateBackInit(strm, windowBits, window) \
+ inflateBackInit_((strm), (windowBits), (window), \
+ ZLIB_VERSION, (int)sizeof(z_stream))
+#endif
+
+#ifndef Z_SOLO
+
+/* gzgetc() macro and its supporting function and exposed data structure. Note
+ * that the real internal state is much larger than the exposed structure.
+ * This abbreviated structure exposes just enough for the gzgetc() macro. The
+ * user should not mess with these exposed elements, since their names or
+ * behavior could change in the future, perhaps even capriciously. They can
+ * only be used by the gzgetc() macro. You have been warned.
+ */
+struct gzFile_s {
+ unsigned have;
+ unsigned char *next;
+ z_off64_t pos;
+};
+ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */
+#ifdef Z_PREFIX_SET
+# undef z_gzgetc
+# define z_gzgetc(g) \
+ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
+#else
+# define gzgetc(g) \
+ ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
+#endif
+
+/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
+ * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
+ * both are true, the application gets the *64 functions, and the regular
+ * functions are changed to 64 bits) -- in case these are set on systems
+ * without large file support, _LFS64_LARGEFILE must also be true
+ */
+#ifdef Z_LARGE64
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
+ ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
+ ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
+ ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
+ ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
+#endif
+
+#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64)
+# ifdef Z_PREFIX_SET
+# define z_gzopen z_gzopen64
+# define z_gzseek z_gzseek64
+# define z_gztell z_gztell64
+# define z_gzoffset z_gzoffset64
+# define z_adler32_combine z_adler32_combine64
+# define z_crc32_combine z_crc32_combine64
+# else
+# define gzopen gzopen64
+# define gzseek gzseek64
+# define gztell gztell64
+# define gzoffset gzoffset64
+# define adler32_combine adler32_combine64
+# define crc32_combine crc32_combine64
+# endif
+# ifndef Z_LARGE64
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
+ ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
+ ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
+ ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
+ ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
+# endif
+#else
+ ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
+ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
+ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
+ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
+ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
+ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
+#endif
+
+#else /* Z_SOLO */
+
+ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
+ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
+
+#endif /* !Z_SOLO */
+
+/* undocumented functions */
+ZEXTERN const char * ZEXPORT zError OF((int));
+ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp));
+ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void));
+ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int));
+ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int));
+ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp));
+ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp));
+ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp));
+#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO)
+ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path,
+ const char *mode));
+#endif
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# ifndef Z_SOLO
+ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file,
+ const char *format,
+ va_list va));
+# endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ZLIB_H */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.map b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.map
new file mode 100644
index 000000000..82ce98cf7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.map
@@ -0,0 +1,94 @@
+ZLIB_1.2.0 {
+ global:
+ compressBound;
+ deflateBound;
+ inflateBack;
+ inflateBackEnd;
+ inflateBackInit_;
+ inflateCopy;
+ local:
+ deflate_copyright;
+ inflate_copyright;
+ inflate_fast;
+ inflate_table;
+ zcalloc;
+ zcfree;
+ z_errmsg;
+ gz_error;
+ gz_intmax;
+ _*;
+};
+
+ZLIB_1.2.0.2 {
+ gzclearerr;
+ gzungetc;
+ zlibCompileFlags;
+} ZLIB_1.2.0;
+
+ZLIB_1.2.0.8 {
+ deflatePrime;
+} ZLIB_1.2.0.2;
+
+ZLIB_1.2.2 {
+ adler32_combine;
+ crc32_combine;
+ deflateSetHeader;
+ inflateGetHeader;
+} ZLIB_1.2.0.8;
+
+ZLIB_1.2.2.3 {
+ deflateTune;
+ gzdirect;
+} ZLIB_1.2.2;
+
+ZLIB_1.2.2.4 {
+ inflatePrime;
+} ZLIB_1.2.2.3;
+
+ZLIB_1.2.3.3 {
+ adler32_combine64;
+ crc32_combine64;
+ gzopen64;
+ gzseek64;
+ gztell64;
+ inflateUndermine;
+} ZLIB_1.2.2.4;
+
+ZLIB_1.2.3.4 {
+ inflateReset2;
+ inflateMark;
+} ZLIB_1.2.3.3;
+
+ZLIB_1.2.3.5 {
+ gzbuffer;
+ gzoffset;
+ gzoffset64;
+ gzclose_r;
+ gzclose_w;
+} ZLIB_1.2.3.4;
+
+ZLIB_1.2.5.1 {
+ deflatePending;
+} ZLIB_1.2.3.5;
+
+ZLIB_1.2.5.2 {
+ deflateResetKeep;
+ gzgetc_;
+ inflateResetKeep;
+} ZLIB_1.2.5.1;
+
+ZLIB_1.2.7.1 {
+ inflateGetDictionary;
+ gzvprintf;
+} ZLIB_1.2.5.2;
+
+ZLIB_1.2.9 {
+ inflateCodesUsed;
+ inflateValidate;
+ uncompress2;
+ gzfread;
+ gzfwrite;
+ deflateGetDictionary;
+ adler32_z;
+ crc32_z;
+} ZLIB_1.2.7.1;
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.cmakein b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.cmakein
new file mode 100644
index 000000000..a5e642938
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.cmakein
@@ -0,0 +1,13 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@INSTALL_LIB_DIR@
+sharedlibdir=@INSTALL_LIB_DIR@
+includedir=@INSTALL_INC_DIR@
+
+Name: zlib
+Description: zlib compression library
+Version: @VERSION@
+
+Requires:
+Libs: -L${libdir} -L${sharedlibdir} -lz
+Cflags: -I${includedir}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.in b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.in
new file mode 100644
index 000000000..7e5acf9c7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+sharedlibdir=@sharedlibdir@
+includedir=@includedir@
+
+Name: zlib
+Description: zlib compression library
+Version: @VERSION@
+
+Requires:
+Libs: -L${libdir} -L${sharedlibdir} -lz
+Cflags: -I${includedir}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib2ansi b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib2ansi
new file mode 100644
index 000000000..15e3e165f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zlib2ansi
@@ -0,0 +1,152 @@
+#!/usr/bin/perl
+
+# Transform K&R C function definitions into ANSI equivalent.
+#
+# Author: Paul Marquess
+# Version: 1.0
+# Date: 3 October 2006
+
+# TODO
+#
+# Asumes no function pointer parameters. unless they are typedefed.
+# Assumes no literal strings that look like function definitions
+# Assumes functions start at the beginning of a line
+
+use strict;
+use warnings;
+
+local $/;
+$_ = <>;
+
+my $sp = qr{ \s* (?: /\* .*? \*/ )? \s* }x; # assume no nested comments
+
+my $d1 = qr{ $sp (?: [\w\*\s]+ $sp)* $sp \w+ $sp [\[\]\s]* $sp }x ;
+my $decl = qr{ $sp (?: \w+ $sp )+ $d1 }xo ;
+my $dList = qr{ $sp $decl (?: $sp , $d1 )* $sp ; $sp }xo ;
+
+
+while (s/^
+ ( # Start $1
+ ( # Start $2
+ .*? # Minimal eat content
+ ( ^ \w [\w\s\*]+ ) # $3 -- function name
+ \s* # optional whitespace
+ ) # $2 - Matched up to before parameter list
+
+ \( \s* # Literal "(" + optional whitespace
+ ( [^\)]+ ) # $4 - one or more anythings except ")"
+ \s* \) # optional whitespace surrounding a Literal ")"
+
+ ( (?: $dList )+ ) # $5
+
+ $sp ^ { # literal "{" at start of line
+ ) # Remember to $1
+ //xsom
+ )
+{
+ my $all = $1 ;
+ my $prefix = $2;
+ my $param_list = $4 ;
+ my $params = $5;
+
+ StripComments($params);
+ StripComments($param_list);
+ $param_list =~ s/^\s+//;
+ $param_list =~ s/\s+$//;
+
+ my $i = 0 ;
+ my %pList = map { $_ => $i++ }
+ split /\s*,\s*/, $param_list;
+ my $pMatch = '(\b' . join('|', keys %pList) . '\b)\W*$' ;
+
+ my @params = split /\s*;\s*/, $params;
+ my @outParams = ();
+ foreach my $p (@params)
+ {
+ if ($p =~ /,/)
+ {
+ my @bits = split /\s*,\s*/, $p;
+ my $first = shift @bits;
+ $first =~ s/^\s*//;
+ push @outParams, $first;
+ $first =~ /^(\w+\s*)/;
+ my $type = $1 ;
+ push @outParams, map { $type . $_ } @bits;
+ }
+ else
+ {
+ $p =~ s/^\s+//;
+ push @outParams, $p;
+ }
+ }
+
+
+ my %tmp = map { /$pMatch/; $_ => $pList{$1} }
+ @outParams ;
+
+ @outParams = map { " $_" }
+ sort { $tmp{$a} <=> $tmp{$b} }
+ @outParams ;
+
+ print $prefix ;
+ print "(\n" . join(",\n", @outParams) . ")\n";
+ print "{" ;
+
+}
+
+# Output any trailing code.
+print ;
+exit 0;
+
+
+sub StripComments
+{
+
+ no warnings;
+
+ # Strip C & C++ coments
+ # From the perlfaq
+ $_[0] =~
+
+ s{
+ /\* ## Start of /* ... */ comment
+ [^*]*\*+ ## Non-* followed by 1-or-more *'s
+ (
+ [^/*][^*]*\*+
+ )* ## 0-or-more things which don't start with /
+ ## but do end with '*'
+ / ## End of /* ... */ comment
+
+ | ## OR C++ Comment
+ // ## Start of C++ comment //
+ [^\n]* ## followed by 0-or-more non end of line characters
+
+ | ## OR various things which aren't comments:
+
+ (
+ " ## Start of " ... " string
+ (
+ \\. ## Escaped char
+ | ## OR
+ [^"\\] ## Non "\
+ )*
+ " ## End of " ... " string
+
+ | ## OR
+
+ ' ## Start of ' ... ' string
+ (
+ \\. ## Escaped char
+ | ## OR
+ [^'\\] ## Non '\
+ )*
+ ' ## End of ' ... ' string
+
+ | ## OR
+
+ . ## Anything other char
+ [^/"'\\]* ## Chars which doesn't start a comment, string or escape
+ )
+ }{$2}gxs;
+
+}
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.c b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.c
new file mode 100644
index 000000000..a76c6b0c7
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.c
@@ -0,0 +1,325 @@
+/* zutil.c -- target dependent utility functions for the compression library
+ * Copyright (C) 1995-2017 Jean-loup Gailly
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* @(#) $Id$ */
+
+#include "zutil.h"
+#ifndef Z_SOLO
+# include "gzguts.h"
+#endif
+
+z_const char * const z_errmsg[10] = {
+ (z_const char *)"need dictionary", /* Z_NEED_DICT 2 */
+ (z_const char *)"stream end", /* Z_STREAM_END 1 */
+ (z_const char *)"", /* Z_OK 0 */
+ (z_const char *)"file error", /* Z_ERRNO (-1) */
+ (z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */
+ (z_const char *)"data error", /* Z_DATA_ERROR (-3) */
+ (z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */
+ (z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */
+ (z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */
+ (z_const char *)""
+};
+
+
+const char * ZEXPORT zlibVersion()
+{
+ return ZLIB_VERSION;
+}
+
+uLong ZEXPORT zlibCompileFlags()
+{
+ uLong flags;
+
+ flags = 0;
+ switch ((int)(sizeof(uInt))) {
+ case 2: break;
+ case 4: flags += 1; break;
+ case 8: flags += 2; break;
+ default: flags += 3;
+ }
+ switch ((int)(sizeof(uLong))) {
+ case 2: break;
+ case 4: flags += 1 << 2; break;
+ case 8: flags += 2 << 2; break;
+ default: flags += 3 << 2;
+ }
+ switch ((int)(sizeof(voidpf))) {
+ case 2: break;
+ case 4: flags += 1 << 4; break;
+ case 8: flags += 2 << 4; break;
+ default: flags += 3 << 4;
+ }
+ switch ((int)(sizeof(z_off_t))) {
+ case 2: break;
+ case 4: flags += 1 << 6; break;
+ case 8: flags += 2 << 6; break;
+ default: flags += 3 << 6;
+ }
+#ifdef ZLIB_DEBUG
+ flags += 1 << 8;
+#endif
+#if defined(ASMV) || defined(ASMINF)
+ flags += 1 << 9;
+#endif
+#ifdef ZLIB_WINAPI
+ flags += 1 << 10;
+#endif
+#ifdef BUILDFIXED
+ flags += 1 << 12;
+#endif
+#ifdef DYNAMIC_CRC_TABLE
+ flags += 1 << 13;
+#endif
+#ifdef NO_GZCOMPRESS
+ flags += 1L << 16;
+#endif
+#ifdef NO_GZIP
+ flags += 1L << 17;
+#endif
+#ifdef PKZIP_BUG_WORKAROUND
+ flags += 1L << 20;
+#endif
+#ifdef FASTEST
+ flags += 1L << 21;
+#endif
+#if defined(STDC) || defined(Z_HAVE_STDARG_H)
+# ifdef NO_vsnprintf
+ flags += 1L << 25;
+# ifdef HAS_vsprintf_void
+ flags += 1L << 26;
+# endif
+# else
+# ifdef HAS_vsnprintf_void
+ flags += 1L << 26;
+# endif
+# endif
+#else
+ flags += 1L << 24;
+# ifdef NO_snprintf
+ flags += 1L << 25;
+# ifdef HAS_sprintf_void
+ flags += 1L << 26;
+# endif
+# else
+# ifdef HAS_snprintf_void
+ flags += 1L << 26;
+# endif
+# endif
+#endif
+ return flags;
+}
+
+#ifdef ZLIB_DEBUG
+#include <stdlib.h>
+# ifndef verbose
+# define verbose 0
+# endif
+int ZLIB_INTERNAL z_verbose = verbose;
+
+void ZLIB_INTERNAL z_error (m)
+ char *m;
+{
+ fprintf(stderr, "%s\n", m);
+ exit(1);
+}
+#endif
+
+/* exported to allow conversion of error code to string for compress() and
+ * uncompress()
+ */
+const char * ZEXPORT zError(err)
+ int err;
+{
+ return ERR_MSG(err);
+}
+
+#if defined(_WIN32_WCE)
+ /* The Microsoft C Run-Time Library for Windows CE doesn't have
+ * errno. We define it as a global variable to simplify porting.
+ * Its value is always 0 and should not be used.
+ */
+ int errno = 0;
+#endif
+
+#ifndef HAVE_MEMCPY
+
+void ZLIB_INTERNAL zmemcpy(dest, source, len)
+ Bytef* dest;
+ const Bytef* source;
+ uInt len;
+{
+ if (len == 0) return;
+ do {
+ *dest++ = *source++; /* ??? to be unrolled */
+ } while (--len != 0);
+}
+
+int ZLIB_INTERNAL zmemcmp(s1, s2, len)
+ const Bytef* s1;
+ const Bytef* s2;
+ uInt len;
+{
+ uInt j;
+
+ for (j = 0; j < len; j++) {
+ if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
+ }
+ return 0;
+}
+
+void ZLIB_INTERNAL zmemzero(dest, len)
+ Bytef* dest;
+ uInt len;
+{
+ if (len == 0) return;
+ do {
+ *dest++ = 0; /* ??? to be unrolled */
+ } while (--len != 0);
+}
+#endif
+
+#ifndef Z_SOLO
+
+#ifdef SYS16BIT
+
+#ifdef __TURBOC__
+/* Turbo C in 16-bit mode */
+
+# define MY_ZCALLOC
+
+/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
+ * and farmalloc(64K) returns a pointer with an offset of 8, so we
+ * must fix the pointer. Warning: the pointer must be put back to its
+ * original form in order to free it, use zcfree().
+ */
+
+#define MAX_PTR 10
+/* 10*64K = 640K */
+
+local int next_ptr = 0;
+
+typedef struct ptr_table_s {
+ voidpf org_ptr;
+ voidpf new_ptr;
+} ptr_table;
+
+local ptr_table table[MAX_PTR];
+/* This table is used to remember the original form of pointers
+ * to large buffers (64K). Such pointers are normalized with a zero offset.
+ * Since MSDOS is not a preemptive multitasking OS, this table is not
+ * protected from concurrent access. This hack doesn't work anyway on
+ * a protected system like OS/2. Use Microsoft C instead.
+ */
+
+voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
+{
+ voidpf buf;
+ ulg bsize = (ulg)items*size;
+
+ (void)opaque;
+
+ /* If we allocate less than 65520 bytes, we assume that farmalloc
+ * will return a usable pointer which doesn't have to be normalized.
+ */
+ if (bsize < 65520L) {
+ buf = farmalloc(bsize);
+ if (*(ush*)&buf != 0) return buf;
+ } else {
+ buf = farmalloc(bsize + 16L);
+ }
+ if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
+ table[next_ptr].org_ptr = buf;
+
+ /* Normalize the pointer to seg:0 */
+ *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
+ *(ush*)&buf = 0;
+ table[next_ptr++].new_ptr = buf;
+ return buf;
+}
+
+void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+{
+ int n;
+
+ (void)opaque;
+
+ if (*(ush*)&ptr != 0) { /* object < 64K */
+ farfree(ptr);
+ return;
+ }
+ /* Find the original pointer */
+ for (n = 0; n < next_ptr; n++) {
+ if (ptr != table[n].new_ptr) continue;
+
+ farfree(table[n].org_ptr);
+ while (++n < next_ptr) {
+ table[n-1] = table[n];
+ }
+ next_ptr--;
+ return;
+ }
+ Assert(0, "zcfree: ptr not found");
+}
+
+#endif /* __TURBOC__ */
+
+
+#ifdef M_I86
+/* Microsoft C in 16-bit mode */
+
+# define MY_ZCALLOC
+
+#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
+# define _halloc halloc
+# define _hfree hfree
+#endif
+
+voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
+{
+ (void)opaque;
+ return _halloc((long)items, size);
+}
+
+void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
+{
+ (void)opaque;
+ _hfree(ptr);
+}
+
+#endif /* M_I86 */
+
+#endif /* SYS16BIT */
+
+
+#ifndef MY_ZCALLOC /* Any system without a special alloc function */
+
+#ifndef STDC
+extern voidp malloc OF((uInt size));
+extern voidp calloc OF((uInt items, uInt size));
+extern void free OF((voidpf ptr));
+#endif
+
+voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
+ voidpf opaque;
+ unsigned items;
+ unsigned size;
+{
+ (void)opaque;
+ return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
+ (voidpf)calloc(items, size);
+}
+
+void ZLIB_INTERNAL zcfree (opaque, ptr)
+ voidpf opaque;
+ voidpf ptr;
+{
+ (void)opaque;
+ free(ptr);
+}
+
+#endif /* MY_ZCALLOC */
+
+#endif /* !Z_SOLO */
diff --git a/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.h b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.h
new file mode 100644
index 000000000..b079ea6a8
--- /dev/null
+++ b/src/boost/tools/boost_install/test/iostreams/zlib-1.2.11/zutil.h
@@ -0,0 +1,271 @@
+/* zutil.h -- internal interface and configuration of the compression library
+ * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+ part of the implementation of the compression library and is
+ subject to change. Applications should only use zlib.h.
+ */
+
+/* @(#) $Id$ */
+
+#ifndef ZUTIL_H
+#define ZUTIL_H
+
+#ifdef HAVE_HIDDEN
+# define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
+#else
+# define ZLIB_INTERNAL
+#endif
+
+#include "zlib.h"
+
+#if defined(STDC) && !defined(Z_SOLO)
+# if !(defined(_WIN32_WCE) && defined(_MSC_VER))
+# include <stddef.h>
+# endif
+# include <string.h>
+# include <stdlib.h>
+#endif
+
+#ifdef Z_SOLO
+ typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */
+#endif
+
+#ifndef local
+# define local static
+#endif
+/* since "static" is used to mean two completely different things in C, we
+ define "local" for the non-static meaning of "static", for readability
+ (compile with -Dlocal if your debugger can't find static symbols) */
+
+typedef unsigned char uch;
+typedef uch FAR uchf;
+typedef unsigned short ush;
+typedef ush FAR ushf;
+typedef unsigned long ulg;
+
+extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
+/* (size given to avoid silly warnings with Visual C++) */
+
+#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
+
+#define ERR_RETURN(strm,err) \
+ return (strm->msg = ERR_MSG(err), (err))
+/* To be used only when the state is known to be valid */
+
+ /* common constants */
+
+#ifndef DEF_WBITS
+# define DEF_WBITS MAX_WBITS
+#endif
+/* default windowBits for decompression. MAX_WBITS is for compression only */
+
+#if MAX_MEM_LEVEL >= 8
+# define DEF_MEM_LEVEL 8
+#else
+# define DEF_MEM_LEVEL MAX_MEM_LEVEL
+#endif
+/* default memLevel */
+
+#define STORED_BLOCK 0
+#define STATIC_TREES 1
+#define DYN_TREES 2
+/* The three kinds of block type */
+
+#define MIN_MATCH 3
+#define MAX_MATCH 258
+/* The minimum and maximum match lengths */
+
+#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
+
+ /* target dependencies */
+
+#if defined(MSDOS) || (defined(WINDOWS) && !defined(WIN32))
+# define OS_CODE 0x00
+# ifndef Z_SOLO
+# if defined(__TURBOC__) || defined(__BORLANDC__)
+# if (__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
+ /* Allow compilation with ANSI keywords only enabled */
+ void _Cdecl farfree( void *block );
+ void *_Cdecl farmalloc( unsigned long nbytes );
+# else
+# include <alloc.h>
+# endif
+# else /* MSC or DJGPP */
+# include <malloc.h>
+# endif
+# endif
+#endif
+
+#ifdef AMIGA
+# define OS_CODE 1
+#endif
+
+#if defined(VAXC) || defined(VMS)
+# define OS_CODE 2
+# define F_OPEN(name, mode) \
+ fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
+#endif
+
+#ifdef __370__
+# if __TARGET_LIB__ < 0x20000000
+# define OS_CODE 4
+# elif __TARGET_LIB__ < 0x40000000
+# define OS_CODE 11
+# else
+# define OS_CODE 8
+# endif
+#endif
+
+#if defined(ATARI) || defined(atarist)
+# define OS_CODE 5
+#endif
+
+#ifdef OS2
+# define OS_CODE 6
+# if defined(M_I86) && !defined(Z_SOLO)
+# include <malloc.h>
+# endif
+#endif
+
+#if defined(MACOS) || defined(TARGET_OS_MAC)
+# define OS_CODE 7
+# ifndef Z_SOLO
+# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
+# include <unix.h> /* for fdopen */
+# else
+# ifndef fdopen
+# define fdopen(fd,mode) NULL /* No fdopen() */
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __acorn
+# define OS_CODE 13
+#endif
+
+#if defined(WIN32) && !defined(__CYGWIN__)
+# define OS_CODE 10
+#endif
+
+#ifdef _BEOS_
+# define OS_CODE 16
+#endif
+
+#ifdef __TOS_OS400__
+# define OS_CODE 18
+#endif
+
+#ifdef __APPLE__
+# define OS_CODE 19
+#endif
+
+#if defined(_BEOS_) || defined(RISCOS)
+# define fdopen(fd,mode) NULL /* No fdopen() */
+#endif
+
+#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX
+# if defined(_WIN32_WCE)
+# define fdopen(fd,mode) NULL /* No fdopen() */
+# ifndef _PTRDIFF_T_DEFINED
+ typedef int ptrdiff_t;
+# define _PTRDIFF_T_DEFINED
+# endif
+# else
+# define fdopen(fd,type) _fdopen(fd,type)
+# endif
+#endif
+
+#if defined(__BORLANDC__) && !defined(MSDOS)
+ #pragma warn -8004
+ #pragma warn -8008
+ #pragma warn -8066
+#endif
+
+/* provide prototypes for these when building zlib without LFS */
+#if !defined(_WIN32) && \
+ (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
+ ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
+ ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
+#endif
+
+ /* common defaults */
+
+#ifndef OS_CODE
+# define OS_CODE 3 /* assume Unix */
+#endif
+
+#ifndef F_OPEN
+# define F_OPEN(name, mode) fopen((name), (mode))
+#endif
+
+ /* functions */
+
+#if defined(pyr) || defined(Z_SOLO)
+# define NO_MEMCPY
+#endif
+#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
+ /* Use our own functions for small and medium model with MSC <= 5.0.
+ * You may have to use the same strategy for Borland C (untested).
+ * The __SC__ check is for Symantec.
+ */
+# define NO_MEMCPY
+#endif
+#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
+# define HAVE_MEMCPY
+#endif
+#ifdef HAVE_MEMCPY
+# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
+# define zmemcpy _fmemcpy
+# define zmemcmp _fmemcmp
+# define zmemzero(dest, len) _fmemset(dest, 0, len)
+# else
+# define zmemcpy memcpy
+# define zmemcmp memcmp
+# define zmemzero(dest, len) memset(dest, 0, len)
+# endif
+#else
+ void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
+ int ZLIB_INTERNAL zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
+ void ZLIB_INTERNAL zmemzero OF((Bytef* dest, uInt len));
+#endif
+
+/* Diagnostic functions */
+#ifdef ZLIB_DEBUG
+# include <stdio.h>
+ extern int ZLIB_INTERNAL z_verbose;
+ extern void ZLIB_INTERNAL z_error OF((char *m));
+# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
+# define Trace(x) {if (z_verbose>=0) fprintf x ;}
+# define Tracev(x) {if (z_verbose>0) fprintf x ;}
+# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
+# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
+# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
+#else
+# define Assert(cond,msg)
+# define Trace(x)
+# define Tracev(x)
+# define Tracevv(x)
+# define Tracec(c,x)
+# define Tracecv(c,x)
+#endif
+
+#ifndef Z_SOLO
+ voidpf ZLIB_INTERNAL zcalloc OF((voidpf opaque, unsigned items,
+ unsigned size));
+ void ZLIB_INTERNAL zcfree OF((voidpf opaque, voidpf ptr));
+#endif
+
+#define ZALLOC(strm, items, size) \
+ (*((strm)->zalloc))((strm)->opaque, (items), (size))
+#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
+#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
+
+/* Reverse the bytes in a 32-bit value */
+#define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \
+ (((q) & 0xff00) << 8) + (((q) & 0xff) << 24))
+
+#endif /* ZUTIL_H */
diff --git a/src/boost/tools/boost_install/test/log/CMakeLists.txt b/src/boost/tools/boost_install/test/log/CMakeLists.txt
new file mode 100644
index 000000000..fedd470a0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/log/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigLogTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_ALL_COMPONENTS)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED ALL ${BOOST_HINTS})
+
+elseif(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS log ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_log ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::log)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/log/quick.cpp b/src/boost/tools/boost_install/test/log/quick.cpp
new file mode 100644
index 000000000..831274e12
--- /dev/null
+++ b/src/boost/tools/boost_install/test/log/quick.cpp
@@ -0,0 +1,15 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/log/trivial.hpp>
+
+int main()
+{
+ BOOST_LOG_TRIVIAL(info) << "An informational message";
+ BOOST_LOG_TRIVIAL(warning) << "A warning message";
+}
diff --git a/src/boost/tools/boost_install/test/mpi/CMakeLists.txt b/src/boost/tools/boost_install/test/mpi/CMakeLists.txt
new file mode 100644
index 000000000..83e02d5c9
--- /dev/null
+++ b/src/boost/tools/boost_install/test/mpi/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigMpiTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS mpi ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_mpi ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::mpi)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/mpi/quick.cpp b/src/boost/tools/boost_install/test/mpi/quick.cpp
new file mode 100644
index 000000000..e988d44a6
--- /dev/null
+++ b/src/boost/tools/boost_install/test/mpi/quick.cpp
@@ -0,0 +1,20 @@
+
+// Copyright 2019 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/mpi/environment.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+int main()
+{
+ std::pair<int, int> ver = boost::mpi::environment::version();
+
+ BOOST_TEST_EQ( ver.first, MPI_VERSION );
+ BOOST_TEST_EQ( ver.second, MPI_SUBVERSION );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/program_options/CMakeLists.txt b/src/boost/tools/boost_install/test/program_options/CMakeLists.txt
new file mode 100644
index 000000000..11b049658
--- /dev/null
+++ b/src/boost/tools/boost_install/test/program_options/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigProgramOptionsTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS program_options ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_program_options ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::program_options)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(NAME main COMMAND main --path=initial)
diff --git a/src/boost/tools/boost_install/test/program_options/quick.cpp b/src/boost/tools/boost_install/test/program_options/quick.cpp
new file mode 100644
index 000000000..edf45c4a2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/program_options/quick.cpp
@@ -0,0 +1,49 @@
+
+// Copyright 2017 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+// See library home page at http://www.boost.org/libs/program_options
+
+#include <boost/program_options.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+namespace po = boost::program_options;
+
+int main( int argc, char const* argv[] )
+{
+ po::options_description desc( "Allowed options" );
+
+ desc.add_options()
+ ( "path,p", po::value<std::string>(), "set initial path" )
+ ;
+
+ po::variables_map vm;
+
+ try
+ {
+ po::store( po::parse_command_line( argc, argv, desc ), vm );
+ po::notify( vm );
+ }
+ catch( std::exception const & x )
+ {
+ std::cerr << "Error: " << x.what() << std::endl;
+ return 1;
+ }
+
+ std::string p;
+
+ if( vm.count( "path" ) )
+ {
+ p = vm[ "path" ].as<std::string>();
+ }
+
+ std::string expected( "initial" );
+
+ BOOST_TEST_EQ( p, expected );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/python/CMakeLists.txt b/src/boost/tools/boost_install/test/python/CMakeLists.txt
new file mode 100644
index 000000000..1637aaaa1
--- /dev/null
+++ b/src/boost/tools/boost_install/test/python/CMakeLists.txt
@@ -0,0 +1,53 @@
+# Copyright 2018-2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigPythonTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+find_package(PythonLibs ${USE_PYTHON_VERSION} REQUIRED)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+set(component python)
+
+if(USE_PYTHON_COMPONENT)
+
+ set(component ${USE_PYTHON_COMPONENT})
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS ${component} ${BOOST_HINTS})
+
+else()
+
+ # use the found Python version in case more than one Boost.Python is installed
+ set(Boost_PYTHON_VERSION ${PYTHONLIBS_VERSION_STRING})
+
+ if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS python ${BOOST_HINTS})
+
+ else()
+
+ find_package(boost_python ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+ endif()
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::${component} ${PYTHON_LIBRARIES})
+target_include_directories(main PRIVATE ${PYTHON_INCLUDE_DIRS})
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/python/quick.cpp b/src/boost/tools/boost_install/test/python/quick.cpp
new file mode 100644
index 000000000..4f31cb9e8
--- /dev/null
+++ b/src/boost/tools/boost_install/test/python/quick.cpp
@@ -0,0 +1,27 @@
+
+// Copyright 2017, 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#if defined(_WIN32)
+# define BOOST_PYTHON_STATIC_LIB
+#endif
+#include <boost/python.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+namespace python = boost::python;
+
+int main()
+{
+ Py_Initialize();
+
+ python::dict env;
+ python::object result = python::exec( "number = 42", env, env );
+
+ BOOST_TEST_EQ( python::extract<int>( env["number"] ), 42 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/random/CMakeLists.txt b/src/boost/tools/boost_install/test/random/CMakeLists.txt
new file mode 100644
index 000000000..66e5a47d0
--- /dev/null
+++ b/src/boost/tools/boost_install/test/random/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Copyright 2018-2020 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigRandomTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS random ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_random ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_library(lib lib.cpp)
+target_link_libraries(lib PRIVATE Boost::random)
+
+add_executable(main main.cpp)
+target_link_libraries(main PRIVATE lib Boost::headers)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/random/lib.cpp b/src/boost/tools/boost_install/test/random/lib.cpp
new file mode 100644
index 000000000..c9ce5103f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/random/lib.cpp
@@ -0,0 +1,18 @@
+
+// Copyright 2017-2020 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/random/random_device.hpp>
+
+#if defined(_MSC_VER)
+__declspec(dllexport)
+#endif
+unsigned get_random_number()
+{
+ boost::random::random_device dev;
+ return dev();
+}
diff --git a/src/boost/tools/boost_install/test/random/main.cpp b/src/boost/tools/boost_install/test/random/main.cpp
new file mode 100644
index 000000000..97175e98c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/random/main.cpp
@@ -0,0 +1,17 @@
+
+// Copyright 2017-2020 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/core/lightweight_test.hpp>
+
+unsigned get_random_number();
+
+int main()
+{
+ BOOST_TEST_NE( get_random_number(), get_random_number() );
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/regex/CMakeLists.txt b/src/boost/tools/boost_install/test/regex/CMakeLists.txt
new file mode 100644
index 000000000..ed88b680d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/regex/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigRegexTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS regex ${BOOST_HINTS})
+
+ # Using `include_directories`, `link_directories`, `link_libraries`
+ # is bad practice, done here for testing purposes. The right, "modern
+ # CMake", thing to do is `target_link_libraries(main Boost::regex)`.
+
+ include_directories(${Boost_INCLUDE_DIRS})
+ link_directories(${Boost_LIBRARY_DIRS})
+ link_libraries(${Boost_LIBRARIES})
+
+else()
+
+ find_package(boost_regex ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+
+if(NOT USE_BOOST_PACKAGE)
+
+ target_link_libraries(main Boost::regex)
+
+endif()
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/regex/quick.cpp b/src/boost/tools/boost_install/test/regex/quick.cpp
new file mode 100644
index 000000000..f3421ea7c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/regex/quick.cpp
@@ -0,0 +1,21 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/regex.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+int main()
+{
+ boost::regex rx( "(\\d+)-+(\\d+)-+(\\d+)" );
+
+ std::string s = boost::regex_replace( std::string( "+1--2--3+" ), rx, "$1$2$3" );
+
+ BOOST_TEST_EQ( s, "+123+" );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/serialization/CMakeLists.txt b/src/boost/tools/boost_install/test/serialization/CMakeLists.txt
new file mode 100644
index 000000000..c1003a45f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/serialization/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigSerializationTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS serialization wserialization ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_serialization ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+ find_package(boost_wserialization ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(quick quick.cpp)
+target_link_libraries(quick Boost::serialization)
+
+add_executable(wquick wquick.cpp)
+target_link_libraries(wquick Boost::wserialization)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(quick quick)
+add_test(wquick wquick)
diff --git a/src/boost/tools/boost_install/test/serialization/quick.cpp b/src/boost/tools/boost_install/test/serialization/quick.cpp
new file mode 100644
index 000000000..ba1a022c2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/serialization/quick.cpp
@@ -0,0 +1,36 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/archive/text_iarchive.hpp>
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/core/lightweight_test.hpp>
+#include <sstream>
+#include <string>
+
+int main()
+{
+ std::ostringstream os;
+ std::string s1( "pumpkin pie" );
+
+ {
+ boost::archive::text_oarchive oa( os );
+ oa << s1;
+ }
+
+ std::istringstream is( os.str() );
+ std::string s2;
+
+ {
+ boost::archive::text_iarchive ia( is );
+ ia >> s2;
+ }
+
+ BOOST_TEST_EQ( s1, s2 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/serialization/wquick.cpp b/src/boost/tools/boost_install/test/serialization/wquick.cpp
new file mode 100644
index 000000000..019d5536f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/serialization/wquick.cpp
@@ -0,0 +1,36 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/archive/text_wiarchive.hpp>
+#include <boost/archive/text_woarchive.hpp>
+#include <boost/core/lightweight_test.hpp>
+#include <sstream>
+#include <string>
+
+int main()
+{
+ std::wostringstream os;
+ std::string s1( "pumpkin pie" );
+
+ {
+ boost::archive::text_woarchive oa( os );
+ oa << s1;
+ }
+
+ std::wistringstream is( os.str() );
+ std::string s2;
+
+ {
+ boost::archive::text_wiarchive ia( is );
+ ia >> s2;
+ }
+
+ BOOST_TEST_EQ( s1, s2 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/system/CMakeLists.txt b/src/boost/tools/boost_install/test/system/CMakeLists.txt
new file mode 100644
index 000000000..a729e27db
--- /dev/null
+++ b/src/boost/tools/boost_install/test/system/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigSystemTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS system ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_system ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::system)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/system/quick.cpp b/src/boost/tools/boost_install/test/system/quick.cpp
new file mode 100644
index 000000000..ca669832d
--- /dev/null
+++ b/src/boost/tools/boost_install/test/system/quick.cpp
@@ -0,0 +1,36 @@
+
+// Copyright 2017 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+// See library home page at http://www.boost.org/libs/system
+
+#include <boost/system/error_code.hpp>
+#include <boost/core/lightweight_test.hpp>
+#include <cerrno>
+
+int main()
+{
+ boost::system::error_category const & bt = boost::system::generic_category();
+
+ int ev = ENOENT;
+
+ boost::system::error_code bc( ev, bt );
+
+ BOOST_TEST_EQ( bc.value(), ev );
+ BOOST_TEST_EQ( &bc.category(), &bt );
+
+ boost::system::error_condition bn = bt.default_error_condition( ev );
+
+ BOOST_TEST_EQ( bn.value(), ev );
+ BOOST_TEST_EQ( &bn.category(), &bt );
+
+ BOOST_TEST( bt.equivalent( ev, bn ) );
+
+ BOOST_TEST( bc == bn );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/test/CMakeLists.txt b/src/boost/tools/boost_install/test/test/CMakeLists.txt
new file mode 100644
index 000000000..50769d5b8
--- /dev/null
+++ b/src/boost/tools/boost_install/test/test/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigTestTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS prg_exec_monitor unit_test_framework ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_prg_exec_monitor ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+ find_package(boost_unit_test_framework ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(test_mon test_mon.cpp)
+target_link_libraries(test_mon Boost::prg_exec_monitor)
+
+add_executable(test_utf test_utf.cpp)
+target_link_libraries(test_utf Boost::unit_test_framework)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(test_mon test_mon)
+add_test(test_utf test_utf)
diff --git a/src/boost/tools/boost_install/test/test/test_mon.cpp b/src/boost/tools/boost_install/test/test/test_mon.cpp
new file mode 100644
index 000000000..5aabdc90c
--- /dev/null
+++ b/src/boost/tools/boost_install/test/test/test_mon.cpp
@@ -0,0 +1,14 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/test/prg_exec_monitor.hpp>
+
+int cpp_main( int, char*[] )
+{
+ return 0;
+}
diff --git a/src/boost/tools/boost_install/test/test/test_utf.cpp b/src/boost/tools/boost_install/test/test/test_utf.cpp
new file mode 100644
index 000000000..0dc6a9869
--- /dev/null
+++ b/src/boost/tools/boost_install/test/test/test_utf.cpp
@@ -0,0 +1,16 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#define BOOST_TEST_MODULE main
+#include <boost/test/unit_test.hpp>
+
+BOOST_AUTO_TEST_CASE( t1 )
+{
+ int i = 0;
+ BOOST_TEST( i == 0 );
+}
diff --git a/src/boost/tools/boost_install/test/thread/CMakeLists.txt b/src/boost/tools/boost_install/test/thread/CMakeLists.txt
new file mode 100644
index 000000000..6c49551c2
--- /dev/null
+++ b/src/boost/tools/boost_install/test/thread/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+project(CmakeConfigThreadTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS thread)
+
+else()
+
+ find_package(boost_thread ${BOOST_VERSION} EXACT CONFIG REQUIRED)
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::thread)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/thread/quick.cpp b/src/boost/tools/boost_install/test/thread/quick.cpp
new file mode 100644
index 000000000..387489209
--- /dev/null
+++ b/src/boost/tools/boost_install/test/thread/quick.cpp
@@ -0,0 +1,27 @@
+
+// Copyright 2017, 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/thread.hpp>
+#include <boost/core/lightweight_test.hpp>
+
+void f( int & x, int y )
+{
+ x = y;
+}
+
+int main()
+{
+ int x = 0;
+
+ boost::thread th( f, boost::ref( x ), 12 );
+ th.join();
+
+ BOOST_TEST_EQ( x, 12 );
+
+ return boost::report_errors();
+}
diff --git a/src/boost/tools/boost_install/test/wave/CMakeLists.txt b/src/boost/tools/boost_install/test/wave/CMakeLists.txt
new file mode 100644
index 000000000..f2eb9885f
--- /dev/null
+++ b/src/boost/tools/boost_install/test/wave/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright 2018, 2019 Peter Dimov
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
+
+cmake_minimum_required(VERSION 3.5)
+
+if(POLICY CMP0074)
+ cmake_policy(SET CMP0074 NEW)
+endif()
+
+project(CmakeConfigWaveTest LANGUAGES CXX)
+
+include(${CMAKE_CURRENT_LIST_DIR}/../BoostVersion.cmake)
+
+set(BOOST_HINTS)
+
+if(USE_STAGED_BOOST)
+ set(BOOST_HINTS HINTS ../../../../stage)
+endif()
+
+if(USE_BOOST_PACKAGE)
+
+ find_package(Boost ${BOOST_VERSION} EXACT REQUIRED COMPONENTS wave ${BOOST_HINTS})
+
+else()
+
+ find_package(boost_wave ${BOOST_VERSION} EXACT CONFIG REQUIRED ${BOOST_HINTS})
+
+endif()
+
+add_executable(main quick.cpp)
+target_link_libraries(main Boost::wave)
+
+enable_testing()
+add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
+
+add_test(main main)
diff --git a/src/boost/tools/boost_install/test/wave/quick.cpp b/src/boost/tools/boost_install/test/wave/quick.cpp
new file mode 100644
index 000000000..47bd9f224
--- /dev/null
+++ b/src/boost/tools/boost_install/test/wave/quick.cpp
@@ -0,0 +1,49 @@
+
+// Copyright 2018 Peter Dimov.
+//
+// Distributed under the Boost Software License, Version 1.0.
+//
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+
+#include <boost/wave.hpp>
+#include <boost/wave/cpplexer/cpp_lex_token.hpp>
+#include <boost/wave/cpplexer/cpp_lex_iterator.hpp>
+#include <iostream>
+
+int main()
+{
+ std::string input(
+ "#if 0\n"
+ "6.28\n"
+ "#else\n"
+ "3.14\n"
+ "#endif\n"
+ );
+
+ try
+ {
+ typedef boost::wave::cpplexer::lex_token<> token_type;
+ typedef boost::wave::cpplexer::lex_iterator<token_type> lex_iterator_type;
+ typedef boost::wave::context<std::string::iterator, lex_iterator_type> context_type;
+
+ context_type ctx( input.begin(), input.end(), "input.cpp" );
+
+ for( context_type::iterator_type first = ctx.begin(), last = ctx.end(); first != last; ++first )
+ {
+ std::cout << first->get_value();
+ }
+
+ return 0;
+ }
+ catch( boost::wave::cpp_exception const & x )
+ {
+ std::cerr << x.file_name() << "(" << x.line_no() << "): " << x.description() << std::endl;
+ return 1;
+ }
+ catch( std::exception const & x )
+ {
+ std::cerr << "Exception: " << x.what() << std::endl;
+ return 2;
+ }
+}