From b91be078fd95e1560329e752e16032291f28d354 Mon Sep 17 00:00:00 2001
From: Maikel vd H <ma1kelvdh@gmail.com>
Date: Tue, 11 Dec 2012 00:25:21 +0100
Subject: [PATCH] fix red alert 1 video stretching for my patch and add GDI
 renderer video stretching

---
 Makefile                         |    8 +-
 build.bat                        |    2 +
 ddraw video stretching stuff.txt |    2 +
 ddraw.dll                        |  Bin 0 -> 186880 bytes
 ddraw.rc                         |   24 +
 ddraw.rc.o                       |   24 +
 include/png.h                    | 2699 ++++++++++++++++++++++++++++++
 include/pngconf.h                | 1540 +++++++++++++++++
 include/zconf.h                  |  428 +++++
 include/zlib.h                   | 1613 ++++++++++++++++++
 lib/libpng14.a                   |  Bin 0 -> 210758 bytes
 lib/libz.a                       |  Bin 0 -> 95182 bytes
 main.c                           |   11 +-
 main.h                           |    1 +
 render.c                         |   22 +-
 render_soft.c                    |   48 +-
 16 files changed, 6392 insertions(+), 30 deletions(-)
 create mode 100644 build.bat
 create mode 100644 ddraw video stretching stuff.txt
 create mode 100644 ddraw.dll
 create mode 100644 ddraw.rc
 create mode 100644 ddraw.rc.o
 create mode 100644 include/png.h
 create mode 100644 include/pngconf.h
 create mode 100644 include/zconf.h
 create mode 100644 include/zlib.h
 create mode 100644 lib/libpng14.a
 create mode 100644 lib/libz.a

diff --git a/Makefile b/Makefile
index 519c26b..80b8ef1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,9 @@
-CC=i586-mingw32msvc-gcc
-WINDRES=i586-mingw32msvc-windres
+CC=gcc
 CFLAGS=-DHAVE_LIBPNG -Iinclude -Wall -Wl,--enable-stdcall-fixup -O3 -s
 LIBS=lib/libpng14.a lib/libz.a -lgdi32 -lopengl32
-REV=$(shell sh -c 'git rev-parse --short @{0}')
 
 all:
-	sed 's/__REV__/$(REV)/g' ddraw.rc.in > ddraw.rc
-	$(WINDRES) -J rc ddraw.rc ddraw.rc.o
-	$(CC) $(CFLAGS) -shared -o ddraw.dll main.c mouse.c palette.c surface.c clipper.c render.c render_soft.c render_dummy.c screenshot.c ddraw.def ddraw.rc.o $(LIBS)
+	$(CC) $(CFLAGS) -shared -o ddraw.dll main.c mouse.c palette.c surface.c clipper.c render.c render_soft.c render_dummy.c screenshot.c ddraw.def $(LIBS)
 
 clean:
 	rm -f ddraw.dll
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..24c19b4
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,2 @@
+make EXT=.exe
+pause
\ No newline at end of file
diff --git a/ddraw video stretching stuff.txt b/ddraw video stretching stuff.txt
new file mode 100644
index 0000000..0acc13a
--- /dev/null
+++ b/ddraw video stretching stuff.txt	
@@ -0,0 +1,2 @@
+0x00665F58 = InMovie
+0x0065D7BC = IsVQA640
\ No newline at end of file
diff --git a/ddraw.dll b/ddraw.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f58943f711bd7887ba30aac29e80451289eae87
GIT binary patch
literal 186880
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
NxDVE4y8WT+zX1Di5DEYQ

literal 0
HcmV?d00001

diff --git a/ddraw.rc b/ddraw.rc
new file mode 100644
index 0000000..aa063b5
--- /dev/null
+++ b/ddraw.rc
@@ -0,0 +1,24 @@
+1 VERSIONINFO
+{
+    BLOCK "StringFileInfo"
+    {
+        BLOCK "040904B0"
+        {
+            VALUE "CompanyName", "Toni Spets"
+            VALUE "FileDescription", "DirectDraw replacement for C&C95 and Red Alert"
+            VALUE "FileVersion", "git~"
+            VALUE "InternalName", "ddraw"
+            VALUE "LegalCopyright", "Copyright (c) 2010, 2011 Toni Spets"
+            VALUE "LegalTrademarks", ""
+            VALUE "OriginalFileName", "ddraw.dll"
+            VALUE "ProductName", "DirectDraw replacement for C&C95 and Red Alert"
+            VALUE "ProductVersion", "git~"
+            VALUE "Comments", "http://hifi.iki.fi/cnc-ddraw/"
+        }
+    }
+
+    BLOCK "VarFileInfo"
+    {
+        VALUE "Translation",  0x0409, 0x04B0
+    }
+}
diff --git a/ddraw.rc.o b/ddraw.rc.o
new file mode 100644
index 0000000..aa063b5
--- /dev/null
+++ b/ddraw.rc.o
@@ -0,0 +1,24 @@
+1 VERSIONINFO
+{
+    BLOCK "StringFileInfo"
+    {
+        BLOCK "040904B0"
+        {
+            VALUE "CompanyName", "Toni Spets"
+            VALUE "FileDescription", "DirectDraw replacement for C&C95 and Red Alert"
+            VALUE "FileVersion", "git~"
+            VALUE "InternalName", "ddraw"
+            VALUE "LegalCopyright", "Copyright (c) 2010, 2011 Toni Spets"
+            VALUE "LegalTrademarks", ""
+            VALUE "OriginalFileName", "ddraw.dll"
+            VALUE "ProductName", "DirectDraw replacement for C&C95 and Red Alert"
+            VALUE "ProductVersion", "git~"
+            VALUE "Comments", "http://hifi.iki.fi/cnc-ddraw/"
+        }
+    }
+
+    BLOCK "VarFileInfo"
+    {
+        VALUE "Translation",  0x0409, 0x04B0
+    }
+}
diff --git a/include/png.h b/include/png.h
new file mode 100644
index 0000000..805be12
--- /dev/null
+++ b/include/png.h
@@ -0,0 +1,2699 @@
+
+/* png.h - header file for PNG reference library
+ *
+ * libpng version 1.4.4 - September 23, 2010
+ * Copyright (c) 1998-2010 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license (See LICENSE, below)
+ *
+ * Authors and maintainers:
+ *  libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
+ *  libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
+ *  libpng versions 0.97, January 1998, through 1.4.4 - September 23, 2010: Glenn
+ *  See also "Contributing Authors", below.
+ *
+ * Note about libpng version numbers:
+ *
+ *    Due to various miscommunications, unforeseen code incompatibilities
+ *    and occasional factors outside the authors' control, version numbering
+ *    on the library has not always been consistent and straightforward.
+ *    The following table summarizes matters since version 0.89c, which was
+ *    the first widely used release:
+ *
+ *    source                 png.h  png.h  shared-lib
+ *    version                string   int  version
+ *    -------                ------ -----  ----------
+ *    0.89c "1.0 beta 3"     0.89      89  1.0.89
+ *    0.90  "1.0 beta 4"     0.90      90  0.90  [should have been 2.0.90]
+ *    0.95  "1.0 beta 5"     0.95      95  0.95  [should have been 2.0.95]
+ *    0.96  "1.0 beta 6"     0.96      96  0.96  [should have been 2.0.96]
+ *    0.97b "1.00.97 beta 7" 1.00.97   97  1.0.1 [should have been 2.0.97]
+ *    0.97c                  0.97      97  2.0.97
+ *    0.98                   0.98      98  2.0.98
+ *    0.99                   0.99      98  2.0.99
+ *    0.99a-m                0.99      99  2.0.99
+ *    1.00                   1.00     100  2.1.0 [100 should be 10000]
+ *    1.0.0      (from here on, the   100  2.1.0 [100 should be 10000]
+ *    1.0.1       png.h string is   10001  2.1.0
+ *    1.0.1a-e    identical to the  10002  from here on, the shared library
+ *    1.0.2       source version)   10002  is 2.V where V is the source code
+ *    1.0.2a-b                      10003  version, except as noted.
+ *    1.0.3                         10003
+ *    1.0.3a-d                      10004
+ *    1.0.4                         10004
+ *    1.0.4a-f                      10005
+ *    1.0.5 (+ 2 patches)           10005
+ *    1.0.5a-d                      10006
+ *    1.0.5e-r                      10100 (not source compatible)
+ *    1.0.5s-v                      10006 (not binary compatible)
+ *    1.0.6 (+ 3 patches)           10006 (still binary incompatible)
+ *    1.0.6d-f                      10007 (still binary incompatible)
+ *    1.0.6g                        10007
+ *    1.0.6h                        10007  10.6h (testing xy.z so-numbering)
+ *    1.0.6i                        10007  10.6i
+ *    1.0.6j                        10007  2.1.0.6j (incompatible with 1.0.0)
+ *    1.0.7beta11-14        DLLNUM  10007  2.1.0.7beta11-14 (binary compatible)
+ *    1.0.7beta15-18           1    10007  2.1.0.7beta15-18 (binary compatible)
+ *    1.0.7rc1-2               1    10007  2.1.0.7rc1-2 (binary compatible)
+ *    1.0.7                    1    10007  (still compatible)
+ *    1.0.8beta1-4             1    10008  2.1.0.8beta1-4
+ *    1.0.8rc1                 1    10008  2.1.0.8rc1
+ *    1.0.8                    1    10008  2.1.0.8
+ *    1.0.9beta1-6             1    10009  2.1.0.9beta1-6
+ *    1.0.9rc1                 1    10009  2.1.0.9rc1
+ *    1.0.9beta7-10            1    10009  2.1.0.9beta7-10
+ *    1.0.9rc2                 1    10009  2.1.0.9rc2
+ *    1.0.9                    1    10009  2.1.0.9
+ *    1.0.10beta1              1    10010  2.1.0.10beta1
+ *    1.0.10rc1                1    10010  2.1.0.10rc1
+ *    1.0.10                   1    10010  2.1.0.10
+ *    1.0.11beta1-3            1    10011  2.1.0.11beta1-3
+ *    1.0.11rc1                1    10011  2.1.0.11rc1
+ *    1.0.11                   1    10011  2.1.0.11
+ *    1.0.12beta1-2            2    10012  2.1.0.12beta1-2
+ *    1.0.12rc1                2    10012  2.1.0.12rc1
+ *    1.0.12                   2    10012  2.1.0.12
+ *    1.1.0a-f                 -    10100  2.1.1.0a-f (branch abandoned)
+ *    1.2.0beta1-2             2    10200  2.1.2.0beta1-2
+ *    1.2.0beta3-5             3    10200  3.1.2.0beta3-5
+ *    1.2.0rc1                 3    10200  3.1.2.0rc1
+ *    1.2.0                    3    10200  3.1.2.0
+ *    1.2.1beta1-4             3    10201  3.1.2.1beta1-4
+ *    1.2.1rc1-2               3    10201  3.1.2.1rc1-2
+ *    1.2.1                    3    10201  3.1.2.1
+ *    1.2.2beta1-6            12    10202  12.so.0.1.2.2beta1-6
+ *    1.0.13beta1             10    10013  10.so.0.1.0.13beta1
+ *    1.0.13rc1               10    10013  10.so.0.1.0.13rc1
+ *    1.2.2rc1                12    10202  12.so.0.1.2.2rc1
+ *    1.0.13                  10    10013  10.so.0.1.0.13
+ *    1.2.2                   12    10202  12.so.0.1.2.2
+ *    1.2.3rc1-6              12    10203  12.so.0.1.2.3rc1-6
+ *    1.2.3                   12    10203  12.so.0.1.2.3
+ *    1.2.4beta1-3            13    10204  12.so.0.1.2.4beta1-3
+ *    1.0.14rc1               13    10014  10.so.0.1.0.14rc1
+ *    1.2.4rc1                13    10204  12.so.0.1.2.4rc1
+ *    1.0.14                  10    10014  10.so.0.1.0.14
+ *    1.2.4                   13    10204  12.so.0.1.2.4
+ *    1.2.5beta1-2            13    10205  12.so.0.1.2.5beta1-2
+ *    1.0.15rc1-3             10    10015  10.so.0.1.0.15rc1-3
+ *    1.2.5rc1-3              13    10205  12.so.0.1.2.5rc1-3
+ *    1.0.15                  10    10015  10.so.0.1.0.15
+ *    1.2.5                   13    10205  12.so.0.1.2.5
+ *    1.2.6beta1-4            13    10206  12.so.0.1.2.6beta1-4
+ *    1.0.16                  10    10016  10.so.0.1.0.16
+ *    1.2.6                   13    10206  12.so.0.1.2.6
+ *    1.2.7beta1-2            13    10207  12.so.0.1.2.7beta1-2
+ *    1.0.17rc1               10    10017  12.so.0.1.0.17rc1
+ *    1.2.7rc1                13    10207  12.so.0.1.2.7rc1
+ *    1.0.17                  10    10017  12.so.0.1.0.17
+ *    1.2.7                   13    10207  12.so.0.1.2.7
+ *    1.2.8beta1-5            13    10208  12.so.0.1.2.8beta1-5
+ *    1.0.18rc1-5             10    10018  12.so.0.1.0.18rc1-5
+ *    1.2.8rc1-5              13    10208  12.so.0.1.2.8rc1-5
+ *    1.0.18                  10    10018  12.so.0.1.0.18
+ *    1.2.8                   13    10208  12.so.0.1.2.8
+ *    1.2.9beta1-3            13    10209  12.so.0.1.2.9beta1-3
+ *    1.2.9beta4-11           13    10209  12.so.0.9[.0]
+ *    1.2.9rc1                13    10209  12.so.0.9[.0]
+ *    1.2.9                   13    10209  12.so.0.9[.0]
+ *    1.2.10beta1-7           13    10210  12.so.0.10[.0]
+ *    1.2.10rc1-2             13    10210  12.so.0.10[.0]
+ *    1.2.10                  13    10210  12.so.0.10[.0]
+ *    1.4.0beta1-5            14    10400  14.so.0.0[.0]
+ *    1.2.11beta1-4           13    10211  12.so.0.11[.0]
+ *    1.4.0beta7-8            14    10400  14.so.0.0[.0]
+ *    1.2.11                  13    10211  12.so.0.11[.0]
+ *    1.2.12                  13    10212  12.so.0.12[.0]
+ *    1.4.0beta9-14           14    10400  14.so.0.0[.0]
+ *    1.2.13                  13    10213  12.so.0.13[.0]
+ *    1.4.0beta15-36          14    10400  14.so.0.0[.0]
+ *    1.4.0beta37-87          14    10400  14.so.14.0[.0]
+ *    1.4.0rc01               14    10400  14.so.14.0[.0]
+ *    1.4.0beta88-109         14    10400  14.so.14.0[.0]
+ *    1.4.0rc02-08            14    10400  14.so.14.0[.0]
+ *    1.4.0                   14    10400  14.so.14.0[.0]
+ *    1.4.1beta01-03          14    10401  14.so.14.1[.0]
+ *    1.4.1rc01               14    10401  14.so.14.1[.0]
+ *    1.4.1beta04-12          14    10401  14.so.14.1[.0]
+ *    1.4.1rc02-04            14    10401  14.so.14.1[.0]
+ *    1.4.1                   14    10401  14.so.14.1[.0]
+ *    1.4.2beta01             14    10402  14.so.14.2[.0]
+ *    1.4.2rc02-06            14    10402  14.so.14.2[.0]
+ *    1.4.2                   14    10402  14.so.14.2[.0]
+ *    1.4.3beta01-05          14    10403  14.so.14.3[.0]
+ *    1.4.3rc01-03            14    10403  14.so.14.3[.0]
+ *    1.4.3                   14    10403  14.so.14.3[.0]
+ *    1.4.4beta01-08          14    10404  14.so.14.4[.0]
+ *    1.4.4rc01-06            14    10404  14.so.14.4[.0]
+ *
+ *    Henceforth the source version will match the shared-library major
+ *    and minor numbers; the shared-library major version number will be
+ *    used for changes in backward compatibility, as it is intended.  The
+ *    PNG_LIBPNG_VER macro, which is not used within libpng but is available
+ *    for applications, is an unsigned integer of the form xyyzz corresponding
+ *    to the source version x.y.z (leading zeros in y and z).  Beta versions
+ *    were given the previous public release number plus a letter, until
+ *    version 1.0.6j; from then on they were given the upcoming public
+ *    release number plus "betaNN" or "rcN".
+ *
+ *    Binary incompatibility exists only when applications make direct access
+ *    to the info_ptr or png_ptr members through png.h, and the compiled
+ *    application is loaded with a different version of the library.
+ *
+ *    DLLNUM will change each time there are forward or backward changes
+ *    in binary compatibility (e.g., when a new feature is added).
+ *
+ * See libpng.txt or libpng.3 for more information.  The PNG specification
+ * is available as a W3C Recommendation and as an ISO Specification,
+ * <http://www.w3.org/TR/2003/REC-PNG-20031110/
+ */
+
+/*
+ * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
+ *
+ * If you modify libpng you may insert additional notices immediately following
+ * this sentence.
+ *
+ * This code is released under the libpng license.
+ *
+ * libpng versions 1.2.6, August 15, 2004, through 1.4.4, September 23, 2010, are
+ * Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-1.2.5
+ * with the following individual added to the list of Contributing Authors:
+ *
+ *    Cosmin Truta
+ *
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are
+ * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-1.0.6
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    Simon-Pierre Cadieux
+ *    Eric S. Raymond
+ *    Gilles Vollant
+ *
+ * and with the following additions to the disclaimer:
+ *
+ *    There is no warranty against interference with your enjoyment of the
+ *    library or against infringement.  There is no warranty that our
+ *    efforts or the library will fulfill any of your particular purposes
+ *    or needs.  This library is provided with all faults, and the entire
+ *    risk of satisfactory quality, performance, accuracy, and effort is with
+ *    the user.
+ *
+ * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+ * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are
+ * distributed according to the same disclaimer and license as libpng-0.96,
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    Tom Lane
+ *    Glenn Randers-Pehrson
+ *    Willem van Schaik
+ *
+ * libpng versions 0.89, June 1996, through 0.96, May 1997, are
+ * Copyright (c) 1996, 1997 Andreas Dilger
+ * Distributed according to the same disclaimer and license as libpng-0.88,
+ * with the following individuals added to the list of Contributing Authors:
+ *
+ *    John Bowler
+ *    Kevin Bracey
+ *    Sam Bushell
+ *    Magnus Holmgren
+ *    Greg Roelofs
+ *    Tom Tanner
+ *
+ * libpng versions 0.5, May 1995, through 0.88, January 1996, are
+ * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
+ *
+ * For the purposes of this copyright and license, "Contributing Authors"
+ * is defined as the following set of individuals:
+ *
+ *    Andreas Dilger
+ *    Dave Martindale
+ *    Guy Eric Schalnat
+ *    Paul Schmidt
+ *    Tim Wegner
+ *
+ * The PNG Reference Library is supplied "AS IS".  The Contributing Authors
+ * and Group 42, Inc. disclaim all warranties, expressed or implied,
+ * including, without limitation, the warranties of merchantability and of
+ * fitness for any purpose.  The Contributing Authors and Group 42, Inc.
+ * assume no liability for direct, indirect, incidental, special, exemplary,
+ * or consequential damages, which may result from the use of the PNG
+ * Reference Library, even if advised of the possibility of such damage.
+ *
+ * Permission is hereby granted to use, copy, modify, and distribute this
+ * source code, or portions hereof, for any purpose, without fee, subject
+ * to the following restrictions:
+ *
+ * 1. The origin of this source code must not be misrepresented.
+ *
+ * 2. Altered versions must be plainly marked as such and
+ * must not be misrepresented as being the original source.
+ *
+ * 3. This Copyright notice may not be removed or altered from
+ *    any source or altered source distribution.
+ *
+ * The Contributing Authors and Group 42, Inc. specifically permit, without
+ * fee, and encourage the use of this source code as a component to
+ * supporting the PNG file format in commercial products.  If you use this
+ * source code in a product, acknowledgment is not required but would be
+ * appreciated.
+ */
+
+/*
+ * A "png_get_copyright" function is available, for convenient use in "about"
+ * boxes and the like:
+ *
+ *     printf("%s",png_get_copyright(NULL));
+ *
+ * Also, the PNG logo (in PNG format, of course) is supplied in the
+ * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
+ */
+
+/*
+ * Libpng is OSI Certified Open Source Software.  OSI Certified is a
+ * certification mark of the Open Source Initiative.
+ */
+
+/*
+ * The contributing authors would like to thank all those who helped
+ * with testing, bug fixes, and patience.  This wouldn't have been
+ * possible without all of you.
+ *
+ * Thanks to Frank J. T. Wojcik for helping with the documentation.
+ */
+
+/*
+ * Y2K compliance in libpng:
+ * =========================
+ *
+ *    September 23, 2010
+ *
+ *    Since the PNG Development group is an ad-hoc body, we can't make
+ *    an official declaration.
+ *
+ *    This is your unofficial assurance that libpng from version 0.71 and
+ *    upward through 1.4.4 are Y2K compliant.  It is my belief that earlier
+ *    versions were also Y2K compliant.
+ *
+ *    Libpng only has three year fields.  One is a 2-byte unsigned integer
+ *    that will hold years up to 65535.  The other two hold the date in text
+ *    format, and will hold years up to 9999.
+ *
+ *    The integer is
+ *        "png_uint_16 year" in png_time_struct.
+ *
+ *    The strings are
+ *        "png_charp time_buffer" in png_struct and
+ *        "near_time_buffer", which is a local character string in png.c.
+ *
+ *    There are seven time-related functions:
+ *        png.c: png_convert_to_rfc_1123() in png.c
+ *          (formerly png_convert_to_rfc_1152() in error)
+ *        png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c
+ *        png_convert_from_time_t() in pngwrite.c
+ *        png_get_tIME() in pngget.c
+ *        png_handle_tIME() in pngrutil.c, called in pngread.c
+ *        png_set_tIME() in pngset.c
+ *        png_write_tIME() in pngwutil.c, called in pngwrite.c
+ *
+ *    All handle dates properly in a Y2K environment.  The
+ *    png_convert_from_time_t() function calls gmtime() to convert from system
+ *    clock time, which returns (year - 1900), which we properly convert to
+ *    the full 4-digit year.  There is a possibility that applications using
+ *    libpng are not passing 4-digit years into the png_convert_to_rfc_1123()
+ *    function, or that they are incorrectly passing only a 2-digit year
+ *    instead of "year - 1900" into the png_convert_from_struct_tm() function,
+ *    but this is not under our control.  The libpng documentation has always
+ *    stated that it works with 4-digit years, and the APIs have been
+ *    documented as such.
+ *
+ *    The tIME chunk itself is also Y2K compliant.  It uses a 2-byte unsigned
+ *    integer to hold the year, and can hold years as large as 65535.
+ *
+ *    zlib, upon which libpng depends, is also Y2K compliant.  It contains
+ *    no date-related code.
+ *
+ *       Glenn Randers-Pehrson
+ *       libpng maintainer
+ *       PNG Development Group
+ */
+
+#ifndef PNG_H
+#define PNG_H
+
+/* This is not the place to learn how to use libpng.  The file libpng.txt
+ * describes how to use libpng, and the file example.c summarizes it
+ * with some code on which to build.  This file is useful for looking
+ * at the actual function definitions and structure components.
+ */
+
+/* Version information for png.h - this should match the version in png.c */
+#define PNG_LIBPNG_VER_STRING "1.4.4"
+#define PNG_HEADER_VERSION_STRING \
+   " libpng version 1.4.4 - September 23, 2010\n"
+
+#define PNG_LIBPNG_VER_SONUM   14
+#define PNG_LIBPNG_VER_DLLNUM  14
+
+/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
+#define PNG_LIBPNG_VER_MAJOR   1
+#define PNG_LIBPNG_VER_MINOR   4
+#define PNG_LIBPNG_VER_RELEASE 4
+/* This should match the numeric part of the final component of
+ * PNG_LIBPNG_VER_STRING, omitting any leading zero:
+ */
+
+#define PNG_LIBPNG_VER_BUILD  0
+
+/* Release Status */
+#define PNG_LIBPNG_BUILD_ALPHA    1
+#define PNG_LIBPNG_BUILD_BETA     2
+#define PNG_LIBPNG_BUILD_RC       3
+#define PNG_LIBPNG_BUILD_STABLE   4
+#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
+
+/* Release-Specific Flags */
+#define PNG_LIBPNG_BUILD_PATCH    8 /* Can be OR'ed with
+                                       PNG_LIBPNG_BUILD_STABLE only */
+#define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with
+                                       PNG_LIBPNG_BUILD_SPECIAL */
+#define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
+                                       PNG_LIBPNG_BUILD_PRIVATE */
+
+#define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA
+
+/* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
+ * We must not include leading zeros.
+ * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
+ * version 1.0.0 was mis-numbered 100 instead of 10000).  From
+ * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release
+ */
+#define PNG_LIBPNG_VER 10404 /* 1.4.4 */
+
+#ifndef PNG_VERSION_INFO_ONLY
+/* Include the compression library's header */
+#include "zlib.h"
+#endif
+
+/* Include all user configurable info, including optional assembler routines */
+#include "pngconf.h"
+
+/*
+ * Added at libpng-1.2.8
+ *
+ * Ref MSDN: Private as priority over Special
+ * VS_FF_PRIVATEBUILD File *was not* built using standard release
+ * procedures. If this value is given, the StringFileInfo block must
+ * contain a PrivateBuild string.
+ *
+ * VS_FF_SPECIALBUILD File *was* built by the original company using
+ * standard release procedures but is a variation of the standard
+ * file of the same version number. If this value is given, the
+ * StringFileInfo block must contain a SpecialBuild string.
+ */
+
+#ifdef PNG_USER_PRIVATEBUILD
+#  define PNG_LIBPNG_BUILD_TYPE \
+          (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
+#else
+#  ifdef PNG_LIBPNG_SPECIALBUILD
+#    define PNG_LIBPNG_BUILD_TYPE \
+            (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
+#  else
+#    define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE)
+#  endif
+#endif
+
+#ifndef PNG_VERSION_INFO_ONLY
+
+/* Inhibit C++ name-mangling for libpng functions but not for system calls. */
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* This file is arranged in several sections.  The first section contains
+ * structure and type definitions.  The second section contains the external
+ * library functions, while the third has the internal library functions,
+ * which applications aren't expected to use directly.
+ */
+
+/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
+#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
+/* Version information for C files, stored in png.c.  This had better match
+ * the version above.
+ */
+#define png_libpng_ver png_get_header_ver(NULL)
+
+#endif /* PNG_NO_EXTERN */
+
+/* Three color definitions.  The order of the red, green, and blue, (and the
+ * exact size) is not important, although the size of the fields need to
+ * be png_byte or png_uint_16 (as defined below).
+ */
+typedef struct png_color_struct
+{
+   png_byte red;
+   png_byte green;
+   png_byte blue;
+} png_color;
+typedef png_color FAR * png_colorp;
+typedef png_color FAR * FAR * png_colorpp;
+
+typedef struct png_color_16_struct
+{
+   png_byte index;    /* used for palette files */
+   png_uint_16 red;   /* for use in red green blue files */
+   png_uint_16 green;
+   png_uint_16 blue;
+   png_uint_16 gray;  /* for use in grayscale files */
+} png_color_16;
+typedef png_color_16 FAR * png_color_16p;
+typedef png_color_16 FAR * FAR * png_color_16pp;
+
+typedef struct png_color_8_struct
+{
+   png_byte red;   /* for use in red green blue files */
+   png_byte green;
+   png_byte blue;
+   png_byte gray;  /* for use in grayscale files */
+   png_byte alpha; /* for alpha channel files */
+} png_color_8;
+typedef png_color_8 FAR * png_color_8p;
+typedef png_color_8 FAR * FAR * png_color_8pp;
+
+/*
+ * The following two structures are used for the in-core representation
+ * of sPLT chunks.
+ */
+typedef struct png_sPLT_entry_struct
+{
+   png_uint_16 red;
+   png_uint_16 green;
+   png_uint_16 blue;
+   png_uint_16 alpha;
+   png_uint_16 frequency;
+} png_sPLT_entry;
+typedef png_sPLT_entry FAR * png_sPLT_entryp;
+typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp;
+
+/*  When the depth of the sPLT palette is 8 bits, the color and alpha samples
+ *  occupy the LSB of their respective members, and the MSB of each member
+ *  is zero-filled.  The frequency member always occupies the full 16 bits.
+ */
+
+typedef struct png_sPLT_struct
+{
+   png_charp name;           /* palette name */
+   png_byte depth;           /* depth of palette samples */
+   png_sPLT_entryp entries;  /* palette entries */
+   png_int_32 nentries;      /* number of palette entries */
+} png_sPLT_t;
+typedef png_sPLT_t FAR * png_sPLT_tp;
+typedef png_sPLT_t FAR * FAR * png_sPLT_tpp;
+
+#ifdef PNG_TEXT_SUPPORTED
+/* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file,
+ * and whether that contents is compressed or not.  The "key" field
+ * points to a regular zero-terminated C string.  The "text", "lang", and
+ * "lang_key" fields can be regular C strings, empty strings, or NULL pointers.
+ * However, the * structure returned by png_get_text() will always contain
+ * regular zero-terminated C strings (possibly empty), never NULL pointers,
+ * so they can be safely used in printf() and other string-handling functions.
+ */
+typedef struct png_text_struct
+{
+   int  compression;       /* compression value:
+                             -1: tEXt, none
+                              0: zTXt, deflate
+                              1: iTXt, none
+                              2: iTXt, deflate  */
+   png_charp key;          /* keyword, 1-79 character description of "text" */
+   png_charp text;         /* comment, may be an empty string (ie "")
+                              or a NULL pointer */
+   png_size_t text_length; /* length of the text string */
+#ifdef PNG_iTXt_SUPPORTED
+   png_size_t itxt_length; /* length of the itxt string */
+   png_charp lang;         /* language code, 0-79 characters
+                              or a NULL pointer */
+   png_charp lang_key;     /* keyword translated UTF-8 string, 0 or more
+                              chars or a NULL pointer */
+#endif
+} png_text;
+typedef png_text FAR * png_textp;
+typedef png_text FAR * FAR * png_textpp;
+#endif
+
+/* Supported compression types for text in PNG files (tEXt, and zTXt).
+ * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */
+#define PNG_TEXT_COMPRESSION_NONE_WR -3
+#define PNG_TEXT_COMPRESSION_zTXt_WR -2
+#define PNG_TEXT_COMPRESSION_NONE    -1
+#define PNG_TEXT_COMPRESSION_zTXt     0
+#define PNG_ITXT_COMPRESSION_NONE     1
+#define PNG_ITXT_COMPRESSION_zTXt     2
+#define PNG_TEXT_COMPRESSION_LAST     3  /* Not a valid value */
+
+/* png_time is a way to hold the time in an machine independent way.
+ * Two conversions are provided, both from time_t and struct tm.  There
+ * is no portable way to convert to either of these structures, as far
+ * as I know.  If you know of a portable way, send it to me.  As a side
+ * note - PNG has always been Year 2000 compliant!
+ */
+typedef struct png_time_struct
+{
+   png_uint_16 year; /* full year, as in, 1995 */
+   png_byte month;   /* month of year, 1 - 12 */
+   png_byte day;     /* day of month, 1 - 31 */
+   png_byte hour;    /* hour of day, 0 - 23 */
+   png_byte minute;  /* minute of hour, 0 - 59 */
+   png_byte second;  /* second of minute, 0 - 60 (for leap seconds) */
+} png_time;
+typedef png_time FAR * png_timep;
+typedef png_time FAR * FAR * png_timepp;
+
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+/* png_unknown_chunk is a structure to hold queued chunks for which there is
+ * no specific support.  The idea is that we can use this to queue
+ * up private chunks for output even though the library doesn't actually
+ * know about their semantics.
+ */
+typedef struct png_unknown_chunk_t
+{
+    png_byte name[5];
+    png_byte *data;
+    png_size_t size;
+
+    /* libpng-using applications should NOT directly modify this byte. */
+    png_byte location; /* mode of operation at read time */
+}
+png_unknown_chunk;
+typedef png_unknown_chunk FAR * png_unknown_chunkp;
+typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp;
+#endif
+
+/* png_info is a structure that holds the information in a PNG file so
+ * that the application can find out the characteristics of the image.
+ * If you are reading the file, this structure will tell you what is
+ * in the PNG file.  If you are writing the file, fill in the information
+ * you want to put into the PNG file, then call png_write_info().
+ * The names chosen should be very close to the PNG specification, so
+ * consult that document for information about the meaning of each field.
+ *
+ * With libpng < 0.95, it was only possible to directly set and read the
+ * the values in the png_info_struct, which meant that the contents and
+ * order of the values had to remain fixed.  With libpng 0.95 and later,
+ * however, there are now functions that abstract the contents of
+ * png_info_struct from the application, so this makes it easier to use
+ * libpng with dynamic libraries, and even makes it possible to use
+ * libraries that don't have all of the libpng ancillary chunk-handing
+ * functionality.
+ *
+ * In any case, the order of the parameters in png_info_struct should NOT
+ * be changed for as long as possible to keep compatibility with applications
+ * that use the old direct-access method with png_info_struct.
+ *
+ * The following members may have allocated storage attached that should be
+ * cleaned up before the structure is discarded: palette, trans, text,
+ * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
+ * splt_palettes, scal_unit, row_pointers, and unknowns.   By default, these
+ * are automatically freed when the info structure is deallocated, if they were
+ * allocated internally by libpng.  This behavior can be changed by means
+ * of the png_data_freer() function.
+ *
+ * More allocation details: all the chunk-reading functions that
+ * change these members go through the corresponding png_set_*
+ * functions.  A function to clear these members is available: see
+ * png_free_data().  The png_set_* functions do not depend on being
+ * able to point info structure members to any of the storage they are
+ * passed (they make their own copies), EXCEPT that the png_set_text
+ * functions use the same storage passed to them in the text_ptr or
+ * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
+ * functions do not make their own copies.
+ */
+typedef struct png_info_struct
+{
+   /* the following are necessary for every PNG file */
+   png_uint_32 width PNG_DEPSTRUCT;  /* width of image in pixels (from IHDR) */
+   png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHDR) */
+   png_uint_32 valid PNG_DEPSTRUCT;  /* valid chunk data (see PNG_INFO_
+                                        below) */
+   png_size_t rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransformed
+                                         row */
+   png_colorp palette PNG_DEPSTRUCT;      /* array of color values
+                                             (valid & PNG_INFO_PLTE) */
+   png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in
+                                             "palette" (PLTE) */
+   png_uint_16 num_trans PNG_DEPSTRUCT;   /* number of transparent palette
+                                             color (tRNS) */
+   png_byte bit_depth PNG_DEPSTRUCT;      /* 1, 2, 4, 8, or 16 bits/channel
+                                             (from IHDR) */
+   png_byte color_type PNG_DEPSTRUCT;     /* see PNG_COLOR_TYPE_ below
+                                             (from IHDR) */
+   /* The following three should have been named *_method not *_type */
+   png_byte compression_type PNG_DEPSTRUCT; /* must be
+                                             PNG_COMPRESSION_TYPE_BASE (IHDR) */
+   png_byte filter_type PNG_DEPSTRUCT;    /* must be PNG_FILTER_TYPE_BASE
+                                             (from IHDR) */
+   png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE,
+                                             PNG_INTERLACE_ADAM7 */
+
+   /* The following is informational only on read, and not used on writes. */
+   png_byte channels PNG_DEPSTRUCT;       /* number of data channels per
+                                             pixel (1, 2, 3, 4) */
+   png_byte pixel_depth PNG_DEPSTRUCT;    /* number of bits per pixel */
+   png_byte spare_byte PNG_DEPSTRUCT;     /* to align the data, and for
+                                             future use */
+   png_byte signature[8] PNG_DEPSTRUCT;   /* magic bytes read by libpng
+                                             from start of file */
+
+   /* The rest of the data is optional.  If you are reading, check the
+    * valid field to see if the information in these are valid.  If you
+    * are writing, set the valid field to those chunks you want written,
+    * and initialize the appropriate fields below.
+    */
+
+#if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
+   /* The gAMA chunk describes the gamma characteristics of the system
+    * on which the image was created, normally in the range [1.0, 2.5].
+    * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
+    */
+   float gamma PNG_DEPSTRUCT; /* gamma value of image,
+                                 if (valid & PNG_INFO_gAMA) */
+#endif
+
+#ifdef PNG_sRGB_SUPPORTED
+    /* GR-P, 0.96a */
+    /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
+   png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent
+                                          [0, 1, 2, or 3] */
+#endif
+
+#ifdef PNG_TEXT_SUPPORTED
+   /* The tEXt, and zTXt chunks contain human-readable textual data in
+    * uncompressed, compressed, and optionally compressed forms, respectively.
+    * The data in "text" is an array of pointers to uncompressed,
+    * null-terminated C strings. Each chunk has a keyword that describes the
+    * textual data contained in that chunk.  Keywords are not required to be
+    * unique, and the text string may be empty.  Any number of text chunks may
+    * be in an image.
+    */
+   int num_text PNG_DEPSTRUCT; /* number of comments read/to write */
+   int max_text PNG_DEPSTRUCT; /* current size of text array */
+   png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */
+#endif /* PNG_TEXT_SUPPORTED */
+
+#ifdef PNG_tIME_SUPPORTED
+   /* The tIME chunk holds the last time the displayed image data was
+    * modified.  See the png_time struct for the contents of this struct.
+    */
+   png_time mod_time PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_sBIT_SUPPORTED
+   /* The sBIT chunk specifies the number of significant high-order bits
+    * in the pixel data.  Values are in the range [1, bit_depth], and are
+    * only specified for the channels in the pixel data.  The contents of
+    * the low-order bits is not specified.  Data is valid if
+    * (valid & PNG_INFO_sBIT) is non-zero.
+    */
+   png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
+defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The tRNS chunk supplies transparency data for paletted images and
+    * other image types that don't need a full alpha channel.  There are
+    * "num_trans" transparency values for a paletted image, stored in the
+    * same order as the palette colors, starting from index 0.  Values
+    * for the data are in the range [0, 255], ranging from fully transparent
+    * to fully opaque, respectively.  For non-paletted images, there is a
+    * single color specified that should be treated as fully transparent.
+    * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
+    */
+   png_bytep trans_alpha PNG_DEPSTRUCT;    /* alpha values for paletted
+                                              image */
+   png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for
+                                              non-palette image */
+#endif
+
+#if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   /* The bKGD chunk gives the suggested image background color if the
+    * display program does not have its own background color and the image
+    * is needs to composited onto a background before display.  The colors
+    * in "background" are normally in the same color space/depth as the
+    * pixel data.  Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
+    */
+   png_color_16 background PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_oFFs_SUPPORTED
+   /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
+    * and downwards from the top-left corner of the display, page, or other
+    * application-specific co-ordinate space.  See the PNG_OFFSET_ defines
+    * below for the unit types.  Valid if (valid & PNG_INFO_oFFs) non-zero.
+    */
+   png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */
+   png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */
+   png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */
+#endif
+
+#ifdef PNG_pHYs_SUPPORTED
+   /* The pHYs chunk gives the physical pixel density of the image for
+    * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
+    * defines below).  Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
+    */
+   png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */
+   png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */
+   png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see
+                                             PNG_RESOLUTION_ below) */
+#endif
+
+#ifdef PNG_hIST_SUPPORTED
+   /* The hIST chunk contains the relative frequency or importance of the
+    * various palette entries, so that a viewer can intelligently select a
+    * reduced-color palette, if required.  Data is an array of "num_palette"
+    * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
+    * is non-zero.
+    */
+   png_uint_16p hist PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_cHRM_SUPPORTED
+   /* The cHRM chunk describes the CIE color characteristics of the monitor
+    * on which the PNG was created.  This data allows the viewer to do gamut
+    * mapping of the input image to ensure that the viewer sees the same
+    * colors in the image as the creator.  Values are in the range
+    * [0.0, 0.8].  Data valid if (valid & PNG_INFO_cHRM) non-zero.
+    */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   float x_white PNG_DEPSTRUCT;
+   float y_white PNG_DEPSTRUCT;
+   float x_red PNG_DEPSTRUCT;
+   float y_red PNG_DEPSTRUCT;
+   float x_green PNG_DEPSTRUCT;
+   float y_green PNG_DEPSTRUCT;
+   float x_blue PNG_DEPSTRUCT;
+   float y_blue PNG_DEPSTRUCT;
+#endif
+#endif
+
+#ifdef PNG_pCAL_SUPPORTED
+   /* The pCAL chunk describes a transformation between the stored pixel
+    * values and original physical data values used to create the image.
+    * The integer range [0, 2^bit_depth - 1] maps to the floating-point
+    * range given by [pcal_X0, pcal_X1], and are further transformed by a
+    * (possibly non-linear) transformation function given by "pcal_type"
+    * and "pcal_params" into "pcal_units".  Please see the PNG_EQUATION_
+    * defines below, and the PNG-Group's PNG extensions document for a
+    * complete description of the transformations and how they should be
+    * implemented, and for a description of the ASCII parameter strings.
+    * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
+    */
+   png_charp pcal_purpose PNG_DEPSTRUCT;  /* pCAL chunk description string */
+   png_int_32 pcal_X0 PNG_DEPSTRUCT;      /* minimum value */
+   png_int_32 pcal_X1 PNG_DEPSTRUCT;      /* maximum value */
+   png_charp pcal_units PNG_DEPSTRUCT;    /* Latin-1 string giving physical
+                                             units */
+   png_charpp pcal_params PNG_DEPSTRUCT;  /* ASCII strings containing
+                                             parameter values */
+   png_byte pcal_type PNG_DEPSTRUCT;      /* equation type
+                                             (see PNG_EQUATION_ below) */
+   png_byte pcal_nparams PNG_DEPSTRUCT;   /* number of parameters given
+                                             in pcal_params */
+#endif
+
+/* New members added in libpng-1.0.6 */
+   png_uint_32 free_me PNG_DEPSTRUCT;     /* flags items libpng is
+                                             responsible for freeing */
+
+#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+   /* Storage for unknown chunks that the library doesn't recognize. */
+   png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT;
+   png_size_t unknown_chunks_num PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_iCCP_SUPPORTED
+   /* iCCP chunk data. */
+   png_charp iccp_name PNG_DEPSTRUCT;     /* profile name */
+   png_charp iccp_profile PNG_DEPSTRUCT;  /* International Color Consortium
+                                             profile data */
+                            /* Note to maintainer: should be png_bytep */
+   png_uint_32 iccp_proflen PNG_DEPSTRUCT;  /* ICC profile data length */
+   png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */
+#endif
+
+#ifdef PNG_sPLT_SUPPORTED
+   /* Data on sPLT chunks (there may be more than one). */
+   png_sPLT_tp splt_palettes PNG_DEPSTRUCT;
+   png_uint_32 splt_palettes_num PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_sCAL_SUPPORTED
+   /* The sCAL chunk describes the actual physical dimensions of the
+    * subject matter of the graphic.  The chunk contains a unit specification
+    * a byte value, and two ASCII strings representing floating-point
+    * values.  The values are width and height corresponsing to one pixel
+    * in the image.  This external representation is converted to double
+    * here.  Data values are valid if (valid & PNG_INFO_sCAL) is non-zero.
+    */
+   png_byte scal_unit PNG_DEPSTRUCT;         /* unit of physical scale */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   double scal_pixel_width PNG_DEPSTRUCT;    /* width of one pixel */
+   double scal_pixel_height PNG_DEPSTRUCT;   /* height of one pixel */
+#endif
+#ifdef PNG_FIXED_POINT_SUPPORTED
+   png_charp scal_s_width PNG_DEPSTRUCT;     /* string containing height */
+   png_charp scal_s_height PNG_DEPSTRUCT;    /* string containing width */
+#endif
+#endif
+
+#ifdef PNG_INFO_IMAGE_SUPPORTED
+   /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS)
+      non-zero */
+   /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
+   png_bytepp row_pointers PNG_DEPSTRUCT;        /* the image bits */
+#endif
+
+#if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED)
+   png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image,
+                                               if (valid & PNG_INFO_gAMA) */
+#endif
+
+#if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED)
+   png_fixed_point int_x_white PNG_DEPSTRUCT;
+   png_fixed_point int_y_white PNG_DEPSTRUCT;
+   png_fixed_point int_x_red PNG_DEPSTRUCT;
+   png_fixed_point int_y_red PNG_DEPSTRUCT;
+   png_fixed_point int_x_green PNG_DEPSTRUCT;
+   png_fixed_point int_y_green PNG_DEPSTRUCT;
+   png_fixed_point int_x_blue PNG_DEPSTRUCT;
+   png_fixed_point int_y_blue PNG_DEPSTRUCT;
+#endif
+
+} png_info;
+
+typedef png_info FAR * png_infop;
+typedef png_info FAR * FAR * png_infopp;
+
+/* Maximum positive integer used in PNG is (2^31)-1 */
+#define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL)
+#define PNG_UINT_32_MAX ((png_uint_32)(-1))
+#define PNG_SIZE_MAX ((png_size_t)(-1))
+
+/* These describe the color_type field in png_info. */
+/* color type masks */
+#define PNG_COLOR_MASK_PALETTE    1
+#define PNG_COLOR_MASK_COLOR      2
+#define PNG_COLOR_MASK_ALPHA      4
+
+/* color types.  Note that not all combinations are legal */
+#define PNG_COLOR_TYPE_GRAY 0
+#define PNG_COLOR_TYPE_PALETTE  (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
+#define PNG_COLOR_TYPE_RGB        (PNG_COLOR_MASK_COLOR)
+#define PNG_COLOR_TYPE_RGB_ALPHA  (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
+#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
+/* aliases */
+#define PNG_COLOR_TYPE_RGBA  PNG_COLOR_TYPE_RGB_ALPHA
+#define PNG_COLOR_TYPE_GA  PNG_COLOR_TYPE_GRAY_ALPHA
+
+/* This is for compression type. PNG 1.0-1.2 only define the single type. */
+#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */
+#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE
+
+/* This is for filter type. PNG 1.0-1.2 only define the single type. */
+#define PNG_FILTER_TYPE_BASE      0 /* Single row per-byte filtering */
+#define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */
+#define PNG_FILTER_TYPE_DEFAULT   PNG_FILTER_TYPE_BASE
+
+/* These are for the interlacing type.  These values should NOT be changed. */
+#define PNG_INTERLACE_NONE        0 /* Non-interlaced image */
+#define PNG_INTERLACE_ADAM7       1 /* Adam7 interlacing */
+#define PNG_INTERLACE_LAST        2 /* Not a valid value */
+
+/* These are for the oFFs chunk.  These values should NOT be changed. */
+#define PNG_OFFSET_PIXEL          0 /* Offset in pixels */
+#define PNG_OFFSET_MICROMETER     1 /* Offset in micrometers (1/10^6 meter) */
+#define PNG_OFFSET_LAST           2 /* Not a valid value */
+
+/* These are for the pCAL chunk.  These values should NOT be changed. */
+#define PNG_EQUATION_LINEAR       0 /* Linear transformation */
+#define PNG_EQUATION_BASE_E       1 /* Exponential base e transform */
+#define PNG_EQUATION_ARBITRARY    2 /* Arbitrary base exponential transform */
+#define PNG_EQUATION_HYPERBOLIC   3 /* Hyperbolic sine transformation */
+#define PNG_EQUATION_LAST         4 /* Not a valid value */
+
+/* These are for the sCAL chunk.  These values should NOT be changed. */
+#define PNG_SCALE_UNKNOWN         0 /* unknown unit (image scale) */
+#define PNG_SCALE_METER           1 /* meters per pixel */
+#define PNG_SCALE_RADIAN          2 /* radians per pixel */
+#define PNG_SCALE_LAST            3 /* Not a valid value */
+
+/* These are for the pHYs chunk.  These values should NOT be changed. */
+#define PNG_RESOLUTION_UNKNOWN    0 /* pixels/unknown unit (aspect ratio) */
+#define PNG_RESOLUTION_METER      1 /* pixels/meter */
+#define PNG_RESOLUTION_LAST       2 /* Not a valid value */
+
+/* These are for the sRGB chunk.  These values should NOT be changed. */
+#define PNG_sRGB_INTENT_PERCEPTUAL 0
+#define PNG_sRGB_INTENT_RELATIVE   1
+#define PNG_sRGB_INTENT_SATURATION 2
+#define PNG_sRGB_INTENT_ABSOLUTE   3
+#define PNG_sRGB_INTENT_LAST       4 /* Not a valid value */
+
+/* This is for text chunks */
+#define PNG_KEYWORD_MAX_LENGTH     79
+
+/* Maximum number of entries in PLTE/sPLT/tRNS arrays */
+#define PNG_MAX_PALETTE_LENGTH    256
+
+/* These determine if an ancillary chunk's data has been successfully read
+ * from the PNG header, or if the application has filled in the corresponding
+ * data in the info_struct to be written into the output file.  The values
+ * of the PNG_INFO_<chunk> defines should NOT be changed.
+ */
+#define PNG_INFO_gAMA 0x0001
+#define PNG_INFO_sBIT 0x0002
+#define PNG_INFO_cHRM 0x0004
+#define PNG_INFO_PLTE 0x0008
+#define PNG_INFO_tRNS 0x0010
+#define PNG_INFO_bKGD 0x0020
+#define PNG_INFO_hIST 0x0040
+#define PNG_INFO_pHYs 0x0080
+#define PNG_INFO_oFFs 0x0100
+#define PNG_INFO_tIME 0x0200
+#define PNG_INFO_pCAL 0x0400
+#define PNG_INFO_sRGB 0x0800   /* GR-P, 0.96a */
+#define PNG_INFO_iCCP 0x1000   /* ESR, 1.0.6 */
+#define PNG_INFO_sPLT 0x2000   /* ESR, 1.0.6 */
+#define PNG_INFO_sCAL 0x4000   /* ESR, 1.0.6 */
+#define PNG_INFO_IDAT 0x8000L  /* ESR, 1.0.6 */
+
+/* This is used for the transformation routines, as some of them
+ * change these values for the row.  It also should enable using
+ * the routines for other purposes.
+ */
+typedef struct png_row_info_struct
+{
+   png_uint_32 width; /* width of row */
+   png_size_t rowbytes; /* number of bytes in row */
+   png_byte color_type; /* color type of row */
+   png_byte bit_depth; /* bit depth of row */
+   png_byte channels; /* number of channels (1, 2, 3, or 4) */
+   png_byte pixel_depth; /* bits per pixel (depth * channels) */
+} png_row_info;
+
+typedef png_row_info FAR * png_row_infop;
+typedef png_row_info FAR * FAR * png_row_infopp;
+
+/* These are the function types for the I/O functions and for the functions
+ * that allow the user to override the default I/O functions with his or her
+ * own.  The png_error_ptr type should match that of user-supplied warning
+ * and error functions, while the png_rw_ptr type should match that of the
+ * user read/write data functions.
+ */
+typedef struct png_struct_def png_struct;
+typedef png_struct FAR * png_structp;
+
+typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp));
+typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t));
+typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp));
+typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32,
+   int));
+typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32,
+   int));
+
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp,
+   png_infop));
+typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop));
+typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
+   png_uint_32, int));
+#endif
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
+    png_row_infop, png_bytep));
+#endif
+
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp,
+   png_unknown_chunkp));
+#endif
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
+#endif
+#ifdef PNG_SETJMP_SUPPORTED
+/* This must match the function definition in <setjmp.h>, and the
+ * application must include this before png.h to obtain the definition
+ * of jmp_buf.
+ */
+typedef void (PNGAPI *png_longjmp_ptr) PNGARG((jmp_buf, int));
+#endif
+
+/* Transform masks for the high-level interface */
+#define PNG_TRANSFORM_IDENTITY       0x0000    /* read and write */
+#define PNG_TRANSFORM_STRIP_16       0x0001    /* read only */
+#define PNG_TRANSFORM_STRIP_ALPHA    0x0002    /* read only */
+#define PNG_TRANSFORM_PACKING        0x0004    /* read and write */
+#define PNG_TRANSFORM_PACKSWAP       0x0008    /* read and write */
+#define PNG_TRANSFORM_EXPAND         0x0010    /* read only */
+#define PNG_TRANSFORM_INVERT_MONO    0x0020    /* read and write */
+#define PNG_TRANSFORM_SHIFT          0x0040    /* read and write */
+#define PNG_TRANSFORM_BGR            0x0080    /* read and write */
+#define PNG_TRANSFORM_SWAP_ALPHA     0x0100    /* read and write */
+#define PNG_TRANSFORM_SWAP_ENDIAN    0x0200    /* read and write */
+#define PNG_TRANSFORM_INVERT_ALPHA   0x0400    /* read and write */
+#define PNG_TRANSFORM_STRIP_FILLER   0x0800    /* write only */
+/* Added to libpng-1.2.34 */
+#define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER
+#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */
+/* Added to libpng-1.4.0 */
+#define PNG_TRANSFORM_GRAY_TO_RGB   0x2000      /* read only */
+
+/* Flags for MNG supported features */
+#define PNG_FLAG_MNG_EMPTY_PLTE     0x01
+#define PNG_FLAG_MNG_FILTER_64      0x04
+#define PNG_ALL_MNG_FEATURES        0x05
+
+typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_alloc_size_t));
+typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp));
+
+/* The structure that holds the information to read and write PNG files.
+ * The only people who need to care about what is inside of this are the
+ * people who will be modifying the library for their own special needs.
+ * It should NOT be accessed directly by an application, except to store
+ * the jmp_buf.
+ */
+
+struct png_struct_def
+{
+#ifdef PNG_SETJMP_SUPPORTED
+   jmp_buf jmpbuf PNG_DEPSTRUCT;            /* used in png_error */
+   png_longjmp_ptr longjmp_fn PNG_DEPSTRUCT;/* setjmp non-local goto
+                                               function. */
+#endif
+   png_error_ptr error_fn PNG_DEPSTRUCT;    /* function for printing
+                                               errors and aborting */
+   png_error_ptr warning_fn PNG_DEPSTRUCT;  /* function for printing
+                                               warnings */
+   png_voidp error_ptr PNG_DEPSTRUCT;       /* user supplied struct for
+                                               error functions */
+   png_rw_ptr write_data_fn PNG_DEPSTRUCT;  /* function for writing
+                                               output data */
+   png_rw_ptr read_data_fn PNG_DEPSTRUCT;   /* function for reading
+                                               input data */
+   png_voidp io_ptr PNG_DEPSTRUCT;          /* ptr to application struct
+                                               for I/O functions */
+
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+   png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read
+                                                                 transform */
+#endif
+
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+   png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write
+                                                                  transform */
+#endif
+
+/* These were added in libpng-1.0.2 */
+#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+   png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct
+                                                  for user transform */
+   png_byte user_transform_depth PNG_DEPSTRUCT;    /* bit depth of user
+                                                      transformed pixels */
+   png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user
+                                                      transformed pixels */
+#endif
+#endif
+
+   png_uint_32 mode PNG_DEPSTRUCT;          /* tells us where we are in
+                                               the PNG file */
+   png_uint_32 flags PNG_DEPSTRUCT;         /* flags indicating various
+                                               things to libpng */
+   png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations
+                                                 to perform */
+
+   z_stream zstream PNG_DEPSTRUCT;          /* pointer to decompression
+                                               structure (below) */
+   png_bytep zbuf PNG_DEPSTRUCT;            /* buffer for zlib */
+   png_size_t zbuf_size PNG_DEPSTRUCT;      /* size of zbuf */
+   int zlib_level PNG_DEPSTRUCT;            /* holds zlib compression level */
+   int zlib_method PNG_DEPSTRUCT;           /* holds zlib compression method */
+   int zlib_window_bits PNG_DEPSTRUCT;      /* holds zlib compression window
+                                               bits */
+   int zlib_mem_level PNG_DEPSTRUCT;        /* holds zlib compression memory
+                                               level */
+   int zlib_strategy PNG_DEPSTRUCT;         /* holds zlib compression
+                                               strategy */
+
+   png_uint_32 width PNG_DEPSTRUCT;         /* width of image in pixels */
+   png_uint_32 height PNG_DEPSTRUCT;        /* height of image in pixels */
+   png_uint_32 num_rows PNG_DEPSTRUCT;      /* number of rows in current pass */
+   png_uint_32 usr_width PNG_DEPSTRUCT;     /* width of row at start of write */
+   png_size_t rowbytes PNG_DEPSTRUCT;       /* size of row in bytes */
+#if 0 /* Replaced with the following in libpng-1.4.1 */
+   png_size_t irowbytes PNG_DEPSTRUCT;
+#endif
+/* Added in libpng-1.4.1 */
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   /* Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk
+    * can occupy when decompressed.  0 means unlimited.
+    * We will change the typedef from png_size_t to png_alloc_size_t
+    * in libpng-1.6.0
+    */
+   png_alloc_size_t user_chunk_malloc_max PNG_DEPSTRUCT;
+#endif
+   png_uint_32 iwidth PNG_DEPSTRUCT;        /* width of current interlaced
+                                               row in pixels */
+   png_uint_32 row_number PNG_DEPSTRUCT;    /* current row in interlace pass */
+   png_bytep prev_row PNG_DEPSTRUCT;        /* buffer to save previous
+                                               (unfiltered) row */
+   png_bytep row_buf PNG_DEPSTRUCT;         /* buffer to save current
+                                               (unfiltered) row */
+   png_bytep sub_row PNG_DEPSTRUCT;         /* buffer to save "sub" row
+                                               when filtering */
+   png_bytep up_row PNG_DEPSTRUCT;          /* buffer to save "up" row
+                                               when filtering */
+   png_bytep avg_row PNG_DEPSTRUCT;         /* buffer to save "avg" row
+                                               when filtering */
+   png_bytep paeth_row PNG_DEPSTRUCT;       /* buffer to save "Paeth" row
+                                               when filtering */
+   png_row_info row_info PNG_DEPSTRUCT;     /* used for transformation
+                                               routines */
+
+   png_uint_32 idat_size PNG_DEPSTRUCT;     /* current IDAT size for read */
+   png_uint_32 crc PNG_DEPSTRUCT;           /* current chunk CRC value */
+   png_colorp palette PNG_DEPSTRUCT;        /* palette from the input file */
+   png_uint_16 num_palette PNG_DEPSTRUCT;   /* number of color entries in
+                                               palette */
+   png_uint_16 num_trans PNG_DEPSTRUCT;     /* number of transparency values */
+   png_byte chunk_name[5] PNG_DEPSTRUCT;    /* null-terminated name of current
+                                               chunk */
+   png_byte compression PNG_DEPSTRUCT;      /* file compression type
+                                               (always 0) */
+   png_byte filter PNG_DEPSTRUCT;           /* file filter type (always 0) */
+   png_byte interlaced PNG_DEPSTRUCT;       /* PNG_INTERLACE_NONE,
+                                               PNG_INTERLACE_ADAM7 */
+   png_byte pass PNG_DEPSTRUCT;             /* current interlace pass (0 - 6) */
+   png_byte do_filter PNG_DEPSTRUCT;        /* row filter flags (see
+                                               PNG_FILTER_ below ) */
+   png_byte color_type PNG_DEPSTRUCT;       /* color type of file */
+   png_byte bit_depth PNG_DEPSTRUCT;        /* bit depth of file */
+   png_byte usr_bit_depth PNG_DEPSTRUCT;    /* bit depth of users row */
+   png_byte pixel_depth PNG_DEPSTRUCT;      /* number of bits per pixel */
+   png_byte channels PNG_DEPSTRUCT;         /* number of channels in file */
+   png_byte usr_channels PNG_DEPSTRUCT;     /* channels at start of write */
+   png_byte sig_bytes PNG_DEPSTRUCT;        /* magic bytes read/written from
+                                               start of file */
+
+#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
+   png_uint_16 filler PNG_DEPSTRUCT;           /* filler bytes for pixel
+                                                  expansion */
+#endif
+
+#ifdef PNG_bKGD_SUPPORTED
+   png_byte background_gamma_type PNG_DEPSTRUCT;
+#  ifdef PNG_FLOATING_POINT_SUPPORTED
+   float background_gamma PNG_DEPSTRUCT;
+#  endif
+   png_color_16 background PNG_DEPSTRUCT;   /* background color in
+                                               screen gamma space */
+#ifdef PNG_READ_GAMMA_SUPPORTED
+   png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized
+                                               to gamma 1.0 */
+#endif
+#endif /* PNG_bKGD_SUPPORTED */
+
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+   png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing
+                                               output */
+   png_uint_32 flush_dist PNG_DEPSTRUCT;    /* how many rows apart to flush,
+                                               0 - no flush */
+   png_uint_32 flush_rows PNG_DEPSTRUCT;    /* number of rows written since
+                                               last flush */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   int gamma_shift PNG_DEPSTRUCT;      /* number of "insignificant" bits
+                                          16-bit gamma */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+   float gamma PNG_DEPSTRUCT;          /* file gamma value */
+   float screen_gamma PNG_DEPSTRUCT;   /* screen gamma value
+                                          (display_exponent) */
+#endif
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_bytep gamma_table PNG_DEPSTRUCT;     /* gamma table for 8-bit
+                                               depth files */
+   png_bytep gamma_from_1 PNG_DEPSTRUCT;    /* converts from 1.0 to screen */
+   png_bytep gamma_to_1 PNG_DEPSTRUCT;      /* converts from file to 1.0 */
+   png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit
+                                                  depth files */
+   png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to
+                                                   screen */
+   png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */
+#endif
+
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
+   png_color_8 sig_bit PNG_DEPSTRUCT;       /* significant bits in each
+                                               available channel */
+#endif
+
+#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
+   png_color_8 shift PNG_DEPSTRUCT;         /* shift for significant bit
+                                               tranformation */
+#endif
+
+#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
+ || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_bytep trans_alpha PNG_DEPSTRUCT;           /* alpha values for
+                                                     paletted files */
+   png_color_16 trans_color PNG_DEPSTRUCT;  /* transparent color for
+                                               non-paletted files */
+#endif
+
+   png_read_status_ptr read_row_fn PNG_DEPSTRUCT;   /* called after each
+                                                       row is decoded */
+   png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each
+                                                       row is encoded */
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+   png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header
+                                                      data fully read */
+   png_progressive_row_ptr row_fn PNG_DEPSTRUCT;   /* called after each
+                                                      prog. row is decoded */
+   png_progressive_end_ptr end_fn PNG_DEPSTRUCT;   /* called after image
+                                                      is complete */
+   png_bytep save_buffer_ptr PNG_DEPSTRUCT;        /* current location in
+                                                      save_buffer */
+   png_bytep save_buffer PNG_DEPSTRUCT;            /* buffer for previously
+                                                      read data */
+   png_bytep current_buffer_ptr PNG_DEPSTRUCT;     /* current location in
+                                                      current_buffer */
+   png_bytep current_buffer PNG_DEPSTRUCT;         /* buffer for recently
+                                                      used data */
+   png_uint_32 push_length PNG_DEPSTRUCT;          /* size of current input
+                                                      chunk */
+   png_uint_32 skip_length PNG_DEPSTRUCT;          /* bytes to skip in
+                                                      input data */
+   png_size_t save_buffer_size PNG_DEPSTRUCT;      /* amount of data now
+                                                      in save_buffer */
+   png_size_t save_buffer_max PNG_DEPSTRUCT;       /* total size of
+                                                      save_buffer */
+   png_size_t buffer_size PNG_DEPSTRUCT;           /* total amount of
+                                                      available input data */
+   png_size_t current_buffer_size PNG_DEPSTRUCT;   /* amount of data now
+                                                      in current_buffer */
+   int process_mode PNG_DEPSTRUCT;                 /* what push library
+                                                      is currently doing */
+   int cur_palette PNG_DEPSTRUCT;                  /* current push library
+                                                      palette index */
+
+#  ifdef PNG_TEXT_SUPPORTED
+     png_size_t current_text_size PNG_DEPSTRUCT;   /* current size of
+                                                      text input data */
+     png_size_t current_text_left PNG_DEPSTRUCT;   /* how much text left
+                                                      to read in input */
+     png_charp current_text PNG_DEPSTRUCT;         /* current text chunk
+                                                      buffer */
+     png_charp current_text_ptr PNG_DEPSTRUCT;     /* current location
+                                                      in current_text */
+#  endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */
+
+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
+
+#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
+/* For the Borland special 64K segment handler */
+   png_bytepp offset_table_ptr PNG_DEPSTRUCT;
+   png_bytep offset_table PNG_DEPSTRUCT;
+   png_uint_16 offset_table_number PNG_DEPSTRUCT;
+   png_uint_16 offset_table_count PNG_DEPSTRUCT;
+   png_uint_16 offset_table_count_free PNG_DEPSTRUCT;
+#endif
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+   png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for quantizing */
+   png_bytep quantize_index PNG_DEPSTRUCT; /* index translation for palette
+                                              files */
+#endif
+
+#if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
+   png_uint_16p hist PNG_DEPSTRUCT;                /* histogram */
+#endif
+
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+   png_byte heuristic_method PNG_DEPSTRUCT;        /* heuristic for row
+                                                      filter selection */
+   png_byte num_prev_filters PNG_DEPSTRUCT;        /* number of weights
+                                                      for previous rows */
+   png_bytep prev_filters PNG_DEPSTRUCT;           /* filter type(s) of
+                                                      previous row(s) */
+   png_uint_16p filter_weights PNG_DEPSTRUCT;      /* weight(s) for previous
+                                                      line(s) */
+   png_uint_16p inv_filter_weights PNG_DEPSTRUCT;  /* 1/weight(s) for
+                                                      previous line(s) */
+   png_uint_16p filter_costs PNG_DEPSTRUCT;        /* relative filter
+                                                      calculation cost */
+   png_uint_16p inv_filter_costs PNG_DEPSTRUCT;    /* 1/relative filter
+                                                      calculation cost */
+#endif
+
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+   png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */
+#endif
+
+/* New members added in libpng-1.0.6 */
+
+   png_uint_32 free_me PNG_DEPSTRUCT;    /* flags items libpng is
+                                            responsible for freeing */
+
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+   png_voidp user_chunk_ptr PNG_DEPSTRUCT;
+   png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read
+                                                           chunk handler */
+#endif
+
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+   int num_chunk_list PNG_DEPSTRUCT;
+   png_bytep chunk_list PNG_DEPSTRUCT;
+#endif
+
+/* New members added in libpng-1.0.3 */
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+   png_byte rgb_to_gray_status PNG_DEPSTRUCT;
+   /* These were changed from png_byte in libpng-1.0.6 */
+   png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT;
+   png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT;
+   png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT;
+#endif
+
+/* New member added in libpng-1.0.4 (renamed in 1.0.9) */
+#if defined(PNG_MNG_FEATURES_SUPPORTED) || \
+    defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
+    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
+/* Changed from png_byte to png_uint_32 at version 1.2.0 */
+   png_uint_32 mng_features_permitted PNG_DEPSTRUCT;
+#endif
+
+/* New member added in libpng-1.0.7 */
+#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
+   png_fixed_point int_gamma PNG_DEPSTRUCT;
+#endif
+
+/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+   png_byte filter_type PNG_DEPSTRUCT;
+#endif
+
+/* New members added in libpng-1.2.0 */
+
+/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
+#ifdef PNG_USER_MEM_SUPPORTED
+   png_voidp mem_ptr PNG_DEPSTRUCT;             /* user supplied struct for
+                                                   mem functions */
+   png_malloc_ptr malloc_fn PNG_DEPSTRUCT;      /* function for
+                                                   allocating memory */
+   png_free_ptr free_fn PNG_DEPSTRUCT;          /* function for
+                                                   freeing memory */
+#endif
+
+/* New member added in libpng-1.0.13 and 1.2.0 */
+   png_bytep big_row_buf PNG_DEPSTRUCT;         /* buffer to save current
+                                                   (unfiltered) row */
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+/* The following three members were added at version 1.0.14 and 1.2.4 */
+   png_bytep quantize_sort PNG_DEPSTRUCT;          /* working sort array */
+   png_bytep index_to_palette PNG_DEPSTRUCT;       /* where the original
+                                                     index currently is
+                                                     in the palette */
+   png_bytep palette_to_index PNG_DEPSTRUCT;       /* which original index
+                                                      points to this
+                                                      palette color */
+#endif
+
+/* New members added in libpng-1.0.16 and 1.2.6 */
+   png_byte compression_type PNG_DEPSTRUCT;
+
+#ifdef PNG_USER_LIMITS_SUPPORTED
+   png_uint_32 user_width_max PNG_DEPSTRUCT;
+   png_uint_32 user_height_max PNG_DEPSTRUCT;
+   /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
+    * chunks that can be stored (0 means unlimited).
+    */
+   png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT;
+#endif
+
+/* New member added in libpng-1.0.25 and 1.2.17 */
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+   /* Storage for unknown chunk that the library doesn't recognize. */
+   png_unknown_chunk unknown_chunk PNG_DEPSTRUCT;
+#endif
+
+/* New members added in libpng-1.2.26 */
+  png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT;
+  png_uint_32 old_prev_row_size PNG_DEPSTRUCT;
+
+/* New member added in libpng-1.2.30 */
+  png_charp chunkdata PNG_DEPSTRUCT;  /* buffer for reading chunk data */
+
+#ifdef PNG_IO_STATE_SUPPORTED
+/* New member added in libpng-1.4.0 */
+   png_uint_32 io_state PNG_DEPSTRUCT;
+#endif
+};
+
+
+/* This triggers a compiler error in png.c, if png.c and png.h
+ * do not agree upon the version number.
+ */
+typedef png_structp version_1_4_4;
+
+typedef png_struct FAR * FAR * png_structpp;
+
+/* Here are the function definitions most commonly used.  This is not
+ * the place to find out how to use libpng.  See libpng.txt for the
+ * full explanation, see example.c for the summary.  This just provides
+ * a simple one line description of the use of each function.
+ */
+
+/* Returns the version number of the library */
+PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));
+
+/* Tell lib we have already handled the first <num_bytes> magic bytes.
+ * Handling more than 8 bytes from the beginning of the file is an error.
+ */
+PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
+   int num_bytes));
+
+/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a
+ * PNG file.  Returns zero if the supplied bytes match the 8-byte PNG
+ * signature, and non-zero otherwise.  Having num_to_check == 0 or
+ * start > 7 will always fail (ie return non-zero).
+ */
+PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
+   png_size_t num_to_check));
+
+/* Simple signature checking function.  This is the same as calling
+ * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
+ */
+#define png_check_sig(sig,n) !png_sig_cmp((sig), 0, (n))
+
+/* Allocate and initialize png_ptr struct for reading, and any other memory. */
+PNG_EXPORT(png_structp,png_create_read_struct)
+   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
+   png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
+
+/* Allocate and initialize png_ptr struct for writing, and any other memory */
+PNG_EXPORT(png_structp,png_create_write_struct)
+   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
+   png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
+
+PNG_EXPORT(png_size_t,png_get_compression_buffer_size)
+   PNGARG((png_structp png_ptr));
+
+PNG_EXPORT(void,png_set_compression_buffer_size)
+   PNGARG((png_structp png_ptr, png_size_t size));
+
+/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp
+ * match up.
+ */
+#ifdef PNG_SETJMP_SUPPORTED
+/* This function returns the jmp_buf built in to *png_ptr.  It must be
+ * supplied with an appropriate 'longjmp' function to use on that jmp_buf
+ * unless the default error function is overridden in which case NULL is
+ * acceptable.  The size of the jmp_buf is checked against the actual size
+ * allocated by the library - the call will return NULL on a mismatch
+ * indicating an ABI mismatch.
+ */
+PNG_EXPORT(jmp_buf*, png_set_longjmp_fn)
+   PNGARG((png_structp png_ptr, png_longjmp_ptr longjmp_fn, size_t
+       jmp_buf_size));
+#  define png_jmpbuf(png_ptr) \
+   (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf)))
+#else
+#  define png_jmpbuf(png_ptr) \
+   (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP)
+#endif
+
+#ifdef PNG_READ_SUPPORTED
+/* Reset the compression stream */
+PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));
+#endif
+
+/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */
+#ifdef PNG_USER_MEM_SUPPORTED
+PNG_EXPORT(png_structp,png_create_read_struct_2)
+   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
+   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
+   png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
+PNG_EXPORT(png_structp,png_create_write_struct_2)
+   PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
+   png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
+   png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
+#endif
+
+/* Write the PNG file signature. */
+PNG_EXPORT(void,png_write_sig) PNGARG((png_structp png_ptr));
+
+/* Write a PNG chunk - size, type, (optional) data, CRC. */
+PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr,
+   png_bytep chunk_name, png_bytep data, png_size_t length));
+
+/* Write the start of a PNG chunk - length and chunk name. */
+PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr,
+   png_bytep chunk_name, png_uint_32 length));
+
+/* Write the data of a PNG chunk started with png_write_chunk_start(). */
+PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr,
+   png_bytep data, png_size_t length));
+
+/* Finish a chunk started with png_write_chunk_start() (includes CRC). */
+PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));
+
+/* Allocate and initialize the info structure */
+PNG_EXPORT(png_infop,png_create_info_struct)
+   PNGARG((png_structp png_ptr)) PNG_ALLOCATED;
+
+PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr,
+    png_size_t png_info_struct_size));
+
+/* Writes all the PNG information before the image. */
+PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the information before the actual image data. */
+PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+#endif
+
+#ifdef PNG_TIME_RFC1123_SUPPORTED
+PNG_EXPORT(png_charp,png_convert_to_rfc1123)
+   PNGARG((png_structp png_ptr, png_timep ptime));
+#endif
+
+#ifdef PNG_CONVERT_tIME_SUPPORTED
+/* Convert from a struct tm to png_time */
+PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
+   struct tm FAR * ttime));
+
+/* Convert from time_t to png_time.  Uses gmtime() */
+PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
+   time_t ttime));
+#endif /* PNG_CONVERT_tIME_SUPPORTED */
+
+#ifdef PNG_READ_EXPAND_SUPPORTED
+/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */
+PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));
+PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp
+  png_ptr));
+PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));
+PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
+/* Use blue, green, red order for pixels. */
+PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
+/* Expand the grayscale to 24-bit RGB if necessary. */
+PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
+/* Reduce RGB to grayscale. */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr,
+   int error_action, double red, double green ));
+#endif
+PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr,
+   int error_action, png_fixed_point red, png_fixed_point green ));
+PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp
+   png_ptr));
+#endif
+
+PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth,
+   png_colorp palette));
+
+#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
+PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
+    defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \
+    defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
+PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
+/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */
+PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr,
+   png_uint_32 filler, int flags));
+/* The values of the PNG_FILLER_ defines should NOT be changed */
+#define PNG_FILLER_BEFORE 0
+#define PNG_FILLER_AFTER 1
+/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */
+PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
+   png_uint_32 filler, int flags));
+#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */
+
+#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
+/* Swap bytes in 16-bit depth files. */
+PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
+/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */
+PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_PACKSWAP_SUPPORTED) || \
+    defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+/* Swap packing order of pixels in bytes. */
+PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
+/* Converts files to legal bit depths. */
+PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr,
+   png_color_8p true_bits));
+#endif
+
+#if defined(PNG_READ_INTERLACING_SUPPORTED) || \
+    defined(PNG_WRITE_INTERLACING_SUPPORTED)
+/* Have the code handle the interlacing.  Returns the number of passes. */
+PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
+/* Invert monochrome files */
+PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_BACKGROUND_SUPPORTED
+/* Handle alpha and tRNS by replacing with a background color. */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
+   png_color_16p background_color, int background_gamma_code,
+   int need_expand, double background_gamma));
+#endif
+#define PNG_BACKGROUND_GAMMA_UNKNOWN 0
+#define PNG_BACKGROUND_GAMMA_SCREEN  1
+#define PNG_BACKGROUND_GAMMA_FILE    2
+#define PNG_BACKGROUND_GAMMA_UNIQUE  3
+#endif
+
+#ifdef PNG_READ_16_TO_8_SUPPORTED
+/* Strip the second byte of information from a 16-bit depth file. */
+PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_QUANTIZE_SUPPORTED
+/* Turn on quantizing, and reduce the palette to the number of colors
+ * available.  Prior to libpng-1.4.2, this was png_set_dither().
+ */
+PNG_EXPORT(void,png_set_quantize) PNGARG((png_structp png_ptr,
+   png_colorp palette, int num_palette, int maximum_colors,
+   png_uint_16p histogram, int full_quantize));
+#endif
+/* This migration aid will be removed from libpng-1.5.0 */
+#define png_set_dither png_set_quantize
+
+#ifdef PNG_READ_GAMMA_SUPPORTED
+/* Handle gamma correction. Screen_gamma=(display_exponent) */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr,
+   double screen_gamma, double default_file_gamma));
+#endif
+#endif
+
+
+#ifdef PNG_WRITE_FLUSH_SUPPORTED
+/* Set how many lines between output flushes - 0 for no flushing */
+PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
+/* Flush the current PNG output buffer */
+PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
+#endif
+
+/* Optional update palette with requested transformations */
+PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
+
+/* Optional call to update the users info structure */
+PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read one or more rows of image data. */
+PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
+   png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
+#endif
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read a row of data. */
+PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
+   png_bytep row,
+   png_bytep display_row));
+#endif
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the whole image into memory at once. */
+PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
+   png_bytepp image));
+#endif
+
+/* Write a row of image data */
+PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
+   png_bytep row));
+
+/* Write a few rows of image data */
+PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
+   png_bytepp row, png_uint_32 num_rows));
+
+/* Write the image data */
+PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
+   png_bytepp image));
+
+/* Write the end of the PNG file. */
+PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+
+#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
+/* Read the end of the PNG file. */
+PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
+   png_infop info_ptr));
+#endif
+
+/* Free any memory associated with the png_info_struct */
+PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
+   png_infopp info_ptr_ptr));
+
+/* Free any memory associated with the png_struct and the png_info_structs */
+PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
+   png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
+
+/* Free any memory associated with the png_struct and the png_info_structs */
+PNG_EXPORT(void,png_destroy_write_struct)
+   PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
+
+/* Set the libpng method of handling chunk CRC errors */
+PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
+   int crit_action, int ancil_action));
+
+/* Values for png_set_crc_action() to say how to handle CRC errors in
+ * ancillary and critical chunks, and whether to use the data contained
+ * therein.  Note that it is impossible to "discard" data in a critical
+ * chunk.  For versions prior to 0.90, the action was always error/quit,
+ * whereas in version 0.90 and later, the action for CRC errors in ancillary
+ * chunks is warn/discard.  These values should NOT be changed.
+ *
+ *      value                       action:critical     action:ancillary
+ */
+#define PNG_CRC_DEFAULT       0  /* error/quit          warn/discard data */
+#define PNG_CRC_ERROR_QUIT    1  /* error/quit          error/quit        */
+#define PNG_CRC_WARN_DISCARD  2  /* (INVALID)           warn/discard data */
+#define PNG_CRC_WARN_USE      3  /* warn/use data       warn/use data     */
+#define PNG_CRC_QUIET_USE     4  /* quiet/use data      quiet/use data    */
+#define PNG_CRC_NO_CHANGE     5  /* use current value   use current value */
+
+/* These functions give the user control over the scan-line filtering in
+ * libpng and the compression methods used by zlib.  These functions are
+ * mainly useful for testing, as the defaults should work with most users.
+ * Those users who are tight on memory or want faster performance at the
+ * expense of compression can modify them.  See the compression library
+ * header file (zlib.h) for an explination of the compression functions.
+ */
+
+/* Set the filtering method(s) used by libpng.  Currently, the only valid
+ * value for "method" is 0.
+ */
+PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
+   int filters));
+
+/* Flags for png_set_filter() to say which filters to use.  The flags
+ * are chosen so that they don't conflict with real filter types
+ * below, in case they are supplied instead of the #defined constants.
+ * These values should NOT be changed.
+ */
+#define PNG_NO_FILTERS     0x00
+#define PNG_FILTER_NONE    0x08
+#define PNG_FILTER_SUB     0x10
+#define PNG_FILTER_UP      0x20
+#define PNG_FILTER_AVG     0x40
+#define PNG_FILTER_PAETH   0x80
+#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \
+                         PNG_FILTER_AVG | PNG_FILTER_PAETH)
+
+/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now.
+ * These defines should NOT be changed.
+ */
+#define PNG_FILTER_VALUE_NONE  0
+#define PNG_FILTER_VALUE_SUB   1
+#define PNG_FILTER_VALUE_UP    2
+#define PNG_FILTER_VALUE_AVG   3
+#define PNG_FILTER_VALUE_PAETH 4
+#define PNG_FILTER_VALUE_LAST  5
+
+#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */
+/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_
+ * defines, either the default (minimum-sum-of-absolute-differences), or
+ * the experimental method (weighted-minimum-sum-of-absolute-differences).
+ *
+ * Weights are factors >= 1.0, indicating how important it is to keep the
+ * filter type consistent between rows.  Larger numbers mean the current
+ * filter is that many times as likely to be the same as the "num_weights"
+ * previous filters.  This is cumulative for each previous row with a weight.
+ * There needs to be "num_weights" values in "filter_weights", or it can be
+ * NULL if the weights aren't being specified.  Weights have no influence on
+ * the selection of the first row filter.  Well chosen weights can (in theory)
+ * improve the compression for a given image.
+ *
+ * Costs are factors >= 1.0 indicating the relative decoding costs of a
+ * filter type.  Higher costs indicate more decoding expense, and are
+ * therefore less likely to be selected over a filter with lower computational
+ * costs.  There needs to be a value in "filter_costs" for each valid filter
+ * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't
+ * setting the costs.  Costs try to improve the speed of decompression without
+ * unduly increasing the compressed image size.
+ *
+ * A negative weight or cost indicates the default value is to be used, and
+ * values in the range [0.0, 1.0) indicate the value is to remain unchanged.
+ * The default values for both weights and costs are currently 1.0, but may
+ * change if good general weighting/cost heuristics can be found.  If both
+ * the weights and costs are set to 1.0, this degenerates the WEIGHTED method
+ * to the UNWEIGHTED method, but with added encoding time/computation.
+ */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr,
+   int heuristic_method, int num_weights, png_doublep filter_weights,
+   png_doublep filter_costs));
+#endif
+#endif /*  PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */
+
+/* Heuristic used for row filter selection.  These defines should NOT be
+ * changed.
+ */
+#define PNG_FILTER_HEURISTIC_DEFAULT    0  /* Currently "UNWEIGHTED" */
+#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1  /* Used by libpng < 0.95 */
+#define PNG_FILTER_HEURISTIC_WEIGHTED   2  /* Experimental feature */
+#define PNG_FILTER_HEURISTIC_LAST       3  /* Not a valid value */
+
+/* Set the library compression level.  Currently, valid values range from
+ * 0 - 9, corresponding directly to the zlib compression levels 0 - 9
+ * (0 - no compression, 9 - "maximal" compression).  Note that tests have
+ * shown that zlib compression levels 3-6 usually perform as well as level 9
+ * for PNG images, and do considerably fewer caclulations.  In the future,
+ * these values may not correspond directly to the zlib compression levels.
+ */
+PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr,
+   int level));
+
+PNG_EXPORT(void,png_set_compression_mem_level)
+   PNGARG((png_structp png_ptr, int mem_level));
+
+PNG_EXPORT(void,png_set_compression_strategy)
+   PNGARG((png_structp png_ptr, int strategy));
+
+PNG_EXPORT(void,png_set_compression_window_bits)
+   PNGARG((png_structp png_ptr, int window_bits));
+
+PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr,
+   int method));
+
+/* These next functions are called for input/output, memory, and error
+ * handling.  They are in the file pngrio.c, pngwio.c, and pngerror.c,
+ * and call standard C I/O routines such as fread(), fwrite(), and
+ * fprintf().  These functions can be made to use other I/O routines
+ * at run time for those applications that need to handle I/O in a
+ * different manner by calling png_set_???_fn().  See libpng.txt for
+ * more information.
+ */
+
+#ifdef PNG_STDIO_SUPPORTED
+/* Initialize the input/output for the PNG file to the default functions. */
+PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr,
+    png_FILE_p fp));
+#endif
+
+/* Replace the (error and abort), and warning functions with user
+ * supplied functions.  If no messages are to be printed you must still
+ * write and use replacement functions. The replacement error_fn should
+ * still do a longjmp to the last setjmp location if you are using this
+ * method of error handling.  If error_fn or warning_fn is NULL, the
+ * default function will be used.
+ */
+
+PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr,
+   png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn));
+
+/* Return the user pointer associated with the error functions */
+PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr));
+
+/* Replace the default data output functions with a user supplied one(s).
+ * If buffered output is not used, then output_flush_fn can be set to NULL.
+ * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time
+ * output_flush_fn will be ignored (and thus can be NULL).
+ * It is probably a mistake to use NULL for output_flush_fn if
+ * write_data_fn is not also NULL unless you have built libpng with
+ * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's
+ * default flush function, which uses the standard *FILE structure, will
+ * be used.
+ */
+PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
+   png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
+
+/* Replace the default data input function with a user supplied one. */
+PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr,
+   png_voidp io_ptr, png_rw_ptr read_data_fn));
+
+/* Return the user pointer associated with the I/O functions */
+PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
+
+PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr,
+   png_read_status_ptr read_row_fn));
+
+PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr,
+   png_write_status_ptr write_row_fn));
+
+#ifdef PNG_USER_MEM_SUPPORTED
+/* Replace the default memory allocation functions with user supplied one(s). */
+PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr,
+   png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn));
+/* Return the user pointer associated with the memory functions */
+PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
+PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp
+   png_ptr, png_user_transform_ptr read_user_transform_fn));
+#endif
+
+#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
+PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp
+   png_ptr, png_user_transform_ptr write_user_transform_fn));
+#endif
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp
+   png_ptr, png_voidp user_transform_ptr, int user_transform_depth,
+   int user_transform_channels));
+/* Return the user pointer associated with the user transform functions */
+PNG_EXPORT(png_voidp,png_get_user_transform_ptr)
+   PNGARG((png_structp png_ptr));
+#endif
+
+#ifdef PNG_USER_CHUNKS_SUPPORTED
+PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr,
+   png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn));
+PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp
+   png_ptr));
+#endif
+
+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
+/* Sets the function callbacks for the push reader, and a pointer to a
+ * user-defined structure available to the callback functions.
+ */
+PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
+   png_voidp progressive_ptr,
+   png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
+   png_progressive_end_ptr end_fn));
+
+/* Returns the user pointer associated with the push read functions */
+PNG_EXPORT(png_voidp,png_get_progressive_ptr)
+   PNGARG((png_structp png_ptr));
+
+/* Function to be called when data becomes available */
+PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
+
+/* Function that combines rows.  Not very much different than the
+ * png_combine_row() call.  Is this even used?????
+ */
+PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr,
+   png_bytep old_row, png_bytep new_row));
+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
+
+PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
+   png_alloc_size_t size)) PNG_ALLOCATED;
+/* Added at libpng version 1.4.0 */
+PNG_EXPORT(png_voidp,png_calloc) PNGARG((png_structp png_ptr,
+   png_alloc_size_t size)) PNG_ALLOCATED;
+
+/* Added at libpng version 1.2.4 */
+PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
+   png_alloc_size_t size)) PNG_ALLOCATED;
+
+/* Frees a pointer allocated by png_malloc() */
+PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
+
+/* Free data that was allocated internally */
+PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 free_me, int num));
+/* Reassign responsibility for freeing existing data, whether allocated
+ * by libpng or by the application */
+PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int freer, png_uint_32 mask));
+/* Assignments for png_data_freer */
+#define PNG_DESTROY_WILL_FREE_DATA 1
+#define PNG_SET_WILL_FREE_DATA 1
+#define PNG_USER_WILL_FREE_DATA 2
+/* Flags for png_ptr->free_me and info_ptr->free_me */
+#define PNG_FREE_HIST 0x0008
+#define PNG_FREE_ICCP 0x0010
+#define PNG_FREE_SPLT 0x0020
+#define PNG_FREE_ROWS 0x0040
+#define PNG_FREE_PCAL 0x0080
+#define PNG_FREE_SCAL 0x0100
+#define PNG_FREE_UNKN 0x0200
+#define PNG_FREE_LIST 0x0400
+#define PNG_FREE_PLTE 0x1000
+#define PNG_FREE_TRNS 0x2000
+#define PNG_FREE_TEXT 0x4000
+#define PNG_FREE_ALL  0x7fff
+#define PNG_FREE_MUL  0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */
+
+#ifdef PNG_USER_MEM_SUPPORTED
+PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr,
+   png_alloc_size_t size)) PNG_ALLOCATED;
+PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr,
+   png_voidp ptr));
+#endif
+
+#ifndef PNG_NO_ERROR_TEXT
+/* Fatal error in PNG image of libpng - can't continue */
+PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
+   png_const_charp error_message)) PNG_NORETURN;
+
+/* The same, but the chunk name is prepended to the error string. */
+PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
+   png_const_charp error_message)) PNG_NORETURN;
+
+#else
+/* Fatal error in PNG image of libpng - can't continue */
+PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN;
+#endif
+
+/* Non-fatal error in libpng.  Can continue, but may have a problem. */
+PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+
+/* Non-fatal error in libpng, chunk name is prepended to message. */
+PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
+/* Benign error in libpng.  Can continue, but may have a problem.
+ * User can choose whether to handle as a fatal error or as a warning. */
+PNG_EXPORT(void,png_benign_error) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+
+/* Same, chunk name is prepended to message. */
+PNG_EXPORT(void,png_chunk_benign_error) PNGARG((png_structp png_ptr,
+   png_const_charp warning_message));
+
+PNG_EXPORT(void,png_set_benign_errors) PNGARG((png_structp
+   png_ptr, int allowed));
+#endif
+
+/* The png_set_<chunk> functions are for storing values in the png_info_struct.
+ * Similarly, the png_get_<chunk> calls are used to read values from the
+ * png_info_struct, either storing the parameters in the passed variables, or
+ * setting pointers into the png_info_struct where the data is stored.  The
+ * png_get_<chunk> functions return a non-zero value if the data was available
+ * in info_ptr, or return zero and do not change any of the parameters if the
+ * data was not available.
+ *
+ * These functions should be used instead of directly accessing png_info
+ * to avoid problems with future changes in the size and internal layout of
+ * png_info_struct.
+ */
+/* Returns "flag" if chunk data is valid in info_ptr. */
+PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr,
+png_infop info_ptr, png_uint_32 flag));
+
+/* Returns number of bytes needed to hold a transformed row. */
+PNG_EXPORT(png_size_t,png_get_rowbytes) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#ifdef PNG_INFO_IMAGE_SUPPORTED
+/* Returns row_pointers, which is an array of pointers to scanlines that was
+ * returned from png_read_png().
+ */
+PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+/* Set row_pointers, which is an array of pointers to scanlines for use
+ * by png_write_png().
+ */
+PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytepp row_pointers));
+#endif
+
+/* Returns number of color channels in image. */
+PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#ifdef PNG_EASY_ACCESS_SUPPORTED
+/* Returns image width in pixels. */
+PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image height in pixels. */
+PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image bit_depth. */
+PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image color_type. */
+PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image filter_type. */
+PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image interlace_type. */
+PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image compression_type. */
+PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns image resolution in pixels per meter, from pHYs chunk data. */
+PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+/* Returns pixel aspect ratio, computed from pHYs chunk data.  */
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+#endif
+
+/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */
+PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp
+png_ptr, png_infop info_ptr));
+
+#endif /* PNG_EASY_ACCESS_SUPPORTED */
+
+/* Returns pointer to signature string read from PNG header */
+PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#ifdef PNG_bKGD_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_16p *background));
+#endif
+
+#ifdef PNG_bKGD_SUPPORTED
+PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_16p background));
+#endif
+
+#ifdef PNG_cHRM_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double *white_x, double *white_y, double *red_x,
+   double *red_y, double *green_x, double *green_y, double *blue_x,
+   double *blue_y));
+#endif
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point
+   *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y,
+   png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point
+   *int_blue_x, png_fixed_point *int_blue_y));
+#endif
+#endif
+
+#ifdef PNG_cHRM_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double white_x, double white_y, double red_x,
+   double red_y, double green_x, double green_y, double blue_x, double blue_y));
+#endif
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y,
+   png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
+   int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
+   png_fixed_point int_blue_y));
+#endif
+#endif
+
+#ifdef PNG_gAMA_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double *file_gamma));
+#endif
+PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_fixed_point *int_file_gamma));
+#endif
+
+#ifdef PNG_gAMA_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, double file_gamma));
+#endif
+PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_fixed_point int_file_gamma));
+#endif
+
+#ifdef PNG_hIST_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_16p *hist));
+#endif
+
+#ifdef PNG_hIST_SUPPORTED
+PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_16p hist));
+#endif
+
+PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 *width, png_uint_32 *height,
+   int *bit_depth, int *color_type, int *interlace_method,
+   int *compression_method, int *filter_method));
+
+PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth,
+   int color_type, int interlace_method, int compression_method,
+   int filter_method));
+
+#ifdef PNG_oFFs_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y,
+   int *unit_type));
+#endif
+
+#ifdef PNG_oFFs_SUPPORTED
+PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y,
+   int unit_type));
+#endif
+
+#ifdef PNG_pCAL_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1,
+   int *type, int *nparams, png_charp *units, png_charpp *params));
+#endif
+
+#ifdef PNG_pCAL_SUPPORTED
+PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1,
+   int type, int nparams, png_charp units, png_charpp params));
+#endif
+
+#ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
+#endif
+
+#ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type));
+#endif
+
+PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_colorp *palette, int *num_palette));
+
+PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_colorp palette, int num_palette));
+
+#ifdef PNG_sBIT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_8p *sig_bit));
+#endif
+
+#ifdef PNG_sBIT_SUPPORTED
+PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_color_8p sig_bit));
+#endif
+
+#ifdef PNG_sRGB_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int *intent));
+#endif
+
+#ifdef PNG_sRGB_SUPPORTED
+PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int intent));
+PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int intent));
+#endif
+
+#ifdef PNG_iCCP_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_charpp name, int *compression_type,
+   png_charpp profile, png_uint_32 *proflen));
+   /* Note to maintainer: profile should be png_bytepp */
+#endif
+
+#ifdef PNG_iCCP_SUPPORTED
+PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_charp name, int compression_type,
+   png_charp profile, png_uint_32 proflen));
+   /* Note to maintainer: profile should be png_bytep */
+#endif
+
+#ifdef PNG_sPLT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_sPLT_tpp entries));
+#endif
+
+#ifdef PNG_sPLT_SUPPORTED
+PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_sPLT_tp entries, int nentries));
+#endif
+
+#ifdef PNG_TEXT_SUPPORTED
+/* png_get_text also returns the number of text chunks in *num_text */
+PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_textp *text_ptr, int *num_text));
+#endif
+
+/* Note while png_set_text() will accept a structure whose text,
+ * language, and  translated keywords are NULL pointers, the structure
+ * returned by png_get_text will always contain regular
+ * zero-terminated C strings.  They might be empty strings but
+ * they will never be NULL pointers.
+ */
+
+#ifdef PNG_TEXT_SUPPORTED
+PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_textp text_ptr, int num_text));
+#endif
+
+#ifdef PNG_tIME_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_timep *mod_time));
+#endif
+
+#ifdef PNG_tIME_SUPPORTED
+PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_timep mod_time));
+#endif
+
+#ifdef PNG_tRNS_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytep *trans_alpha, int *num_trans,
+   png_color_16p *trans_color));
+#endif
+
+#ifdef PNG_tRNS_SUPPORTED
+PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_bytep trans_alpha, int num_trans,
+   png_color_16p trans_color));
+#endif
+
+#ifdef PNG_tRNS_SUPPORTED
+#endif
+
+#ifdef PNG_sCAL_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int *unit, double *width, double *height));
+#else
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight));
+#endif
+#endif
+#endif /* PNG_sCAL_SUPPORTED */
+
+#ifdef PNG_sCAL_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int unit, double width, double height));
+#else
+#ifdef PNG_FIXED_POINT_SUPPORTED
+PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int unit, png_charp swidth, png_charp sheight));
+#endif
+#endif
+#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
+
+#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+/* Provide a list of chunks and how they are to be handled, if the built-in
+   handling or default unknown chunk handling is not desired.  Any chunks not
+   listed will be handled in the default manner.  The IHDR and IEND chunks
+   must not be listed.
+      keep = 0: follow default behaviour
+           = 1: do not keep
+           = 2: keep only if safe-to-copy
+           = 3: keep even if unsafe-to-copy
+*/
+PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
+   png_ptr, int keep, png_bytep chunk_list, int num_chunks));
+PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
+   chunk_name));
+#endif
+#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
+PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
+PNG_EXPORT(void, png_set_unknown_chunk_location)
+   PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location));
+PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
+   png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
+#endif
+
+/* Png_free_data() will turn off the "valid" flag for anything it frees.
+ * If you need to turn it off for a chunk that your application has freed,
+ * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
+ */
+PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
+   png_infop info_ptr, int mask));
+
+#ifdef PNG_INFO_IMAGE_SUPPORTED
+/* The "params" pointer is currently not used and is for future expansion. */
+PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
+                        png_infop info_ptr,
+                        int transforms,
+                        png_voidp params));
+PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
+                        png_infop info_ptr,
+                        int transforms,
+                        png_voidp params));
+#endif
+
+PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr));
+PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr));
+PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp
+    png_ptr));
+PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
+
+#ifdef PNG_MNG_FEATURES_SUPPORTED
+PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp
+   png_ptr, png_uint_32 mng_features_permitted));
+#endif
+
+/* For use in png_set_keep_unknown, added to version 1.2.6 */
+#define PNG_HANDLE_CHUNK_AS_DEFAULT   0
+#define PNG_HANDLE_CHUNK_NEVER        1
+#define PNG_HANDLE_CHUNK_IF_SAFE      2
+#define PNG_HANDLE_CHUNK_ALWAYS       3
+
+/* Strip the prepended error numbers ("#nnn ") from error and warning
+ * messages before passing them to the error or warning handler.
+ */
+#ifdef PNG_ERROR_NUMBERS_SUPPORTED
+PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
+   png_ptr, png_uint_32 strip_mode));
+#endif
+
+/* Added in libpng-1.2.6 */
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
+   png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max));
+PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp
+   png_ptr));
+PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
+   png_ptr));
+/* Added in libpng-1.4.0 */
+PNG_EXPORT(void,png_set_chunk_cache_max) PNGARG((png_structp
+   png_ptr, png_uint_32 user_chunk_cache_max));
+PNG_EXPORT(png_uint_32,png_get_chunk_cache_max)
+   PNGARG((png_structp png_ptr));
+/* Added in libpng-1.4.1 */
+PNG_EXPORT(void,png_set_chunk_malloc_max) PNGARG((png_structp
+   png_ptr, png_alloc_size_t user_chunk_cache_max));
+PNG_EXPORT(png_alloc_size_t,png_get_chunk_malloc_max)
+   PNGARG((png_structp png_ptr));
+#endif
+
+#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
+PNG_EXPORT(png_uint_32,png_get_pixels_per_inch) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXPORT(png_uint_32,png_get_x_pixels_per_inch) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXPORT(png_uint_32,png_get_y_pixels_per_inch) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXPORT(float,png_get_x_offset_inches) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+PNG_EXPORT(float,png_get_y_offset_inches) PNGARG((png_structp png_ptr,
+png_infop info_ptr));
+
+#ifdef PNG_pHYs_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_pHYs_dpi) PNGARG((png_structp png_ptr,
+png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
+#endif /* PNG_pHYs_SUPPORTED */
+#endif  /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
+
+/* Added in libpng-1.4.0 */
+#ifdef PNG_IO_STATE_SUPPORTED
+PNG_EXPORT(png_uint_32,png_get_io_state) PNGARG((png_structp png_ptr));
+
+PNG_EXPORT(png_bytep,png_get_io_chunk_name)
+   PNGARG((png_structp png_ptr));
+
+/* The flags returned by png_get_io_state() are the following: */
+#define PNG_IO_NONE        0x0000   /* no I/O at this moment */
+#define PNG_IO_READING     0x0001   /* currently reading */
+#define PNG_IO_WRITING     0x0002   /* currently writing */
+#define PNG_IO_SIGNATURE   0x0010   /* currently at the file signature */
+#define PNG_IO_CHUNK_HDR   0x0020   /* currently at the chunk header */
+#define PNG_IO_CHUNK_DATA  0x0040   /* currently at the chunk data */
+#define PNG_IO_CHUNK_CRC   0x0080   /* currently at the chunk crc */
+#define PNG_IO_MASK_OP     0x000f   /* current operation: reading/writing */
+#define PNG_IO_MASK_LOC    0x00f0   /* current location: sig/hdr/data/crc */
+#endif /* ?PNG_IO_STATE_SUPPORTED */
+
+/* Maintainer: Put new public prototypes here ^, in libpng.3, and project
+ * defs
+ */
+
+#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
+/* With these routines we avoid an integer divide, which will be slower on
+ * most machines.  However, it does take more operations than the corresponding
+ * divide method, so it may be slower on a few RISC systems.  There are two
+ * shifts (by 8 or 16 bits) and an addition, versus a single integer divide.
+ *
+ * Note that the rounding factors are NOT supposed to be the same!  128 and
+ * 32768 are correct for the NODIV code; 127 and 32767 are correct for the
+ * standard method.
+ *
+ * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ]
+ */
+
+ /* fg and bg should be in `gamma 1.0' space; alpha is the opacity          */
+
+#  define png_composite(composite, fg, alpha, bg)         \
+     { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \
+           * (png_uint_16)(alpha)                         \
+           + (png_uint_16)(bg)*(png_uint_16)(255          \
+           - (png_uint_16)(alpha)) + (png_uint_16)128);   \
+       (composite) = (png_byte)((temp + (temp >> 8)) >> 8); }
+
+#  define png_composite_16(composite, fg, alpha, bg)       \
+     { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg)  \
+           * (png_uint_32)(alpha)                          \
+           + (png_uint_32)(bg)*(png_uint_32)(65535L        \
+           - (png_uint_32)(alpha)) + (png_uint_32)32768L); \
+       (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
+
+#else  /* Standard method using integer division */
+
+#  define png_composite(composite, fg, alpha, bg)                            \
+     (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) +    \
+       (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) +       \
+       (png_uint_16)127) / 255)
+
+#  define png_composite_16(composite, fg, alpha, bg)                         \
+     (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \
+       (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) +      \
+       (png_uint_32)32767) / (png_uint_32)65535L)
+#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */
+
+#ifdef PNG_USE_READ_MACROS
+/* Inline macros to do direct reads of bytes from the input buffer.
+ * The png_get_int_32() routine assumes we are using two's complement
+ * format for negative values, which is almost certainly true.
+ */
+#  define png_get_uint_32(buf) \
+     (((png_uint_32)(*(buf)) << 24) + \
+      ((png_uint_32)(*((buf) + 1)) << 16) + \
+      ((png_uint_32)(*((buf) + 2)) << 8) + \
+      ((png_uint_32)(*((buf) + 3))))
+#  define png_get_uint_16(buf) \
+     (((png_uint_32)(*(buf)) << 8) + \
+      ((png_uint_32)(*((buf) + 1))))
+#  define png_get_int_32(buf) \
+     ((png_int_32)((*(buf) & 0x80) \
+      ? -((png_int_32)((png_get_uint_32(buf) ^ 0xffffffff)+1)) \
+      : (png_int_32)png_get_uint_32(buf)))
+#else
+PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf));
+PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf));
+#ifdef PNG_GET_INT_32_SUPPORTED
+PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf));
+#endif
+#endif
+PNG_EXPORT(png_uint_32,png_get_uint_31)
+  PNGARG((png_structp png_ptr, png_bytep buf));
+/* No png_get_int_16 -- may be added if there's a real need for it. */
+
+/* Place a 32-bit number into a buffer in PNG byte order (big-endian). */
+PNG_EXPORT(void,png_save_uint_32)
+   PNGARG((png_bytep buf, png_uint_32 i));
+PNG_EXPORT(void,png_save_int_32)
+   PNGARG((png_bytep buf, png_int_32 i));
+
+/* Place a 16-bit number into a buffer in PNG byte order.
+ * The parameter is declared unsigned int, not png_uint_16,
+ * just to avoid potential problems on pre-ANSI C compilers.
+ */
+PNG_EXPORT(void,png_save_uint_16)
+   PNGARG((png_bytep buf, unsigned int i));
+/* No png_save_int_16 -- may be added if there's a real need for it. */
+
+/* ************************************************************************* */
+
+/* Various modes of operation.  Note that after an init, mode is set to
+ * zero automatically when the structure is created.
+ */
+#define PNG_HAVE_IHDR               0x01
+#define PNG_HAVE_PLTE               0x02
+#define PNG_HAVE_IDAT               0x04
+#define PNG_AFTER_IDAT              0x08 /* Have complete zlib datastream */
+#define PNG_HAVE_IEND               0x10
+#define PNG_HAVE_gAMA               0x20
+#define PNG_HAVE_cHRM               0x40
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PNG_VERSION_INFO_ONLY */
+/* Do not put anything past this line */
+#endif /* PNG_H */
diff --git a/include/pngconf.h b/include/pngconf.h
new file mode 100644
index 0000000..41b13e9
--- /dev/null
+++ b/include/pngconf.h
@@ -0,0 +1,1540 @@
+
+/* pngconf.h - machine configurable file for libpng
+ *
+ * libpng version 1.4.4 - September 23, 2010
+ * For conditions of distribution and use, see copyright notice in png.h
+ * Copyright (c) 1998-2010 Glenn Randers-Pehrson
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ *
+ */
+
+/* Any machine specific code is near the front of this file, so if you
+ * are configuring libpng for a machine, you may want to read the section
+ * starting here down to where it starts to typedef png_color, png_text,
+ * and png_info.
+ */
+
+#ifndef PNGCONF_H
+#define PNGCONF_H
+
+#ifndef PNG_NO_LIMITS_H
+#  include <limits.h>
+#endif
+
+/* Added at libpng-1.2.9 */
+
+/* config.h is created by and PNG_CONFIGURE_LIBPNG is set by the "configure"
+ * script.
+ */
+#ifdef PNG_CONFIGURE_LIBPNG
+#  ifdef HAVE_CONFIG_H
+#    include "config.h"
+#  endif
+#endif
+
+/*
+ * Added at libpng-1.2.8
+ *
+ * PNG_USER_CONFIG has to be defined on the compiler command line. This
+ * includes the resource compiler for Windows DLL configurations.
+ */
+#ifdef PNG_USER_CONFIG
+#  include "pngusr.h"
+#  ifndef PNG_USER_PRIVATEBUILD
+#    define PNG_USER_PRIVATEBUILD
+#  endif
+#endif
+
+/*
+ * If you create a private DLL you should define in "pngusr.h" the following:
+ * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
+ *        the DLL was built>
+ *  e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
+ * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to
+ *        distinguish your DLL from those of the official release. These
+ *        correspond to the trailing letters that come after the version
+ *        number and must match your private DLL name>
+ *  e.g. // private DLL "libpng14gx.dll"
+ *       #define PNG_USER_DLLFNAME_POSTFIX "gx"
+ *
+ * The following macros are also at your disposal if you want to complete the
+ * DLL VERSIONINFO structure.
+ * - PNG_USER_VERSIONINFO_COMMENTS
+ * - PNG_USER_VERSIONINFO_COMPANYNAME
+ * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS
+ */
+
+#ifdef __STDC__
+#  ifdef SPECIALBUILD
+#    pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\
+     are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.")
+#  endif
+
+#  ifdef PRIVATEBUILD
+#    pragma message("PRIVATEBUILD is deprecated.\
+     Use PNG_USER_PRIVATEBUILD instead.")
+#    define PNG_USER_PRIVATEBUILD PRIVATEBUILD
+#  endif
+#endif /* __STDC__ */
+
+/* End of material added to libpng-1.2.8 */
+
+#ifndef PNG_VERSION_INFO_ONLY
+
+/* This is the size of the compression buffer, and thus the size of
+ * an IDAT chunk.  Make this whatever size you feel is best for your
+ * machine.  One of these will be allocated per png_struct.  When this
+ * is full, it writes the data to the disk, and does some other
+ * calculations.  Making this an extremely small size will slow
+ * the library down, but you may want to experiment to determine
+ * where it becomes significant, if you are concerned with memory
+ * usage.  Note that zlib allocates at least 32Kb also.  For readers,
+ * this describes the size of the buffer available to read the data in.
+ * Unless this gets smaller than the size of a row (compressed),
+ * it should not make much difference how big this is.
+ */
+
+#ifndef PNG_ZBUF_SIZE
+#  define PNG_ZBUF_SIZE 8192
+#endif
+
+/* Enable if you want a write-only libpng */
+
+#ifndef PNG_NO_READ_SUPPORTED
+#  define PNG_READ_SUPPORTED
+#endif
+
+/* Enable if you want a read-only libpng */
+
+#ifndef PNG_NO_WRITE_SUPPORTED
+#  define PNG_WRITE_SUPPORTED
+#endif
+
+/* Enabled in 1.4.0. */
+#ifdef PNG_ALLOW_BENIGN_ERRORS
+#  define png_benign_error png_warning
+#  define png_chunk_benign_error png_chunk_warning
+#else
+#  ifndef PNG_BENIGN_ERRORS_SUPPORTED
+#    define png_benign_error png_error
+#    define png_chunk_benign_error png_chunk_error
+#  endif
+#endif
+
+/* Added at libpng version 1.4.0 */
+#if !defined(PNG_NO_WARNINGS) && !defined(PNG_WARNINGS_SUPPORTED)
+#  define PNG_WARNINGS_SUPPORTED
+#endif
+
+/* Added at libpng version 1.4.0 */
+#if !defined(PNG_NO_ERROR_TEXT) && !defined(PNG_ERROR_TEXT_SUPPORTED)
+#  define PNG_ERROR_TEXT_SUPPORTED
+#endif
+
+/* Added at libpng version 1.4.0 */
+#if !defined(PNG_NO_CHECK_cHRM) && !defined(PNG_CHECK_cHRM_SUPPORTED)
+#  define PNG_CHECK_cHRM_SUPPORTED
+#endif
+
+/* Added at libpng version 1.4.0 */
+#if !defined(PNG_NO_ALIGNED_MEMORY) && !defined(PNG_ALIGNED_MEMORY_SUPPORTED)
+#  define PNG_ALIGNED_MEMORY_SUPPORTED
+#endif
+
+/* Enabled by default in 1.2.0.  You can disable this if you don't need to
+   support PNGs that are embedded in MNG datastreams */
+#ifndef PNG_NO_MNG_FEATURES
+#  ifndef PNG_MNG_FEATURES_SUPPORTED
+#    define PNG_MNG_FEATURES_SUPPORTED
+#  endif
+#endif
+
+/* Added at libpng version 1.4.0 */
+#ifndef PNG_NO_FLOATING_POINT_SUPPORTED
+#  ifndef PNG_FLOATING_POINT_SUPPORTED
+#    define PNG_FLOATING_POINT_SUPPORTED
+#  endif
+#endif
+
+/* Added at libpng-1.4.0beta49 for testing (this test is no longer used
+   in libpng and png_calloc() is always present)
+ */
+#define PNG_CALLOC_SUPPORTED
+
+/* If you are running on a machine where you cannot allocate more
+ * than 64K of memory at once, uncomment this.  While libpng will not
+ * normally need that much memory in a chunk (unless you load up a very
+ * large file), zlib needs to know how big of a chunk it can use, and
+ * libpng thus makes sure to check any memory allocation to verify it
+ * will fit into memory.
+#define PNG_MAX_MALLOC_64K
+ */
+#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
+#  define PNG_MAX_MALLOC_64K
+#endif
+
+/* Special munging to support doing things the 'cygwin' way:
+ * 'Normal' png-on-win32 defines/defaults:
+ *   PNG_BUILD_DLL -- building dll
+ *   PNG_USE_DLL   -- building an application, linking to dll
+ *   (no define)   -- building static library, or building an
+ *                    application and linking to the static lib
+ * 'Cygwin' defines/defaults:
+ *   PNG_BUILD_DLL -- (ignored) building the dll
+ *   (no define)   -- (ignored) building an application, linking to the dll
+ *   PNG_STATIC    -- (ignored) building the static lib, or building an
+ *                    application that links to the static lib.
+ *   ALL_STATIC    -- (ignored) building various static libs, or building an
+ *                    application that links to the static libs.
+ * Thus,
+ * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
+ * this bit of #ifdefs will define the 'correct' config variables based on
+ * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
+ * unnecessary.
+ *
+ * Also, the precedence order is:
+ *   ALL_STATIC (since we can't #undef something outside our namespace)
+ *   PNG_BUILD_DLL
+ *   PNG_STATIC
+ *   (nothing) == PNG_USE_DLL
+ *
+ * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
+ *   of auto-import in binutils, we no longer need to worry about
+ *   __declspec(dllexport) / __declspec(dllimport) and friends.  Therefore,
+ *   we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
+ *   to __declspec() stuff.  However, we DO need to worry about
+ *   PNG_BUILD_DLL and PNG_STATIC because those change some defaults
+ *   such as CONSOLE_IO.
+ */
+#ifdef __CYGWIN__
+#  ifdef ALL_STATIC
+#    ifdef PNG_BUILD_DLL
+#      undef PNG_BUILD_DLL
+#    endif
+#    ifdef PNG_USE_DLL
+#      undef PNG_USE_DLL
+#    endif
+#    ifdef PNG_DLL
+#      undef PNG_DLL
+#    endif
+#    ifndef PNG_STATIC
+#      define PNG_STATIC
+#    endif
+#  else
+#    ifdef PNG_BUILD_DLL
+#      ifdef PNG_STATIC
+#        undef PNG_STATIC
+#      endif
+#      ifdef PNG_USE_DLL
+#        undef PNG_USE_DLL
+#      endif
+#      ifndef PNG_DLL
+#        define PNG_DLL
+#      endif
+#    else
+#      ifdef PNG_STATIC
+#        ifdef PNG_USE_DLL
+#          undef PNG_USE_DLL
+#        endif
+#        ifdef PNG_DLL
+#          undef PNG_DLL
+#        endif
+#      else
+#        ifndef PNG_USE_DLL
+#          define PNG_USE_DLL
+#        endif
+#        ifndef PNG_DLL
+#          define PNG_DLL
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* This protects us against compilers that run on a windowing system
+ * and thus don't have or would rather us not use the stdio types:
+ * stdin, stdout, and stderr.  The only one currently used is stderr
+ * in png_error() and png_warning().  #defining PNG_NO_CONSOLE_IO will
+ * prevent these from being compiled and used. #defining PNG_NO_STDIO
+ * will also prevent these, plus will prevent the entire set of stdio
+ * macros and functions (FILE *, printf, etc.) from being compiled and used,
+ * unless (PNG_DEBUG > 0) has been #defined.
+ *
+ * #define PNG_NO_CONSOLE_IO
+ * #define PNG_NO_STDIO
+ */
+
+#ifdef _WIN32_WCE
+#  define PNG_NO_CONSOLE_IO
+#  define PNG_NO_STDIO
+#  define PNG_NO_TIME_RFC1123
+#  ifdef PNG_DEBUG
+#    undef PNG_DEBUG
+#  endif
+#endif
+
+#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED)
+#  define PNG_STDIO_SUPPORTED
+#endif
+
+#ifdef PNG_BUILD_DLL
+#  if !defined(PNG_CONSOLE_IO_SUPPORTED) && !defined(PNG_NO_CONSOLE_IO)
+#    define PNG_NO_CONSOLE_IO
+#  endif
+#endif
+
+#  ifdef PNG_NO_STDIO
+#    ifndef PNG_NO_CONSOLE_IO
+#      define PNG_NO_CONSOLE_IO
+#    endif
+#    ifdef PNG_DEBUG
+#      if (PNG_DEBUG > 0)
+#        include <stdio.h>
+#      endif
+#    endif
+#  else
+#    include <stdio.h>
+#  endif
+
+#if !(defined PNG_NO_CONSOLE_IO) && !defined(PNG_CONSOLE_IO_SUPPORTED)
+#  define PNG_CONSOLE_IO_SUPPORTED
+#endif
+
+/* This macro protects us against machines that don't have function
+ * prototypes (ie K&R style headers).  If your compiler does not handle
+ * function prototypes, define this macro and use the included ansi2knr.
+ * I've always been able to use _NO_PROTO as the indicator, but you may
+ * need to drag the empty declaration out in front of here, or change the
+ * ifdef to suit your own needs.
+ */
+#ifndef PNGARG
+
+#ifdef OF /* zlib prototype munger */
+#  define PNGARG(arglist) OF(arglist)
+#else
+
+#ifdef _NO_PROTO
+#  define PNGARG(arglist) ()
+#else
+#  define PNGARG(arglist) arglist
+#endif /* _NO_PROTO */
+
+#endif /* OF */
+
+#endif /* PNGARG */
+
+/* Try to determine if we are compiling on a Mac.  Note that testing for
+ * just __MWERKS__ is not good enough, because the Codewarrior is now used
+ * on non-Mac platforms.
+ */
+#ifndef MACOS
+#  if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
+      defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
+#    define MACOS
+#  endif
+#endif
+
+/* Enough people need this for various reasons to include it here */
+#if !defined(MACOS) && !defined(RISCOS)
+#  include <sys/types.h>
+#endif
+
+/* PNG_SETJMP_NOT_SUPPORTED and PNG_NO_SETJMP_SUPPORTED are deprecated. */
+#if !defined(PNG_NO_SETJMP) && \
+    !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED)
+#  define PNG_SETJMP_SUPPORTED
+#endif
+
+#ifdef PNG_SETJMP_SUPPORTED
+/* This is an attempt to force a single setjmp behaviour on Linux.  If
+ * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
+ *
+ * You can bypass this test if you know that your application uses exactly
+ * the same setjmp.h that was included when libpng was built.  Only define
+ * PNG_SKIP_SETJMP_CHECK while building your application, prior to the
+ * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK
+ * while building a separate libpng library for general use.
+ */
+
+#  ifndef PNG_SKIP_SETJMP_CHECK
+#    ifdef __linux__
+#      ifdef _BSD_SOURCE
+#        define PNG_SAVE_BSD_SOURCE
+#        undef _BSD_SOURCE
+#      endif
+#      ifdef _SETJMP_H
+       /* If you encounter a compiler error here, see the explanation
+        * near the end of INSTALL.
+        */
+           __pngconf.h__ in libpng already includes setjmp.h;
+           __dont__ include it again.;
+#      endif
+#    endif /* __linux__ */
+#  endif /* PNG_SKIP_SETJMP_CHECK */
+
+   /* Include setjmp.h for error handling */
+#  include <setjmp.h>
+
+#  ifdef __linux__
+#    ifdef PNG_SAVE_BSD_SOURCE
+#      ifdef _BSD_SOURCE
+#        undef _BSD_SOURCE
+#      endif
+#      define _BSD_SOURCE
+#      undef PNG_SAVE_BSD_SOURCE
+#    endif
+#  endif /* __linux__ */
+#endif /* PNG_SETJMP_SUPPORTED */
+
+#ifdef BSD
+#  include <strings.h>
+#else
+#  include <string.h>
+#endif
+
+/* Other defines for things like memory and the like can go here.  */
+
+/* This controls how fine the quantizing gets.  As this allocates
+ * a largish chunk of memory (32K), those who are not as concerned
+ * with quantizing quality can decrease some or all of these.
+ */
+
+/* Prior to libpng-1.4.2, these were PNG_DITHER_*_BITS
+ * These migration aids will be removed from libpng-1.5.0.
+ */
+#ifdef PNG_DITHER_RED_BITS
+#  define PNG_QUANTIZE_RED_BITS PNG_DITHER_RED_BITS
+#endif
+#ifdef PNG_DITHER_GREEN_BITS
+#  define PNG_QUANTIZE_GREEN_BITS PNG_DITHER_GREEN_BITS
+#endif
+#ifdef PNG_DITHER_BLUE_BITS
+#  define PNG_QUANTIZE_BLUE_BITS PNG_DITHER_BLUE_BITS
+#endif
+
+#ifndef PNG_QUANTIZE_RED_BITS
+#  define PNG_QUANTIZE_RED_BITS 5
+#endif
+#ifndef PNG_QUANTIZE_GREEN_BITS
+#  define PNG_QUANTIZE_GREEN_BITS 5
+#endif
+#ifndef PNG_QUANTIZE_BLUE_BITS
+#  define PNG_QUANTIZE_BLUE_BITS 5
+#endif
+
+/* This controls how fine the gamma correction becomes when you
+ * are only interested in 8 bits anyway.  Increasing this value
+ * results in more memory being used, and more pow() functions
+ * being called to fill in the gamma tables.  Don't set this value
+ * less then 8, and even that may not work (I haven't tested it).
+ */
+
+#ifndef PNG_MAX_GAMMA_8
+#  define PNG_MAX_GAMMA_8 11
+#endif
+
+/* This controls how much a difference in gamma we can tolerate before
+ * we actually start doing gamma conversion.
+ */
+#ifndef PNG_GAMMA_THRESHOLD
+#  define PNG_GAMMA_THRESHOLD 0.05
+#endif
+
+/* The following uses const char * instead of char * for error
+ * and warning message functions, so some compilers won't complain.
+ * If you do not want to use const, define PNG_NO_CONST.
+ */
+
+#ifndef PNG_CONST
+#  ifndef PNG_NO_CONST
+#    define PNG_CONST const
+#  else
+#    define PNG_CONST
+#  endif
+#endif
+
+/* The following defines give you the ability to remove code from the
+ * library that you will not be using.  I wish I could figure out how to
+ * automate this, but I can't do that without making it seriously hard
+ * on the users.  So if you are not using an ability, change the #define
+ * to an #undef, or pass in PNG_NO_feature and that part of the library
+ * will not be compiled.
+
+ * If your linker can't find a function, you may want to make sure the
+ * ability is defined here.  Some of these depend upon some others being
+ * defined.  I haven't figured out all the interactions here, so you may
+ * have to experiment awhile to get everything to compile.  If you are
+ * creating or using a shared library, you probably shouldn't touch this,
+ * as it will affect the size of the structures, and this will cause bad
+ * things to happen if the library and/or application ever change.
+ */
+
+/* Any features you will not be using can be undef'ed here */
+
+/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user
+ * to turn it off with PNG_NO_READ|WRITE_TRANSFORMS on the compile line,
+ * then pick and choose which ones to define without having to edit this
+ * file. It is safe to use the PNG_NO_READ|WRITE_TRANSFORMS
+ * if you only want to have a png-compliant reader/writer but don't need
+ * any of the extra transformations.  This saves about 80 kbytes in a
+ * typical installation of the library. (PNG_NO_* form added in version
+ * 1.0.1c, for consistency; PNG_*_TRANSFORMS_NOT_SUPPORTED deprecated in
+ * 1.4.0)
+ */
+
+/* Ignore attempt to turn off both floating and fixed point support */
+#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \
+    !defined(PNG_NO_FIXED_POINT_SUPPORTED)
+#  define PNG_FIXED_POINT_SUPPORTED
+#endif
+
+#ifdef PNG_READ_SUPPORTED
+
+/* PNG_READ_TRANSFORMS_NOT_SUPPORTED is deprecated. */
+#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
+      !defined(PNG_NO_READ_TRANSFORMS)
+#  define PNG_READ_TRANSFORMS_SUPPORTED
+#endif
+
+#ifdef PNG_READ_TRANSFORMS_SUPPORTED
+#  ifndef PNG_NO_READ_EXPAND
+#    define PNG_READ_EXPAND_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_SHIFT
+#    define PNG_READ_SHIFT_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_PACK
+#    define PNG_READ_PACK_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_BGR
+#    define PNG_READ_BGR_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_SWAP
+#    define PNG_READ_SWAP_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_PACKSWAP
+#    define PNG_READ_PACKSWAP_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_INVERT
+#    define PNG_READ_INVERT_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_QUANTIZE
+     /* Prior to libpng-1.4.0 this was PNG_READ_DITHER_SUPPORTED */
+#    ifndef PNG_NO_READ_DITHER  /* This migration aid will be removed */
+#      define PNG_READ_QUANTIZE_SUPPORTED
+#    endif
+#  endif
+#  ifndef PNG_NO_READ_BACKGROUND
+#    define PNG_READ_BACKGROUND_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_16_TO_8
+#    define PNG_READ_16_TO_8_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_FILLER
+#    define PNG_READ_FILLER_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_GAMMA
+#    define PNG_READ_GAMMA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_GRAY_TO_RGB
+#    define PNG_READ_GRAY_TO_RGB_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_SWAP_ALPHA
+#    define PNG_READ_SWAP_ALPHA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_INVERT_ALPHA
+#    define PNG_READ_INVERT_ALPHA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_STRIP_ALPHA
+#    define PNG_READ_STRIP_ALPHA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_USER_TRANSFORM
+#    define PNG_READ_USER_TRANSFORM_SUPPORTED
+#  endif
+#  ifndef PNG_NO_READ_RGB_TO_GRAY
+#    define PNG_READ_RGB_TO_GRAY_SUPPORTED
+#  endif
+#endif /* PNG_READ_TRANSFORMS_SUPPORTED */
+
+/* PNG_PROGRESSIVE_READ_NOT_SUPPORTED is deprecated. */
+#if !defined(PNG_NO_PROGRESSIVE_READ) && \
+ !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED)  /* if you don't do progressive */
+#  define PNG_PROGRESSIVE_READ_SUPPORTED     /* reading.  This is not talking */
+#endif                               /* about interlacing capability!  You'll */
+            /* still have interlacing unless you change the following define: */
+
+#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */
+
+/* PNG_NO_SEQUENTIAL_READ_SUPPORTED is deprecated. */
+#if !defined(PNG_NO_SEQUENTIAL_READ) && \
+    !defined(PNG_SEQUENTIAL_READ_SUPPORTED) && \
+    !defined(PNG_NO_SEQUENTIAL_READ_SUPPORTED)
+#  define PNG_SEQUENTIAL_READ_SUPPORTED
+#endif
+
+#ifndef PNG_NO_READ_COMPOSITE_NODIV
+#  ifndef PNG_NO_READ_COMPOSITED_NODIV  /* libpng-1.0.x misspelling */
+#    define PNG_READ_COMPOSITE_NODIV_SUPPORTED   /* well tested on Intel, SGI */
+#  endif
+#endif
+
+#if !defined(PNG_NO_GET_INT_32) || defined(PNG_READ_oFFS_SUPPORTED) || \
+    defined(PNG_READ_pCAL_SUPPORTED)
+#  ifndef PNG_GET_INT_32_SUPPORTED
+#    define PNG_GET_INT_32_SUPPORTED
+#  endif
+#endif
+
+#endif /* PNG_READ_SUPPORTED */
+
+#ifdef PNG_WRITE_SUPPORTED
+
+/* PNG_WRITE_TRANSFORMS_NOT_SUPPORTED is deprecated. */
+#if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
+    !defined(PNG_NO_WRITE_TRANSFORMS)
+#  define PNG_WRITE_TRANSFORMS_SUPPORTED
+#endif
+
+#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
+#  ifndef PNG_NO_WRITE_SHIFT
+#    define PNG_WRITE_SHIFT_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_PACK
+#    define PNG_WRITE_PACK_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_BGR
+#    define PNG_WRITE_BGR_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_SWAP
+#    define PNG_WRITE_SWAP_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_PACKSWAP
+#    define PNG_WRITE_PACKSWAP_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_INVERT
+#    define PNG_WRITE_INVERT_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_FILLER
+#    define PNG_WRITE_FILLER_SUPPORTED   /* same as WRITE_STRIP_ALPHA */
+#  endif
+#  ifndef PNG_NO_WRITE_SWAP_ALPHA
+#    define PNG_WRITE_SWAP_ALPHA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_INVERT_ALPHA
+#    define PNG_WRITE_INVERT_ALPHA_SUPPORTED
+#  endif
+#  ifndef PNG_NO_WRITE_USER_TRANSFORM
+#    define PNG_WRITE_USER_TRANSFORM_SUPPORTED
+#  endif
+#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
+
+#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \
+    !defined(PNG_WRITE_INTERLACING_SUPPORTED)
+    /* This is not required for PNG-compliant encoders, but can cause
+     * trouble if left undefined
+    */
+#  define PNG_WRITE_INTERLACING_SUPPORTED
+#endif
+
+#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \
+    !defined(PNG_WRITE_WEIGHTED_FILTER) && \
+     defined(PNG_FLOATING_POINT_SUPPORTED)
+#  define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
+#endif
+
+#ifndef PNG_NO_WRITE_FLUSH
+#  define PNG_WRITE_FLUSH_SUPPORTED
+#endif
+
+#if !defined(PNG_NO_SAVE_INT_32) || defined(PNG_WRITE_oFFS_SUPPORTED) || \
+    defined(PNG_WRITE_pCAL_SUPPORTED)
+#  ifndef PNG_SAVE_INT_32_SUPPORTED
+#    define PNG_SAVE_INT_32_SUPPORTED
+#  endif
+#endif
+
+#endif /* PNG_WRITE_SUPPORTED */
+
+#define PNG_NO_ERROR_NUMBERS
+
+#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
+    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+#  ifndef PNG_NO_USER_TRANSFORM_PTR
+#    define PNG_USER_TRANSFORM_PTR_SUPPORTED
+#  endif
+#endif
+
+#if defined(PNG_STDIO_SUPPORTED) && !defined(PNG_TIME_RFC1123_SUPPORTED)
+#  define PNG_TIME_RFC1123_SUPPORTED
+#endif
+
+/* This adds extra functions in pngget.c for accessing data from the
+ * info pointer (added in version 0.99)
+ * png_get_image_width()
+ * png_get_image_height()
+ * png_get_bit_depth()
+ * png_get_color_type()
+ * png_get_compression_type()
+ * png_get_filter_type()
+ * png_get_interlace_type()
+ * png_get_pixel_aspect_ratio()
+ * png_get_pixels_per_meter()
+ * png_get_x_offset_pixels()
+ * png_get_y_offset_pixels()
+ * png_get_x_offset_microns()
+ * png_get_y_offset_microns()
+ */
+#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED)
+#  define PNG_EASY_ACCESS_SUPPORTED
+#endif
+
+/* Added at libpng-1.2.0 */
+#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
+#  define PNG_USER_MEM_SUPPORTED
+#endif
+
+/* Added at libpng-1.2.6 */
+#ifndef PNG_NO_SET_USER_LIMITS
+#  ifndef PNG_SET_USER_LIMITS_SUPPORTED
+#    define PNG_SET_USER_LIMITS_SUPPORTED
+#  endif
+  /* Feature added at libpng-1.4.0, this flag added at 1.4.1 */
+#  ifndef PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
+#    define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED
+#  endif
+  /* Feature added at libpng-1.4.1, this flag added at 1.4.1 */
+#  ifndef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
+#    define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED
+#  endif
+#endif
+
+/* Added at libpng-1.2.43 */
+#ifndef PNG_USER_LIMITS_SUPPORTED
+#  ifndef PNG_NO_USER_LIMITS
+#    define PNG_USER_LIMITS_SUPPORTED
+#  endif
+#endif
+
+/* Added at libpng-1.0.16 and 1.2.6.  To accept all valid PNGs no matter
+ * how large, set these two limits to 0x7fffffffL
+ */
+#ifndef PNG_USER_WIDTH_MAX
+#  define PNG_USER_WIDTH_MAX 1000000L
+#endif
+#ifndef PNG_USER_HEIGHT_MAX
+#  define PNG_USER_HEIGHT_MAX 1000000L
+#endif
+
+/* Added at libpng-1.2.43.  To accept all valid PNGs no matter
+ * how large, set these two limits to 0.
+ */
+#ifndef PNG_USER_CHUNK_CACHE_MAX
+#  define PNG_USER_CHUNK_CACHE_MAX 0
+#endif
+
+/* Added at libpng-1.2.43 */
+#ifndef PNG_USER_CHUNK_MALLOC_MAX
+#  define PNG_USER_CHUNK_MALLOC_MAX 0
+#endif
+
+/* Added at libpng-1.4.0 */
+#if !defined(PNG_NO_IO_STATE) && !defined(PNG_IO_STATE_SUPPORTED)
+#  define PNG_IO_STATE_SUPPORTED
+#endif
+
+#ifndef PNG_LITERAL_SHARP
+#  define PNG_LITERAL_SHARP 0x23
+#endif
+#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET
+#  define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b
+#endif
+#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET
+#  define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d
+#endif
+#ifndef PNG_STRING_NEWLINE
+#define PNG_STRING_NEWLINE "\n"
+#endif
+
+/* These are currently experimental features, define them if you want */
+
+/* Very little testing */
+/*
+#ifdef PNG_READ_SUPPORTED
+#  ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
+#    define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
+#  endif
+#endif
+*/
+
+/* This is only for PowerPC big-endian and 680x0 systems */
+/* some testing */
+/*
+#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED
+#  define PNG_READ_BIG_ENDIAN_SUPPORTED
+#endif
+*/
+
+#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
+#  define PNG_USE_READ_MACROS
+#endif
+
+/* Buggy compilers (e.g., gcc 2.7.2.2) need PNG_NO_POINTER_INDEXING */
+
+#if !defined(PNG_NO_POINTER_INDEXING) && \
+    !defined(PNG_POINTER_INDEXING_SUPPORTED)
+#  define PNG_POINTER_INDEXING_SUPPORTED
+#endif
+
+
+/* Any chunks you are not interested in, you can undef here.  The
+ * ones that allocate memory may be expecially important (hIST,
+ * tEXt, zTXt, tRNS, pCAL).  Others will just save time and make png_info
+ * a bit smaller.
+ */
+
+/* The size of the png_text structure changed in libpng-1.0.6 when
+ * iTXt support was added.  iTXt support was turned off by default through
+ * libpng-1.2.x, to support old apps that malloc the png_text structure
+ * instead of calling png_set_text() and letting libpng malloc it.  It
+ * was turned on by default in libpng-1.4.0.
+ */
+
+/* PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. */
+#if defined(PNG_READ_SUPPORTED) && \
+    !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
+    !defined(PNG_NO_READ_ANCILLARY_CHUNKS)
+#  define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
+#endif
+
+/* PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. */
+#if defined(PNG_WRITE_SUPPORTED) && \
+    !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
+    !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS)
+#  define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
+#endif
+
+#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
+
+#ifdef PNG_NO_READ_TEXT
+#  define PNG_NO_READ_iTXt
+#  define PNG_NO_READ_tEXt
+#  define PNG_NO_READ_zTXt
+#endif
+
+#ifndef PNG_NO_READ_bKGD
+#  define PNG_READ_bKGD_SUPPORTED
+#  define PNG_bKGD_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_cHRM
+#  define PNG_READ_cHRM_SUPPORTED
+#  define PNG_cHRM_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_gAMA
+#  define PNG_READ_gAMA_SUPPORTED
+#  define PNG_gAMA_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_hIST
+#  define PNG_READ_hIST_SUPPORTED
+#  define PNG_hIST_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_iCCP
+#  define PNG_READ_iCCP_SUPPORTED
+#  define PNG_iCCP_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_iTXt
+#  ifndef PNG_READ_iTXt_SUPPORTED
+#    define PNG_READ_iTXt_SUPPORTED
+#  endif
+#  ifndef PNG_iTXt_SUPPORTED
+#    define PNG_iTXt_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_READ_oFFs
+#  define PNG_READ_oFFs_SUPPORTED
+#  define PNG_oFFs_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_pCAL
+#  define PNG_READ_pCAL_SUPPORTED
+#  define PNG_pCAL_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_sCAL
+#  define PNG_READ_sCAL_SUPPORTED
+#  define PNG_sCAL_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_pHYs
+#  define PNG_READ_pHYs_SUPPORTED
+#  define PNG_pHYs_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_sBIT
+#  define PNG_READ_sBIT_SUPPORTED
+#  define PNG_sBIT_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_sPLT
+#  define PNG_READ_sPLT_SUPPORTED
+#  define PNG_sPLT_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_sRGB
+#  define PNG_READ_sRGB_SUPPORTED
+#  define PNG_sRGB_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_tEXt
+#  define PNG_READ_tEXt_SUPPORTED
+#  define PNG_tEXt_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_tIME
+#  define PNG_READ_tIME_SUPPORTED
+#  define PNG_tIME_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_tRNS
+#  define PNG_READ_tRNS_SUPPORTED
+#  define PNG_tRNS_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_zTXt
+#  define PNG_READ_zTXt_SUPPORTED
+#  define PNG_zTXt_SUPPORTED
+#endif
+#ifndef PNG_NO_READ_OPT_PLTE
+#  define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
+#endif                      /* optional PLTE chunk in RGB and RGBA images */
+#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
+    defined(PNG_READ_zTXt_SUPPORTED)
+#  define PNG_READ_TEXT_SUPPORTED
+#  define PNG_TEXT_SUPPORTED
+#endif
+
+#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
+
+#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
+#  ifndef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+#    define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
+#  endif
+#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
+#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#  endif
+#  ifndef PNG_READ_USER_CHUNKS_SUPPORTED
+#    define PNG_READ_USER_CHUNKS_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_READ_USER_CHUNKS
+#  ifndef PNG_READ_USER_CHUNKS_SUPPORTED
+#    define PNG_READ_USER_CHUNKS_SUPPORTED
+#  endif
+#  ifndef PNG_USER_CHUNKS_SUPPORTED
+#    define PNG_USER_CHUNKS_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_HANDLE_AS_UNKNOWN
+#  ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#    define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#  endif
+#endif
+
+#ifdef PNG_WRITE_SUPPORTED
+#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
+
+#ifdef PNG_NO_WRITE_TEXT
+#  define PNG_NO_WRITE_iTXt
+#  define PNG_NO_WRITE_tEXt
+#  define PNG_NO_WRITE_zTXt
+#endif
+#ifndef PNG_NO_WRITE_bKGD
+#  define PNG_WRITE_bKGD_SUPPORTED
+#  ifndef PNG_bKGD_SUPPORTED
+#    define PNG_bKGD_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_cHRM
+#  define PNG_WRITE_cHRM_SUPPORTED
+#  ifndef PNG_cHRM_SUPPORTED
+#    define PNG_cHRM_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_gAMA
+#  define PNG_WRITE_gAMA_SUPPORTED
+#  ifndef PNG_gAMA_SUPPORTED
+#    define PNG_gAMA_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_hIST
+#  define PNG_WRITE_hIST_SUPPORTED
+#  ifndef PNG_hIST_SUPPORTED
+#    define PNG_hIST_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_iCCP
+#  define PNG_WRITE_iCCP_SUPPORTED
+#  ifndef PNG_iCCP_SUPPORTED
+#    define PNG_iCCP_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_iTXt
+#  ifndef PNG_WRITE_iTXt_SUPPORTED
+#    define PNG_WRITE_iTXt_SUPPORTED
+#  endif
+#  ifndef PNG_iTXt_SUPPORTED
+#    define PNG_iTXt_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_oFFs
+#  define PNG_WRITE_oFFs_SUPPORTED
+#  ifndef PNG_oFFs_SUPPORTED
+#    define PNG_oFFs_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_pCAL
+#  define PNG_WRITE_pCAL_SUPPORTED
+#  ifndef PNG_pCAL_SUPPORTED
+#    define PNG_pCAL_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_sCAL
+#  define PNG_WRITE_sCAL_SUPPORTED
+#  ifndef PNG_sCAL_SUPPORTED
+#    define PNG_sCAL_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_pHYs
+#  define PNG_WRITE_pHYs_SUPPORTED
+#  ifndef PNG_pHYs_SUPPORTED
+#    define PNG_pHYs_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_sBIT
+#  define PNG_WRITE_sBIT_SUPPORTED
+#  ifndef PNG_sBIT_SUPPORTED
+#    define PNG_sBIT_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_sPLT
+#  define PNG_WRITE_sPLT_SUPPORTED
+#  ifndef PNG_sPLT_SUPPORTED
+#    define PNG_sPLT_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_sRGB
+#  define PNG_WRITE_sRGB_SUPPORTED
+#  ifndef PNG_sRGB_SUPPORTED
+#    define PNG_sRGB_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_tEXt
+#  define PNG_WRITE_tEXt_SUPPORTED
+#  ifndef PNG_tEXt_SUPPORTED
+#    define PNG_tEXt_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_tIME
+#  define PNG_WRITE_tIME_SUPPORTED
+#  ifndef PNG_tIME_SUPPORTED
+#    define PNG_tIME_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_tRNS
+#  define PNG_WRITE_tRNS_SUPPORTED
+#  ifndef PNG_tRNS_SUPPORTED
+#    define PNG_tRNS_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_WRITE_zTXt
+#  define PNG_WRITE_zTXt_SUPPORTED
+#  ifndef PNG_zTXt_SUPPORTED
+#    define PNG_zTXt_SUPPORTED
+#  endif
+#endif
+#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
+    defined(PNG_WRITE_zTXt_SUPPORTED)
+#  define PNG_WRITE_TEXT_SUPPORTED
+#  ifndef PNG_TEXT_SUPPORTED
+#    define PNG_TEXT_SUPPORTED
+#  endif
+#endif
+
+#ifdef PNG_WRITE_tIME_SUPPORTED
+#  ifndef PNG_NO_CONVERT_tIME
+#    ifndef _WIN32_WCE
+/*   The "tm" structure is not supported on WindowsCE */
+#      ifndef PNG_CONVERT_tIME_SUPPORTED
+#        define PNG_CONVERT_tIME_SUPPORTED
+#      endif
+#   endif
+#  endif
+#endif
+
+#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
+
+#ifndef PNG_NO_WRITE_FILTER
+#  ifndef PNG_WRITE_FILTER_SUPPORTED
+#    define PNG_WRITE_FILTER_SUPPORTED
+#  endif
+#endif
+
+#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
+#  define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
+#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
+#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
+#  endif
+#endif
+#ifndef PNG_NO_HANDLE_AS_UNKNOWN
+#  ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#    define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
+#  endif
+#endif
+#endif /* PNG_WRITE_SUPPORTED */
+
+/* Turn this off to disable png_read_png() and
+ * png_write_png() and leave the row_pointers member
+ * out of the info structure.
+ */
+#ifndef PNG_NO_INFO_IMAGE
+#  define PNG_INFO_IMAGE_SUPPORTED
+#endif
+
+/* Need the time information for converting tIME chunks */
+#ifdef PNG_CONVERT_tIME_SUPPORTED
+     /* "time.h" functions are not supported on WindowsCE */
+#    include <time.h>
+#endif
+
+/* Some typedefs to get us started.  These should be safe on most of the
+ * common platforms.  The typedefs should be at least as large as the
+ * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
+ * don't have to be exactly that size.  Some compilers dislike passing
+ * unsigned shorts as function parameters, so you may be better off using
+ * unsigned int for png_uint_16.
+ */
+
+#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL)
+typedef unsigned int png_uint_32;
+typedef int png_int_32;
+#else
+typedef unsigned long png_uint_32;
+typedef long png_int_32;
+#endif
+typedef unsigned short png_uint_16;
+typedef short png_int_16;
+typedef unsigned char png_byte;
+
+#ifdef PNG_NO_SIZE_T
+   typedef unsigned int png_size_t;
+#else
+   typedef size_t png_size_t;
+#endif
+#define png_sizeof(x) (sizeof (x))
+
+/* The following is needed for medium model support.  It cannot be in the
+ * pngpriv.h header.  Needs modification for other compilers besides
+ * MSC.  Model independent support declares all arrays and pointers to be
+ * large using the far keyword.  The zlib version used must also support
+ * model independent data.  As of version zlib 1.0.4, the necessary changes
+ * have been made in zlib.  The USE_FAR_KEYWORD define triggers other
+ * changes that are needed. (Tim Wegner)
+ */
+
+/* Separate compiler dependencies (problem here is that zlib.h always
+ * defines FAR. (SJT)
+ */
+#ifdef __BORLANDC__
+#  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
+#    define LDATA 1
+#  else
+#    define LDATA 0
+#  endif
+   /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
+#  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
+#    define PNG_MAX_MALLOC_64K
+#    if (LDATA != 1)
+#      ifndef FAR
+#        define FAR __far
+#      endif
+#      define USE_FAR_KEYWORD
+#    endif   /* LDATA != 1 */
+     /* Possibly useful for moving data out of default segment.
+      * Uncomment it if you want. Could also define FARDATA as
+      * const if your compiler supports it. (SJT)
+#    define FARDATA FAR
+      */
+#  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
+#endif   /* __BORLANDC__ */
+
+
+/* Suggest testing for specific compiler first before testing for
+ * FAR.  The Watcom compiler defines both __MEDIUM__ and M_I86MM,
+ * making reliance oncertain keywords suspect. (SJT)
+ */
+
+/* MSC Medium model */
+#ifdef FAR
+#  ifdef M_I86MM
+#    define USE_FAR_KEYWORD
+#    define FARDATA FAR
+#    include <dos.h>
+#  endif
+#endif
+
+/* SJT: default case */
+#ifndef FAR
+#  define FAR
+#endif
+
+/* At this point FAR is always defined */
+#ifndef FARDATA
+#  define FARDATA
+#endif
+
+/* Typedef for floating-point numbers that are converted
+   to fixed-point with a multiple of 100,000, e.g., int_gamma */
+typedef png_int_32 png_fixed_point;
+
+/* Add typedefs for pointers */
+typedef void            FAR * png_voidp;
+typedef png_byte        FAR * png_bytep;
+typedef png_uint_32     FAR * png_uint_32p;
+typedef png_int_32      FAR * png_int_32p;
+typedef png_uint_16     FAR * png_uint_16p;
+typedef png_int_16      FAR * png_int_16p;
+typedef PNG_CONST char  FAR * png_const_charp;
+typedef char            FAR * png_charp;
+typedef png_fixed_point FAR * png_fixed_point_p;
+
+#ifndef PNG_NO_STDIO
+typedef FILE                * png_FILE_p;
+#endif
+
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+typedef double          FAR * png_doublep;
+#endif
+
+/* Pointers to pointers; i.e. arrays */
+typedef png_byte        FAR * FAR * png_bytepp;
+typedef png_uint_32     FAR * FAR * png_uint_32pp;
+typedef png_int_32      FAR * FAR * png_int_32pp;
+typedef png_uint_16     FAR * FAR * png_uint_16pp;
+typedef png_int_16      FAR * FAR * png_int_16pp;
+typedef PNG_CONST char  FAR * FAR * png_const_charpp;
+typedef char            FAR * FAR * png_charpp;
+typedef png_fixed_point FAR * FAR * png_fixed_point_pp;
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+typedef double          FAR * FAR * png_doublepp;
+#endif
+
+/* Pointers to pointers to pointers; i.e., pointer to array */
+typedef char            FAR * FAR * FAR * png_charppp;
+
+/* Define PNG_BUILD_DLL if the module being built is a Windows
+ * LIBPNG DLL.
+ *
+ * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL.
+ * It is equivalent to Microsoft predefined macro _DLL that is
+ * automatically defined when you compile using the share
+ * version of the CRT (C Run-Time library)
+ *
+ * The cygwin mods make this behavior a little different:
+ * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
+ * Define PNG_STATIC if you are building a static library for use with cygwin,
+ *   -or- if you are building an application that you want to link to the
+ *   static library.
+ * PNG_USE_DLL is defined by default (no user action needed) unless one of
+ *   the other flags is defined.
+ */
+
+#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
+#  define PNG_DLL
+#endif
+
+/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
+ * you may get warnings regarding the linkage of png_zalloc and png_zfree.
+ * Don't ignore those warnings; you must also reset the default calling
+ * convention in your compiler to match your PNGAPI, and you must build
+ * zlib and your applications the same way you build libpng.
+ */
+
+#ifdef __CYGWIN__
+#  undef PNGAPI
+#  define PNGAPI __cdecl
+#  undef PNG_IMPEXP
+#  define PNG_IMPEXP
+#endif
+
+#ifdef __WATCOMC__
+#  ifndef PNGAPI
+#    define PNGAPI
+#  endif
+#endif
+
+#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
+#  ifndef PNG_NO_MODULEDEF
+#    define PNG_NO_MODULEDEF
+#  endif
+#endif
+
+#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
+#  define PNG_IMPEXP
+#endif
+
+#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
+    (( defined(_Windows) || defined(_WINDOWS) || \
+       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) ))
+
+#  ifndef PNGAPI
+#     if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
+#        define PNGAPI __cdecl
+#     else
+#        define PNGAPI _cdecl
+#     endif
+#  endif
+
+#  if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \
+       0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)
+#     define PNG_IMPEXP
+#  endif
+
+#  ifndef PNG_IMPEXP
+
+#    define PNG_EXPORT_TYPE1(type,symbol)  PNG_IMPEXP type PNGAPI symbol
+#    define PNG_EXPORT_TYPE2(type,symbol)  type PNG_IMPEXP PNGAPI symbol
+
+     /* Borland/Microsoft */
+#    if defined(_MSC_VER) || defined(__BORLANDC__)
+#      if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500)
+#         define PNG_EXPORT PNG_EXPORT_TYPE1
+#      else
+#         define PNG_EXPORT PNG_EXPORT_TYPE2
+#         ifdef PNG_BUILD_DLL
+#            define PNG_IMPEXP __export
+#         else
+#            define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in VC++ */
+#         endif                              /* Exists in Borland C++ for
+                                                C++ classes (== huge) */
+#      endif
+#    endif
+
+#    ifndef PNG_IMPEXP
+#      ifdef PNG_BUILD_DLL
+#        define PNG_IMPEXP __declspec(dllexport)
+#      else
+#        define PNG_IMPEXP __declspec(dllimport)
+#      endif
+#    endif
+#  endif  /* PNG_IMPEXP */
+#else /* !(DLL || non-cygwin WINDOWS) */
+#   if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
+#     ifndef PNGAPI
+#       define PNGAPI _System
+#     endif
+#   else
+#     if 0 /* ... other platforms, with other meanings */
+#     endif
+#   endif
+#endif
+
+#ifndef PNGAPI
+#  define PNGAPI
+#endif
+#ifndef PNG_IMPEXP
+#  define PNG_IMPEXP
+#endif
+
+#ifdef PNG_BUILDSYMS
+#  ifndef PNG_EXPORT
+#    define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END
+#  endif
+#endif
+
+#ifndef PNG_EXPORT
+#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
+#endif
+
+#define PNG_USE_LOCAL_ARRAYS /* Not used in libpng, defined for legacy apps */
+
+/* Support for compiler specific function attributes.  These are used
+ * so that where compiler support is available incorrect use of API
+ * functions in png.h will generate compiler warnings.
+ *
+ * Added at libpng-1.2.41.
+ */
+
+#ifndef PNG_NO_PEDANTIC_WARNINGS
+#  ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
+#    define PNG_PEDANTIC_WARNINGS_SUPPORTED
+#  endif
+#endif
+
+#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED
+/* Support for compiler specific function attributes.  These are used
+ * so that where compiler support is available incorrect use of API
+ * functions in png.h will generate compiler warnings.  Added at libpng
+ * version 1.2.41.
+ */
+#  ifdef __GNUC__
+#    ifndef PNG_USE_RESULT
+#      define PNG_USE_RESULT __attribute__((__warn_unused_result__))
+#    endif
+#    ifndef PNG_NORETURN
+#      define PNG_NORETURN   __attribute__((__noreturn__))
+#    endif
+#    ifndef PNG_ALLOCATED
+#      define PNG_ALLOCATED  __attribute__((__malloc__))
+#    endif
+
+    /* This specifically protects structure members that should only be
+     * accessed from within the library, therefore should be empty during
+     * a library build.
+     */
+#    ifndef PNG_DEPRECATED
+#      define PNG_DEPRECATED __attribute__((__deprecated__))
+#    endif
+#    ifndef PNG_DEPSTRUCT
+#      define PNG_DEPSTRUCT  __attribute__((__deprecated__))
+#    endif
+#    ifndef PNG_PRIVATE
+#      if 0 /* Doesn't work so we use deprecated instead*/
+#        define PNG_PRIVATE \
+          __attribute__((warning("This function is not exported by libpng.")))
+#      else
+#        define PNG_PRIVATE \
+          __attribute__((__deprecated__))
+#      endif
+#    endif /* PNG_PRIVATE */
+#  endif /* __GNUC__ */
+#endif /* PNG_PEDANTIC_WARNINGS */
+
+#ifndef PNG_DEPRECATED
+#  define PNG_DEPRECATED  /* Use of this function is deprecated */
+#endif
+#ifndef PNG_USE_RESULT
+#  define PNG_USE_RESULT  /* The result of this function must be checked */
+#endif
+#ifndef PNG_NORETURN
+#  define PNG_NORETURN    /* This function does not return */
+#endif
+#ifndef PNG_ALLOCATED
+#  define PNG_ALLOCATED   /* The result of the function is new memory */
+#endif
+#ifndef PNG_DEPSTRUCT
+#  define PNG_DEPSTRUCT   /* Access to this struct member is deprecated */
+#endif
+#ifndef PNG_PRIVATE
+#  define PNG_PRIVATE     /* This is a private libpng function */
+#endif
+
+/* Users may want to use these so they are not private.  Any library
+ * functions that are passed far data must be model-independent.
+ */
+
+/* memory model/platform independent fns */
+#ifndef PNG_ABORT
+#  if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_))
+#     define PNG_ABORT() ExitProcess(0)
+#  else
+#     define PNG_ABORT() abort()
+#  endif
+#endif
+
+#ifdef USE_FAR_KEYWORD
+/* Use this to make far-to-near assignments */
+#  define CHECK   1
+#  define NOCHECK 0
+#  define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))
+#  define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))
+#  define png_strcpy  _fstrcpy
+#  define png_strncpy _fstrncpy   /* Added to v 1.2.6 */
+#  define png_strlen  _fstrlen
+#  define png_memcmp  _fmemcmp    /* SJT: added */
+#  define png_memcpy  _fmemcpy
+#  define png_memset  _fmemset
+#  define png_sprintf sprintf
+#else
+#  if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_))
+#    /* Favor Windows over C runtime fns */
+#    define CVT_PTR(ptr)         (ptr)
+#    define CVT_PTR_NOCHECK(ptr) (ptr)
+#    define png_strcpy  lstrcpyA
+#    define png_strncpy lstrcpynA
+#    define png_strlen  lstrlenA
+#    define png_memcmp  memcmp
+#    define png_memcpy  CopyMemory
+#    define png_memset  memset
+#    define png_sprintf wsprintfA
+#  else
+#    define CVT_PTR(ptr)         (ptr)
+#    define CVT_PTR_NOCHECK(ptr) (ptr)
+#    define png_strcpy  strcpy
+#    define png_strncpy strncpy     /* Added to v 1.2.6 */
+#    define png_strlen  strlen
+#    define png_memcmp  memcmp      /* SJT: added */
+#    define png_memcpy  memcpy
+#    define png_memset  memset
+#    define png_sprintf sprintf
+#  endif
+#endif
+
+#ifndef PNG_NO_SNPRINTF
+#  ifdef _MSC_VER
+#    define png_snprintf _snprintf   /* Added to v 1.2.19 */
+#    define png_snprintf2 _snprintf
+#    define png_snprintf6 _snprintf
+#  else
+#    define png_snprintf snprintf   /* Added to v 1.2.19 */
+#    define png_snprintf2 snprintf
+#    define png_snprintf6 snprintf
+#  endif
+#else
+   /* You don't have or don't want to use snprintf().  Caution: Using
+    * sprintf instead of snprintf exposes your application to accidental
+    * or malevolent buffer overflows.  If you don't have snprintf()
+    * as a general rule you should provide one (you can get one from
+    * Portable OpenSSH).
+    */
+#  define png_snprintf(s1,n,fmt,x1) png_sprintf(s1,fmt,x1)
+#  define png_snprintf2(s1,n,fmt,x1,x2) png_sprintf(s1,fmt,x1,x2)
+#  define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \
+      png_sprintf(s1,fmt,x1,x2,x3,x4,x5,x6)
+#endif
+
+/* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
+ * and no smaller than png_uint_32.  Casts from png_size_t or png_uint_32
+ * to png_alloc_size_t are not necessary; in fact, it is recommended
+ * not to use them at all so that the compiler can complain when something
+ * turns out to be problematic.
+ * Casts in the other direction (from png_alloc_size_t to png_size_t or
+ * png_uint_32) should be explicitly applied; however, we do not expect
+ * to encounter practical situations that require such conversions.
+ */
+#if defined(__TURBOC__) && !defined(__FLAT__)
+   typedef unsigned long png_alloc_size_t;
+#else
+#  if defined(_MSC_VER) && defined(MAXSEG_64K)
+     typedef unsigned long    png_alloc_size_t;
+#  else
+     /* This is an attempt to detect an old Windows system where (int) is
+      * actually 16 bits, in that case png_malloc must have an argument with a
+      * bigger size to accomodate the requirements of the library.
+      */
+#    if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \
+        (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
+       typedef DWORD         png_alloc_size_t;
+#    else
+       typedef png_size_t    png_alloc_size_t;
+#    endif
+#  endif
+#endif
+/* End of memory model/platform independent support */
+
+/* Just a little check that someone hasn't tried to define something
+ * contradictory.
+ */
+#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K)
+#  undef PNG_ZBUF_SIZE
+#  define PNG_ZBUF_SIZE 65536L
+#endif
+
+
+/* Added at libpng-1.2.8 */
+#endif /* PNG_VERSION_INFO_ONLY */
+
+#endif /* PNGCONF_H */
diff --git a/include/zconf.h b/include/zconf.h
new file mode 100644
index 0000000..b234387
--- /dev/null
+++ b/include/zconf.h
@@ -0,0 +1,428 @@
+/* zconf.h -- configuration of the zlib compression library
+ * Copyright (C) 1995-2010 Jean-loup Gailly.
+ * 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 */
+
+/* all linked symbols */
+#  define _dist_code            z__dist_code
+#  define _length_code          z__length_code
+#  define _tr_align             z__tr_align
+#  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 compress              z_compress
+#  define compress2             z_compress2
+#  define compressBound         z_compressBound
+#  define crc32                 z_crc32
+#  define crc32_combine         z_crc32_combine
+#  define crc32_combine64       z_crc32_combine64
+#  define deflate               z_deflate
+#  define deflateBound          z_deflateBound
+#  define deflateCopy           z_deflateCopy
+#  define deflateEnd            z_deflateEnd
+#  define deflateInit2_         z_deflateInit2_
+#  define deflateInit_          z_deflateInit_
+#  define deflateParams         z_deflateParams
+#  define deflatePrime          z_deflatePrime
+#  define deflateReset          z_deflateReset
+#  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
+#  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 gzgetc                z_gzgetc
+#  define gzgets                z_gzgets
+#  define gzoffset              z_gzoffset
+#  define gzoffset64            z_gzoffset64
+#  define gzopen                z_gzopen
+#  define gzopen64              z_gzopen64
+#  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 gzwrite               z_gzwrite
+#  define inflate               z_inflate
+#  define inflateBack           z_inflateBack
+#  define inflateBackEnd        z_inflateBackEnd
+#  define inflateBackInit_      z_inflateBackInit_
+#  define inflateCopy           z_inflateCopy
+#  define inflateEnd            z_inflateEnd
+#  define inflateGetHeader      z_inflateGetHeader
+#  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 inflateSetDictionary  z_inflateSetDictionary
+#  define inflateSync           z_inflateSync
+#  define inflateSyncPoint      z_inflateSyncPoint
+#  define inflateUndermine      z_inflateUndermine
+#  define inflate_copyright     z_inflate_copyright
+#  define inflate_fast          z_inflate_fast
+#  define inflate_table         z_inflate_table
+#  define uncompress            z_uncompress
+#  define zError                z_zError
+#  define zcalloc               z_zcalloc
+#  define zcfree                z_zcfree
+#  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
+#  define gzFile                z_gzFile
+#  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
+
+/* Some Mac compilers merge all .h files incorrectly: */
+#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__)
+#  define NO_DUMMY_DECL
+#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 a few kilobytes
+ for small objects.
+*/
+
+                        /* Type declarations */
+
+#ifndef OF /* function prototypes */
+#  ifdef STDC
+#    define OF(args)  args
+#  else
+#    define OF(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 1    /* was set to #if 1 by ./configure */
+#  define Z_HAVE_UNISTD_H
+#endif
+
+#ifdef STDC
+#  include <sys/types.h>    /* for off_t */
+#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 -_LARGEFILE64_SOURCE - -1 == 1
+#  undef _LARGEFILE64_SOURCE
+#endif
+
+#if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
+#  include <unistd.h>       /* for SEEK_* and off_t */
+#  ifdef VMS
+#    include <unixio.h>     /* for off_t */
+#  endif
+#  ifndef z_off_t
+#    define z_off_t off_t
+#  endif
+#endif
+
+#ifndef SEEK_SET
+#  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(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0
+#  define z_off64_t off64_t
+#else
+#  define z_off64_t z_off_t
+#endif
+
+#if defined(__OS400__)
+#  define NO_vsnprintf
+#endif
+
+#if defined(__MVS__)
+#  define NO_vsnprintf
+#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/include/zlib.h b/include/zlib.h
new file mode 100644
index 0000000..bfbba83
--- /dev/null
+++ b/include/zlib.h
@@ -0,0 +1,1613 @@
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+  version 1.2.5, April 19th, 2010
+
+  Copyright (C) 1995-2010 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://www.ietf.org/rfc/rfc1950.txt
+  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
+*/
+
+#ifndef ZLIB_H
+#define ZLIB_H
+
+#include "zconf.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ZLIB_VERSION "1.2.5"
+#define ZLIB_VERNUM 0x1250
+#define ZLIB_VER_MAJOR 1
+#define ZLIB_VER_MINOR 2
+#define ZLIB_VER_REVISION 5
+#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 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 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 {
+    Bytef    *next_in;  /* next input byte */
+    uInt     avail_in;  /* number of bytes available at next_in */
+    uLong    total_in;  /* total nb of input bytes read so far */
+
+    Bytef    *next_out; /* next output byte should be put there */
+    uInt     avail_out; /* remaining free space at next_out */
+    uLong    total_out; /* total nb of bytes output so far */
+
+    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 */
+    uLong   adler;      /* adler32 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.
+
+     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 in 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 (though see inflate()) */
+
+#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().
+
+  - Provide 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 (in interactive applications).  Some
+    output may be provided even if flush is not set.
+
+    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.
+
+    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 code
+  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, 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 immediately after deflateInit if all the compression
+  is to be done in a single step.  In this case, avail_out must be at least the
+  value returned by deflateBound (see below).  If deflate does not return
+  Z_STREAM_END, then it must be called again as described above.
+
+    deflate() sets strm->adler to the adler32 checksum of all input read
+  so far (that is, total_in bytes).
+
+    deflate() may update strm->data_type if it can make a good guess about
+  the input data type (Z_BINARY or Z_TEXT).  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), 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.  If next_in is not Z_NULL and avail_in is large enough (the
+   exact value depends on the compression method), inflateInit determines the
+   compression method from the zlib header and allocates all data structures
+   accordingly; otherwise the allocation will be deferred to the first call of
+   inflate.  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
+   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 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), next_in is updated and processing will
+    resume at this point for the next call of inflate().
+
+  - Provide 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.  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.
+  Also to assist in this, on return inflate() will set 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 the uncompressed data.  (The size
+  of the uncompressed data may have been saved by the compressor for this
+  purpose.) The next operation on this stream must be inflateEnd to deallocate
+  the decompression state.  The use of Z_FINISH is never required, but can be
+  used to inform inflate that a faster approach may be used for the single
+  inflate() call.
+
+     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 only effect of the flush parameter in this implementation
+  is on the return value of inflate(), as noted below, or when it returns early
+  because Z_BLOCK or Z_TREES is used.
+
+     If a preset dictionary is needed after this call (see inflateSetDictionary
+  below), inflate sets strm->adler to the adler32 checksum of the dictionary
+  chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
+  strm->adler to the adler32 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 adler32
+  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, so applications that need that information should
+  instead use raw inflate, see inflateInit2() below, or inflateBack() and
+  perform their own processing of the gzip header and trailer.
+
+    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), Z_STREAM_ERROR if the stream structure was inconsistent (for example
+  next_in or next_out was Z_NULL), Z_MEM_ERROR if there was not enough memory,
+  Z_BUF_ERROR if no progress is 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 desired.
+*/
+
+
+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, Z_STREAM_ERROR if the stream state
+   was inconsistent.  In the error case, msg may be set but then points to a
+   static string (which must not be deallocated).
+*/
+
+
+                        /* 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.
+
+     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 an adler32 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 255 (unknown).  If a
+   gzip stream is being written, strm->adler is a crc32 instead of an adler32.
+
+     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.  This function must be called
+   immediately after deflateInit, deflateInit2 or deflateReset, before any call
+   of deflate.  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 adler32 value
+   of the dictionary; the decompressor may later use this value to determine
+   which dictionary has been used by the compressor.  (The adler32 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
+   adler32 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 the compression method is bsort).  deflateSetDictionary does not
+   perform any compression: this will be done by deflate().
+*/
+
+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 all the internal compression state.  The
+   stream will keep the same compression level and any other attributes that
+   may have been set by deflateInit2.
+
+     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 level is changed, the input available so far is
+   compressed with the old level (and may be flushed); the new level will take
+   effect only at the next call of deflate().
+
+     Before the call of deflateParams, the stream state must be set as for
+   a call of deflate(), since the currently available input may have to be
+   compressed and flushed.  In particular, strm->avail_out must be non-zero.
+
+     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
+   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR if
+   strm->avail_out was zero.
+*/
+
+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().
+*/
+
+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, 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 adler32 or a crc32 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
+   crc32 instead of an adler32.
+
+     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 adler32 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
+   immediately after inflateInit2() or inflateReset() and before any call of
+   inflate() to set the dictionary.  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 adler32 value).  inflateSetDictionary does not
+   perform any decompression: this will be done by subsequent calls of
+   inflate().
+*/
+
+ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
+/*
+     Skips invalid compressed data until a full flush point (see above the
+   description of deflate with Z_FULL_FLUSH) can be found, or until all
+   available input is skipped.  No output is provided.
+
+     inflateSync returns Z_OK if a 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 all 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.
+
+     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 -1 << 16 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 paramaters 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 *, 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 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.  This
+   function 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 normal
+   behavior of inflate(), which expects either a zlib or gzip 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: 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)
+ */
+
+
+                        /* 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 buffer.
+
+     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 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.
+*/
+
+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 buffer.
+
+     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.
+*/
+
+
+                        /* 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 voidp gzFile;       /* 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.) Also "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.
+
+     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.
+
+     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.
+
+     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.  Two buffers are allocated, either both of the specified size when
+   writing, or one of the specified size and the other twice that size when
+   reading.  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.
+
+     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
+   opened for writing.
+*/
+
+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 was not in gzip format, gzread copies the given number of
+   bytes into the buffer.
+
+     After reaching the end of a gzip stream in the input, gzread will continue
+   to read, looking for another gzip stream, or failing that, reading the rest
+   of the input file directly without decompression.  The entire input file
+   will be read if gzread is called until it returns less than the requested
+   len.
+
+     gzread returns the number of uncompressed bytes actually read, less than
+   len for end of file, or -1 for error.
+*/
+
+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 int ZEXPORTVA gzprintf OF((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 0 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.
+*/
+
+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
+   concatented 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.  This state can change from
+   false to true while reading the input file if the end of a gzip stream is
+   reached, but is followed by data that is not another gzip stream.
+
+     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().
+*/
+
+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, 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.
+*/
+
+
+                        /* 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 CRC32 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_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.
+*/
+
+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 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_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));
+#define deflateInit(strm, level) \
+        deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream))
+#define inflateInit(strm) \
+        inflateInit_((strm),                ZLIB_VERSION, sizeof(z_stream))
+#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
+        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
+                      (strategy),           ZLIB_VERSION, sizeof(z_stream))
+#define inflateInit2(strm, windowBits) \
+        inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
+#define inflateBackInit(strm, windowBits, window) \
+        inflateBackInit_((strm), (windowBits), (window), \
+                                            ZLIB_VERSION, sizeof(z_stream))
+
+/* 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
+ */
+#if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-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));
+   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) && _FILE_OFFSET_BITS-0 == 64 && _LFS64_LARGEFILE-0
+#  define gzopen gzopen64
+#  define gzseek gzseek64
+#  define gztell gztell64
+#  define gzoffset gzoffset64
+#  define adler32_combine adler32_combine64
+#  define crc32_combine crc32_combine64
+#  ifdef _LARGEFILE64_SOURCE
+     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
+
+/* hack for buggy compilers */
+#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
+    struct internal_state {int dummy;};
+#endif
+
+/* undocumented functions */
+ZEXTERN const char   * ZEXPORT zError           OF((int));
+ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
+ZEXTERN const uLongf * ZEXPORT get_crc_table    OF((void));
+ZEXTERN int            ZEXPORT inflateUndermine OF((z_streamp, int));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ZLIB_H */
diff --git a/lib/libpng14.a b/lib/libpng14.a
new file mode 100644
index 0000000000000000000000000000000000000000..3ce34d79355fb530c009d6ca38a151a33ec9cbce
GIT binary patch
literal 210758
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

literal 0
HcmV?d00001

diff --git a/lib/libz.a b/lib/libz.a
new file mode 100644
index 0000000000000000000000000000000000000000..c7bb1e86f981015d9f577507df09fa2b9e1ec79e
GIT binary patch
literal 95182
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

literal 0
HcmV?d00001

diff --git a/main.c b/main.c
index ff6fcc2..16317a3 100644
--- a/main.c
+++ b/main.c
@@ -488,13 +488,10 @@ HRESULT __stdcall ddraw_SetCooperativeLevel(IDirectDrawImpl *This, HWND hWnd, DW
 
     GetWindowText(This->hWnd, (LPTSTR)&This->title, sizeof(This->title));
 
-    if(This->vhack == 1)
-    {
-        if (strcmp(This->title, "Command & Conquer"))
-        {
-            This->vhack = 0;
-        }
-    }
+	if (!strcmp(This->title, "Red Alert"))
+	{
+		ddraw->isredalert = 1;
+	}
 
     return DD_OK;
 }
diff --git a/main.h b/main.h
index 636839a..1351246 100644
--- a/main.h
+++ b/main.h
@@ -81,6 +81,7 @@ typedef struct IDirectDrawImpl
     BOOL vsync;
     float sensitivity;
     BOOL vhack;
+	BOOL isredalert;
     DWORD WINAPI (*renderer)(void);
 
 } IDirectDrawImpl;
diff --git a/render.c b/render.c
index dac6f0a..6bfdfd8 100644
--- a/render.c
+++ b/render.c
@@ -168,15 +168,17 @@ DWORD WINAPI render_main(void)
     return 0;
 }
 
-static unsigned char getPixel(int x, int y)
-{
-    return ((unsigned char *)ddraw->primary->surface)[y*ddraw->primary->lPitch + x*ddraw->primary->lXPitch];
-}
 
-BOOL detect_cutscene()
-{
-    if(ddraw->width <= CUTSCENE_WIDTH || ddraw->height <= CUTSCENE_HEIGHT)
-        return FALSE;
 
-    return getPixel(CUTSCENE_WIDTH + 1, 0) == 0 || getPixel(CUTSCENE_WIDTH + 5, 1) == 0 ? TRUE : FALSE;
-}
+//BOOL detect_cutscene()
+//{
+//   if(ddraw->width <= CUTSCENE_WIDTH || ddraw->height <= CUTSCENE_HEIGHT)
+//        return FALSE;
+//
+//    return getPixel(CUTSCENE_WIDTH + 1, 0) == 0 || getPixel(CUTSCENE_WIDTH + 5, 1) == 0 ? TRUE : FALSE;
+//}
+
+#define DECLARE_VAR(name, type, address) type name = address
+
+//DECLARE_VAR(InMovie, int*, 0x00665F58);
+//DECLARE_VAR(IsVQA640, int*, 0x0065D7BC);
\ No newline at end of file
diff --git a/render_soft.c b/render_soft.c
index 4abee4e..ef7c890 100644
--- a/render_soft.c
+++ b/render_soft.c
@@ -20,6 +20,35 @@
 #include "main.h"
 #include "surface.h"
 
+#define CUTSCENE_WIDTH 640
+#define CUTSCENE_HEIGHT 400
+
+static unsigned char getPixel(int x, int y)
+{
+	return ((unsigned char *)ddraw->primary->surface)[y*ddraw->primary->lPitch + x*ddraw->primary->lXPitch];
+}
+
+int* InMovie = (int*)0x00665F58;
+int* IsVQA640 = (int*)0x0065D7BC; 
+BYTE* ShouldStretch = (BYTE*)0x00711015;
+
+BOOL detect_cutscene()
+{
+	if (ddraw->isredalert == TRUE)
+	{
+		if ((*InMovie && !*IsVQA640) || *ShouldStretch)
+		{
+			return TRUE;
+		}
+		return FALSE;
+	}
+	else if(ddraw->width <= CUTSCENE_WIDTH || ddraw->height <= CUTSCENE_HEIGHT)
+		return FALSE;
+
+	return getPixel(CUTSCENE_WIDTH + 1, 0) == 0 || getPixel(CUTSCENE_WIDTH + 5, 1) == 0 ? TRUE : FALSE;	
+}
+
+
 DWORD WINAPI render_soft_main(void)
 {
     PBITMAPINFO bmi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256);
@@ -73,8 +102,6 @@ DWORD WINAPI render_soft_main(void)
             tick_start = GetTickCount();
         }
 
-        EnterCriticalSection(&ddraw->cs);
-
         if (ddraw->primary && (ddraw->primary->palette || ddraw->bpp == 16))
         {
             if (ddraw->primary->palette && ddraw->primary->palette->data_rgb == NULL)
@@ -86,11 +113,19 @@ DWORD WINAPI render_soft_main(void)
             {
                 StretchDIBits(ddraw->render.hDC, dst_left, dst_top, dst_width, dst_height, 0, 0, ddraw->width, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY);
             }
-            else
-            {
-                SetDIBitsToDevice(ddraw->render.hDC, 0, 0, ddraw->width, ddraw->height, 0, 0, 0, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS);
-            }
+			else if (!detect_cutscene())
+			{
+				SetDIBitsToDevice(ddraw->render.hDC, 0, 0, ddraw->width, ddraw->height, 0, 0, 0, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS);
+			}
+
         }
+		if (ddraw->primary && detect_cutscene()) // for vhack
+		{
+			// for 800 x 600:
+			//StretchDIBits(ddraw->render.hDC, 0, 0, ddraw->render.width, ddraw->render.height, 0, 200, CUTSCENE_WIDTH, CUTSCENE_HEIGHT, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY);
+			StretchDIBits(ddraw->render.hDC, 0, 0, ddraw->render.width, ddraw->render.height, 0, ddraw->render.height-400, CUTSCENE_WIDTH, CUTSCENE_HEIGHT, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY);
+		}
+
         LeaveCriticalSection(&ddraw->cs);
 
         if(ddraw->render.maxfps > 0)
@@ -102,7 +137,6 @@ DWORD WINAPI render_soft_main(void)
                 Sleep( frame_len - (tick_end - tick_start) );
             }
         }
-
         SetEvent(ddraw->render.ev);
     }