[tkimg] support libpng 1.5

Tom Callaway spot at fedoraproject.org
Wed Dec 7 21:41:29 UTC 2011


commit 38f25163014c41a4b261986b2ba3812d91d5d354
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Wed Dec 7 16:41:13 2011 -0500

    support libpng 1.5

 tkimg-libpng.patch   |    4 +-
 tkimg-libpng15.patch | 5979 ++++++++++++++++++++++++++++++++++++++++++++++++++
 tkimg.spec           |    9 +-
 3 files changed, 5988 insertions(+), 4 deletions(-)
---
diff --git a/tkimg-libpng.patch b/tkimg-libpng.patch
index 5921503..38a1d29 100644
--- a/tkimg-libpng.patch
+++ b/tkimg-libpng.patch
@@ -48,7 +48,7 @@ diff -up tkimg1.4/libpng/Makefile.in.libpng tkimg1.4/libpng/Makefile.in
  SHLIB_CFLAGS	= @SHLIB_CFLAGS@
  SHLIB_LD	= @SHLIB_LD@
 -SHLIB_LD_LIBS	= @SHLIB_LD_LIBS@
-+SHLIB_LD_LIBS	= @SHLIB_LD_LIBS@ -lpng
++SHLIB_LD_LIBS	= @SHLIB_LD_LIBS@ `libpng-config --libs`
  STLIB_LD	= @STLIB_LD@
  TCL_DEFS	= @TCL_DEFS@
  TCL_BIN_DIR	= @TCL_BIN_DIR@
@@ -57,7 +57,7 @@ diff -up tkimg1.4/libpng/Makefile.in.libpng tkimg1.4/libpng/Makefile.in
  LIBS		= @PKG_LIBS@ @LIBS@
  AR		= @AR@
 -CFLAGS		= @CFLAGS@ -DPNG_IMPEXP=MODULE_SCOPE -DPNG_EXTERN=MODULE_SCOPE
-+CFLAGS		= @CFLAGS@ -DPNG_IMPEXP= -DPNG_EXTERN=MODULE_SCOPE
++CFLAGS		= @CFLAGS@ -DPNG_IMPEXP= -DPNG_EXTERN=MODULE_SCOPE `libpng-config --cflags`
  COMPILE		= $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  
  #========================================================================
diff --git a/tkimg-libpng15.patch b/tkimg-libpng15.patch
new file mode 100644
index 0000000..f25bdf0
--- /dev/null
+++ b/tkimg-libpng15.patch
@@ -0,0 +1,5979 @@
+diff -up tkimg1.4/libpng/pngtclDecls.h.png15 tkimg1.4/libpng/pngtclDecls.h
+--- tkimg1.4/libpng/pngtclDecls.h.png15	2011-12-07 16:14:29.171412239 -0500
++++ tkimg1.4/libpng/pngtclDecls.h	2011-12-07 16:32:06.904892379 -0500
+@@ -25,25 +25,30 @@
+ #   define USE_PNGTCL_STUBS 1
+ #endif
+ 
++/* We do this because otherwise, it gets confused about slots 201-203 */
++#define PNG_READ_INT_FUNCTIONS_SUPPORTED 1
++#define PNG_NO_USE_READ_MACROS 1
++
+ EXTERN int Pngtcl_Init(Tcl_Interp *interp);
+ EXTERN int Pngtcl_SafeInit(Tcl_Interp *interp);
+ 
+ #include </usr/include/png.h>
+ 
++
+ /* !BEGIN!: Do not edit below this line. */
+ 
+ /*
+  * Exported function declarations:
+  */
+ 
+-/* 0 */
+-PNG_IMPEXP png_uint_32	png_access_version_number(void);
++/* Slot 0 is reserved */
+ /* 1 */
+-PNG_IMPEXP void		png_set_sig_bytes(png_structp png_ptr, int num_bytes);
++PNG_IMPEXP png_uint_32	png_access_version_number(void);
+ /* 2 */
+-PNG_IMPEXP int		png_sig_cmp(png_bytep sig, png_size_t start,
++PNG_IMPEXP void		png_set_sig_bytes(png_structp png_ptr, int num_bytes);
++/* 3 */
++PNG_IMPEXP int		png_sig_cmp(png_const_bytep sig, png_size_t start,
+ 				png_size_t num_to_check);
+-/* Slot 3 is reserved */
+ /* 4 */
+ PNG_IMPEXP png_structp	png_create_read_struct(png_const_charp user_png_ver,
+ 				png_voidp error_ptr, png_error_ptr error_fn,
+@@ -53,167 +58,178 @@ PNG_IMPEXP png_structp	png_create_write_
+ 				png_voidp error_ptr, png_error_ptr error_fn,
+ 				png_error_ptr warn_fn);
+ /* 6 */
+-PNG_IMPEXP png_uint_32	png_get_compression_buffer_size(png_structp png_ptr);
++PNG_IMPEXP png_size_t	png_get_compression_buffer_size(
++				png_const_structp png_ptr);
+ /* 7 */
+ PNG_IMPEXP void		png_set_compression_buffer_size(png_structp png_ptr,
+-				png_uint_32 size);
++				png_size_t size);
+ /* 8 */
+-PNG_IMPEXP int		png_reset_zstream(png_structp png_ptr);
++PNG_IMPEXP jmp_buf*	png_set_longjmp_fn(png_structp png_ptr,
++				png_longjmp_ptr longjmp_fn,
++				size_t jmp_buf_size);
+ /* 9 */
++PNG_IMPEXP void		png_longjmp(png_structp png_ptr, int val);
++/* 10 */
++PNG_IMPEXP int		png_reset_zstream(png_structp png_ptr);
++/* 11 */
+ PNG_IMPEXP png_structp	png_create_read_struct_2(
+ 				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);
+-/* 10 */
++/* 12 */
+ PNG_IMPEXP png_structp	png_create_write_struct_2(
+ 				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);
+-/* 11 */
++/* 13 */
++PNG_IMPEXP void		png_write_sig(png_structp png_ptr);
++/* 14 */
+ PNG_IMPEXP void		png_write_chunk(png_structp png_ptr,
+-				png_bytep chunk_name, png_bytep data,
+-				png_size_t length);
+-/* 12 */
++				png_const_bytep chunk_name,
++				png_const_bytep data, png_size_t length);
++/* 15 */
+ PNG_IMPEXP void		png_write_chunk_start(png_structp png_ptr,
+-				png_bytep chunk_name, png_uint_32 length);
+-/* 13 */
++				png_const_bytep chunk_name,
++				png_uint_32 length);
++/* 16 */
+ PNG_IMPEXP void		png_write_chunk_data(png_structp png_ptr,
+-				png_bytep data, png_size_t length);
+-/* 14 */
++				png_const_bytep data, png_size_t length);
++/* 17 */
+ PNG_IMPEXP void		png_write_chunk_end(png_structp png_ptr);
+-/* 15 */
++/* 18 */
+ PNG_IMPEXP png_infop	png_create_info_struct(png_structp png_ptr);
+-/* Slot 16 is reserved */
+-/* 17 */
++/* 19 */
++PNG_IMPEXP void		png_info_init_3(png_infopp info_ptr,
++				png_size_t png_info_struct_size);
++/* 20 */
+ PNG_IMPEXP void		png_write_info_before_PLTE(png_structp png_ptr,
+ 				png_infop info_ptr);
+-/* 18 */
++/* 21 */
+ PNG_IMPEXP void		png_write_info(png_structp png_ptr,
+ 				png_infop info_ptr);
+-/* 19 */
++/* 22 */
+ PNG_IMPEXP void		png_read_info(png_structp png_ptr,
+ 				png_infop info_ptr);
+-/* 20 */
+-PNG_IMPEXP png_charp	png_convert_to_rfc1123(png_structp png_ptr,
+-				png_timep ptime);
+-/* 21 */
++/* 23 */
++PNG_IMPEXP png_const_charp png_convert_to_rfc1123(png_structp png_ptr,
++				png_const_timep ptime);
++/* 24 */
+ PNG_IMPEXP void		png_convert_from_struct_tm(png_timep ptime,
+-				struct tm FAR *ttime);
+-/* 22 */
++				PNG_CONST struct tm FAR *ttime);
++/* 25 */
+ PNG_IMPEXP void		png_convert_from_time_t(png_timep ptime,
+ 				time_t ttime);
+-/* 23 */
++/* 26 */
+ PNG_IMPEXP void		png_set_expand(png_structp png_ptr);
+-/* Slot 24 is reserved */
+-/* 25 */
++/* 27 */
++PNG_IMPEXP void		png_set_expand_gray_1_2_4_to_8(png_structp png_ptr);
++/* 28 */
+ PNG_IMPEXP void		png_set_palette_to_rgb(png_structp png_ptr);
+-/* 26 */
++/* 29 */
+ PNG_IMPEXP void		png_set_tRNS_to_alpha(png_structp png_ptr);
+-/* 27 */
++/* 30 */
+ PNG_IMPEXP void		png_set_bgr(png_structp png_ptr);
+-/* 28 */
++/* 31 */
+ PNG_IMPEXP void		png_set_gray_to_rgb(png_structp png_ptr);
+-/* 29 */
++/* 32 */
+ PNG_IMPEXP void		png_set_rgb_to_gray(png_structp png_ptr,
+ 				int error_action, double red, double green);
+-/* 30 */
++/* 33 */
+ PNG_IMPEXP void		png_set_rgb_to_gray_fixed(png_structp png_ptr,
+ 				int error_action, png_fixed_point red,
+ 				png_fixed_point green);
+-/* 31 */
+-PNG_IMPEXP png_byte	png_get_rgb_to_gray_status(png_structp png_ptr);
+-/* 32 */
++/* 34 */
++PNG_IMPEXP png_byte	png_get_rgb_to_gray_status(png_const_structp png_ptr);
++/* 35 */
+ PNG_IMPEXP void		png_build_grayscale_palette(int bit_depth,
+ 				png_colorp palette);
+-/* 33 */
++/* 36 */
+ PNG_IMPEXP void		png_set_strip_alpha(png_structp png_ptr);
+-/* 34 */
++/* 37 */
+ PNG_IMPEXP void		png_set_swap_alpha(png_structp png_ptr);
+-/* 35 */
++/* 38 */
+ PNG_IMPEXP void		png_set_invert_alpha(png_structp png_ptr);
+-/* 36 */
++/* 39 */
+ PNG_IMPEXP void		png_set_filler(png_structp png_ptr,
+ 				png_uint_32 filler, int flags);
+-/* 37 */
++/* 40 */
++PNG_IMPEXP void		png_set_add_alpha(png_structp png_ptr,
++				png_uint_32 filler, int flags);
++/* 41 */
+ PNG_IMPEXP void		png_set_swap(png_structp png_ptr);
+-/* 38 */
++/* 42 */
+ PNG_IMPEXP void		png_set_packing(png_structp png_ptr);
+-/* 39 */
++/* 43 */
+ PNG_IMPEXP void		png_set_packswap(png_structp png_ptr);
+-/* 40 */
++/* 44 */
+ PNG_IMPEXP void		png_set_shift(png_structp png_ptr,
+-				png_color_8p true_bits);
+-/* 41 */
++				png_const_color_8p true_bits);
++/* 45 */
+ PNG_IMPEXP int		png_set_interlace_handling(png_structp png_ptr);
+-/* 42 */
++/* 46 */
+ PNG_IMPEXP void		png_set_invert_mono(png_structp png_ptr);
+-/* 43 */
++/* 47 */
+ PNG_IMPEXP void		png_set_background(png_structp png_ptr,
+-				png_color_16p background_color,
++				png_const_color_16p background_color,
+ 				int background_gamma_code, int need_expand,
+ 				double background_gamma);
+-/* 44 */
++/* 48 */
+ PNG_IMPEXP void		png_set_strip_16(png_structp png_ptr);
+-/* Slot 45 is reserved */
+-/* PNG_IMPEXP void		png_set_quantize(png_structp png_ptr,
++/* 49 */
++PNG_IMPEXP void		png_set_quantize(png_structp png_ptr,
+ 				png_colorp palette, int num_palette,
+-				int maximum_colors, png_uint_16p histogram,
+-				int full_dither);
+-*/
+-/* 46 */
++				int maximum_colors,
++				png_const_uint_16p histogram,
++				int full_quantize);
++/* 50 */
+ PNG_IMPEXP void		png_set_gamma(png_structp png_ptr,
+ 				double screen_gamma,
+-				double default_file_gamma);
+-/* 47 */
+-PNG_IMPEXP void		png_permit_empty_plte(png_structp png_ptr,
+-				int empty_plte_permitted);
+-/* 48 */
++				double override_file_gamma);
++/* 51 */
+ PNG_IMPEXP void		png_set_flush(png_structp png_ptr, int nrows);
+-/* 49 */
++/* 52 */
+ PNG_IMPEXP void		png_write_flush(png_structp png_ptr);
+-/* 50 */
++/* 53 */
+ PNG_IMPEXP void		png_start_read_image(png_structp png_ptr);
+-/* 51 */
++/* 54 */
+ PNG_IMPEXP void		png_read_update_info(png_structp png_ptr,
+ 				png_infop info_ptr);
+-/* 52 */
++/* 55 */
+ PNG_IMPEXP void		png_read_rows(png_structp png_ptr, png_bytepp row,
+ 				png_bytepp display_row, png_uint_32 num_rows);
+-/* 53 */
++/* 56 */
+ PNG_IMPEXP void		png_read_row(png_structp png_ptr, png_bytep row,
+ 				png_bytep display_row);
+-/* 54 */
++/* 57 */
+ PNG_IMPEXP void		png_read_image(png_structp png_ptr, png_bytepp image);
+-/* 55 */
+-PNG_IMPEXP void		png_write_row(png_structp png_ptr, png_bytep row);
+-/* 56 */
++/* 58 */
++PNG_IMPEXP void		png_write_row(png_structp png_ptr,
++				png_const_bytep row);
++/* 59 */
+ PNG_IMPEXP void		png_write_rows(png_structp png_ptr, png_bytepp row,
+ 				png_uint_32 num_rows);
+-/* 57 */
++/* 60 */
+ PNG_IMPEXP void		png_write_image(png_structp png_ptr,
+ 				png_bytepp image);
+-/* 58 */
++/* 61 */
+ PNG_IMPEXP void		png_write_end(png_structp png_ptr,
+ 				png_infop info_ptr);
+-/* 59 */
++/* 62 */
+ PNG_IMPEXP void		png_read_end(png_structp png_ptr, png_infop info_ptr);
+-/* 60 */
++/* 63 */
+ PNG_IMPEXP void		png_destroy_info_struct(png_structp png_ptr,
+ 				png_infopp info_ptr_ptr);
+-/* 61 */
++/* 64 */
+ PNG_IMPEXP void		png_destroy_read_struct(png_structpp png_ptr_ptr,
+ 				png_infopp info_ptr_ptr,
+ 				png_infopp end_info_ptr_ptr);
+-/* Slot 62 is reserved */
+-/* 63 */
++/* 65 */
+ PNG_IMPEXP void		png_destroy_write_struct(png_structpp png_ptr_ptr,
+ 				png_infopp info_ptr_ptr);
+-/* Slot 64 is reserved */
+-/* Slot 65 is reserved */
+ /* 66 */
+ PNG_IMPEXP void		png_set_crc_action(png_structp png_ptr,
+ 				int crit_action, int ancil_action);
+@@ -223,8 +239,8 @@ PNG_IMPEXP void		png_set_filter(png_stru
+ /* 68 */
+ PNG_IMPEXP void		png_set_filter_heuristics(png_structp png_ptr,
+ 				int heuristic_method, int num_weights,
+-				png_doublep filter_weights,
+-				png_doublep filter_costs);
++				png_const_doublep filter_weights,
++				png_const_doublep filter_costs);
+ /* 69 */
+ PNG_IMPEXP void		png_set_compression_level(png_structp png_ptr,
+ 				int level);
+@@ -247,7 +263,7 @@ PNG_IMPEXP void		png_set_error_fn(png_st
+ 				png_voidp error_ptr, png_error_ptr error_fn,
+ 				png_error_ptr warning_fn);
+ /* 76 */
+-PNG_IMPEXP png_voidp	png_get_error_ptr(png_structp png_ptr);
++PNG_IMPEXP png_voidp	png_get_error_ptr(png_const_structp png_ptr);
+ /* 77 */
+ PNG_IMPEXP void		png_set_write_fn(png_structp png_ptr,
+ 				png_voidp io_ptr, png_rw_ptr write_data_fn,
+@@ -268,7 +284,7 @@ PNG_IMPEXP void		png_set_mem_fn(png_stru
+ 				png_voidp mem_ptr, png_malloc_ptr malloc_fn,
+ 				png_free_ptr free_fn);
+ /* 83 */
+-PNG_IMPEXP png_voidp	png_get_mem_ptr(png_structp png_ptr);
++PNG_IMPEXP png_voidp	png_get_mem_ptr(png_const_structp png_ptr);
+ /* 84 */
+ PNG_IMPEXP void		png_set_read_user_transform_fn(png_structp png_ptr,
+ 				png_user_transform_ptr read_user_transform_fn);
+@@ -281,13 +297,13 @@ PNG_IMPEXP void		png_set_user_transform_
+ 				int user_transform_depth,
+ 				int user_transform_channels);
+ /* 87 */
+-PNG_IMPEXP png_voidp	png_get_user_transform_ptr(png_structp png_ptr);
++PNG_IMPEXP png_voidp	png_get_user_transform_ptr(png_const_structp png_ptr);
+ /* 88 */
+ PNG_IMPEXP void		png_set_read_user_chunk_fn(png_structp png_ptr,
+ 				png_voidp user_chunk_ptr,
+ 				png_user_chunk_ptr read_user_chunk_fn);
+ /* 89 */
+-PNG_IMPEXP png_voidp	png_get_user_chunk_ptr(png_structp png_ptr);
++PNG_IMPEXP png_voidp	png_get_user_chunk_ptr(png_const_structp png_ptr);
+ /* 90 */
+ PNG_IMPEXP void		png_set_progressive_read_fn(png_structp png_ptr,
+ 				png_voidp progressive_ptr,
+@@ -295,125 +311,141 @@ PNG_IMPEXP void		png_set_progressive_rea
+ 				png_progressive_row_ptr row_fn,
+ 				png_progressive_end_ptr end_fn);
+ /* 91 */
+-PNG_IMPEXP png_voidp	png_get_progressive_ptr(png_structp png_ptr);
++PNG_IMPEXP png_voidp	png_get_progressive_ptr(png_const_structp png_ptr);
+ /* 92 */
+ PNG_IMPEXP void		png_process_data(png_structp png_ptr,
+ 				png_infop info_ptr, png_bytep buffer,
+ 				png_size_t buffer_size);
+ /* 93 */
+ PNG_IMPEXP void		png_progressive_combine_row(png_structp png_ptr,
+-				png_bytep old_row, png_bytep new_row);
++				png_bytep old_row, png_const_bytep new_row);
+ /* 94 */
+ PNG_IMPEXP png_voidp	png_malloc(png_structp png_ptr,
+-				png_uint_32 size);
++				png_alloc_size_t size);
+ /* 95 */
+-PNG_IMPEXP void		png_free(png_structp png_ptr, png_voidp ptr);
++PNG_IMPEXP png_voidp	png_calloc(png_structp png_ptr,
++				png_alloc_size_t size);
+ /* 96 */
++PNG_IMPEXP png_voidp	png_malloc_warn(png_structp png_ptr,
++				png_alloc_size_t size);
++/* 97 */
++PNG_IMPEXP void		png_free(png_structp png_ptr, png_voidp ptr);
++/* 98 */
+ PNG_IMPEXP void		png_free_data(png_structp png_ptr,
+ 				png_infop info_ptr, png_uint_32 free_me,
+ 				int num);
+-/* 97 */
++/* 99 */
+ PNG_IMPEXP void		png_data_freer(png_structp png_ptr,
+ 				png_infop info_ptr, int freer,
+ 				png_uint_32 mask);
+-/* 98 */
++/* 100 */
+ PNG_IMPEXP png_voidp	png_malloc_default(png_structp png_ptr,
+-				png_uint_32 size);
+-/* 99 */
++				png_alloc_size_t size);
++/* 101 */
+ PNG_IMPEXP void		png_free_default(png_structp png_ptr, png_voidp ptr);
+-/* Slot 100 is reserved */
+-/* Slot 101 is reserved */
+ /* 102 */
+-PNG_IMPEXP void *	png_far_to_near(png_structp png_ptr, png_voidp ptr,
+-				int check);
++PNG_IMPEXP void		png_error(png_structp png_ptr,
++				png_const_charp error_message);
+ /* 103 */
+-PNG_IMPEXP void		png_error(png_structp png_ptr, png_const_charp error);
+-/* 104 */
+ PNG_IMPEXP void		png_chunk_error(png_structp png_ptr,
+ 				png_const_charp error);
++/* 104 */
++PNG_IMPEXP void		png_err(png_structp png_ptr);
+ /* 105 */
+ PNG_IMPEXP void		png_warning(png_structp png_ptr,
+-				png_const_charp message);
++				png_const_charp warning_message);
+ /* 106 */
+ PNG_IMPEXP void		png_chunk_warning(png_structp png_ptr,
+-				png_const_charp message);
++				png_const_charp warning_message);
+ /* 107 */
+-PNG_IMPEXP png_uint_32	png_get_valid(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 flag);
++PNG_IMPEXP void		png_benign_error(png_structp png_ptr,
++				png_const_charp warning_message);
+ /* 108 */
+-PNG_IMPEXP png_uint_32	png_get_rowbytes(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP void		png_chunk_benign_error(png_structp png_ptr,
++				png_const_charp warning_message);
+ /* 109 */
+-PNG_IMPEXP png_bytepp	png_get_rows(png_structp png_ptr, png_infop info_ptr);
++PNG_IMPEXP void		png_set_benign_errors(png_structp png_ptr,
++				int allowed);
+ /* 110 */
+-PNG_IMPEXP void		png_set_rows(png_structp png_ptr, png_infop info_ptr,
+-				png_bytepp row_pointers);
++PNG_IMPEXP png_uint_32	png_get_valid(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_uint_32 flag);
+ /* 111 */
+-PNG_IMPEXP png_byte	png_get_channels(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_size_t	png_get_rowbytes(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 112 */
+-PNG_IMPEXP png_uint_32	png_get_image_width(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_bytepp	png_get_rows(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 113 */
+-PNG_IMPEXP png_uint_32	png_get_image_height(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP void		png_set_rows(png_structp png_ptr, png_infop info_ptr,
++				png_bytepp row_pointers);
+ /* 114 */
+-PNG_IMPEXP png_byte	png_get_bit_depth(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_channels(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 115 */
+-PNG_IMPEXP png_byte	png_get_color_type(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_uint_32	png_get_image_width(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 116 */
+-PNG_IMPEXP png_byte	png_get_filter_type(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_uint_32	png_get_image_height(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 117 */
+-PNG_IMPEXP png_byte	png_get_interlace_type(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_bit_depth(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 118 */
+-PNG_IMPEXP png_byte	png_get_compression_type(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_color_type(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 119 */
+-PNG_IMPEXP png_uint_32	png_get_pixels_per_meter(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_filter_type(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 120 */
+-PNG_IMPEXP png_uint_32	png_get_x_pixels_per_meter(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_interlace_type(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 121 */
+-PNG_IMPEXP png_uint_32	png_get_y_pixels_per_meter(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_byte	png_get_compression_type(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 122 */
+-PNG_IMPEXP float	png_get_pixel_aspect_ratio(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_uint_32	png_get_pixels_per_meter(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 123 */
+-PNG_IMPEXP png_int_32	png_get_x_offset_pixels(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_uint_32	png_get_x_pixels_per_meter(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 124 */
+-PNG_IMPEXP png_int_32	png_get_y_offset_pixels(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_uint_32	png_get_y_pixels_per_meter(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 125 */
+-PNG_IMPEXP png_int_32	png_get_x_offset_microns(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP float	png_get_pixel_aspect_ratio(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 126 */
+-PNG_IMPEXP png_int_32	png_get_y_offset_microns(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_int_32	png_get_x_offset_pixels(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 127 */
+-PNG_IMPEXP png_bytep	png_get_signature(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_int_32	png_get_y_offset_pixels(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 128 */
+-PNG_IMPEXP png_uint_32	png_get_bKGD(png_structp png_ptr, png_infop info_ptr,
+-				png_color_16p *background);
++PNG_IMPEXP png_int_32	png_get_x_offset_microns(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 129 */
+-PNG_IMPEXP void		png_set_bKGD(png_structp png_ptr, png_infop info_ptr,
+-				png_color_16p background);
++PNG_IMPEXP png_int_32	png_get_y_offset_microns(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 130 */
+-PNG_IMPEXP png_uint_32	png_get_cHRM(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);
++PNG_IMPEXP png_const_bytep png_get_signature(png_const_structp png_ptr,
++				png_infop info_ptr);
+ /* 131 */
+-PNG_IMPEXP png_uint_32	png_get_cHRM_fixed(png_structp png_ptr,
++PNG_IMPEXP png_uint_32	png_get_bKGD(png_const_structp png_ptr,
+ 				png_infop info_ptr,
++				png_color_16p *background);
++/* 132 */
++PNG_IMPEXP void		png_set_bKGD(png_structp png_ptr, png_infop info_ptr,
++				png_const_color_16p background);
++/* 133 */
++PNG_IMPEXP png_uint_32	png_get_cHRM(png_const_structp png_ptr,
++				png_const_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);
++/* 134 */
++PNG_IMPEXP png_uint_32	png_get_cHRM_fixed(png_const_structp png_ptr,
++				png_const_infop info_ptr,
+ 				png_fixed_point *int_white_x,
+ 				png_fixed_point *int_white_y,
+ 				png_fixed_point *int_red_x,
+@@ -422,12 +454,12 @@ PNG_IMPEXP png_uint_32	png_get_cHRM_fixe
+ 				png_fixed_point *int_green_y,
+ 				png_fixed_point *int_blue_x,
+ 				png_fixed_point *int_blue_y);
+-/* 132 */
++/* 135 */
+ PNG_IMPEXP void		png_set_cHRM(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);
+-/* 133 */
++/* 136 */
+ PNG_IMPEXP void		png_set_cHRM_fixed(png_structp png_ptr,
+ 				png_infop info_ptr,
+ 				png_fixed_point int_white_x,
+@@ -438,652 +470,423 @@ PNG_IMPEXP void		png_set_cHRM_fixed(png_
+ 				png_fixed_point int_green_y,
+ 				png_fixed_point int_blue_x,
+ 				png_fixed_point int_blue_y);
+-/* 134 */
+-PNG_IMPEXP png_uint_32	png_get_gAMA(png_structp png_ptr, png_infop info_ptr,
+-				double *file_gamma);
+-/* 135 */
+-PNG_IMPEXP png_uint_32	png_get_gAMA_fixed(png_structp png_ptr,
+-				png_infop info_ptr,
++/* 137 */
++PNG_IMPEXP png_uint_32	png_get_gAMA(png_const_structp png_ptr,
++				png_const_infop info_ptr, double *file_gamma);
++/* 138 */
++PNG_IMPEXP png_uint_32	png_get_gAMA_fixed(png_const_structp png_ptr,
++				png_const_infop info_ptr,
+ 				png_fixed_point *int_file_gamma);
+-/* 136 */
++/* 139 */
+ PNG_IMPEXP void		png_set_gAMA(png_structp png_ptr, png_infop info_ptr,
+ 				double file_gamma);
+-/* 137 */
++/* 140 */
+ PNG_IMPEXP void		png_set_gAMA_fixed(png_structp png_ptr,
+ 				png_infop info_ptr,
+ 				png_fixed_point int_file_gamma);
+-/* 138 */
+-PNG_IMPEXP png_uint_32	png_get_hIST(png_structp png_ptr, png_infop info_ptr,
+-				png_uint_16p *hist);
+-/* 139 */
++/* 141 */
++PNG_IMPEXP png_uint_32	png_get_hIST(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_uint_16p *hist);
++/* 142 */
+ PNG_IMPEXP void		png_set_hIST(png_structp png_ptr, png_infop info_ptr,
+-				png_uint_16p hist);
+-/* 140 */
++				png_const_uint_16p hist);
++/* 143 */
+ PNG_IMPEXP png_uint_32	png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
+ 				png_uint_32 *width, png_uint_32 *height,
+ 				int *bit_depth, int *color_type,
+-				int *interlace_type, int *compression_type,
+-				int *filter_type);
+-/* 141 */
++				int *interlace_method,
++				int *compression_method, int *filter_method);
++/* 144 */
+ PNG_IMPEXP void		png_set_IHDR(png_structp png_ptr, png_infop info_ptr,
+ 				png_uint_32 width, png_uint_32 height,
+ 				int bit_depth, int color_type,
+-				int interlace_type, int compression_type,
+-				int filter_type);
+-/* 142 */
+-PNG_IMPEXP png_uint_32	png_get_oFFs(png_structp png_ptr, png_infop info_ptr,
++				int interlace_method, int compression_method,
++				int filter_method);
++/* 145 */
++PNG_IMPEXP png_uint_32	png_get_oFFs(png_const_structp png_ptr,
++				png_const_infop info_ptr,
+ 				png_int_32 *offset_x, png_int_32 *offset_y,
+ 				int *unit_type);
+-/* 143 */
++/* 146 */
+ PNG_IMPEXP void		png_set_oFFs(png_structp png_ptr, png_infop info_ptr,
+ 				png_int_32 offset_x, png_int_32 offset_y,
+ 				int unit_type);
+-/* 144 */
+-PNG_IMPEXP png_uint_32	png_get_pCAL(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);
+-/* 145 */
++/* 147 */
++PNG_IMPEXP png_uint_32	png_get_pCAL(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_charp *purpose,
++				png_int_32 *X0, png_int_32 *X1, int *type,
++				int *nparams, png_charp *units,
++				png_charpp *params);
++/* 148 */
+ PNG_IMPEXP void		png_set_pCAL(png_structp png_ptr, png_infop info_ptr,
+-				png_charp purpose, png_int_32 X0,
++				png_const_charp purpose, png_int_32 X0,
+ 				png_int_32 X1, int type, int nparams,
+-				png_charp units, png_charpp params);
+-/* 146 */
+-PNG_IMPEXP png_uint_32	png_get_pHYs(png_structp png_ptr, png_infop info_ptr,
+-				png_uint_32 *res_x, png_uint_32 *res_y,
+-				int *unit_type);
+-/* 147 */
++				png_const_charp units, png_charpp params);
++/* 149 */
++PNG_IMPEXP png_uint_32	png_get_pHYs(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_uint_32 *res_x,
++				png_uint_32 *res_y, int *unit_type);
++/* 150 */
+ PNG_IMPEXP void		png_set_pHYs(png_structp png_ptr, png_infop info_ptr,
+ 				png_uint_32 res_x, png_uint_32 res_y,
+ 				int unit_type);
+-/* 148 */
+-PNG_IMPEXP png_uint_32	png_get_PLTE(png_structp png_ptr, png_infop info_ptr,
+-				png_colorp *palette, int *num_palette);
+-/* 149 */
+-PNG_IMPEXP void		png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
+-				png_colorp palette, int num_palette);
+-/* 150 */
+-PNG_IMPEXP png_uint_32	png_get_sBIT(png_structp png_ptr, png_infop info_ptr,
+-				png_color_8p *sig_bit);
+ /* 151 */
+-PNG_IMPEXP void		png_set_sBIT(png_structp png_ptr, png_infop info_ptr,
+-				png_color_8p sig_bit);
++PNG_IMPEXP png_uint_32	png_get_PLTE(png_const_structp png_ptr,
++				png_const_infop info_ptr,
++				png_colorp *palette, int *num_palette);
+ /* 152 */
+-PNG_IMPEXP png_uint_32	png_get_sRGB(png_structp png_ptr, png_infop info_ptr,
+-				int *intent);
++PNG_IMPEXP void		png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
++				png_const_colorp palette, int num_palette);
+ /* 153 */
+-PNG_IMPEXP void		png_set_sRGB(png_structp png_ptr, png_infop info_ptr,
+-				int intent);
++PNG_IMPEXP png_uint_32	png_get_sBIT(png_const_structp png_ptr,
++				png_infop info_ptr, png_color_8p *sig_bit);
+ /* 154 */
+-PNG_IMPEXP void		png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr,
+-				png_infop info_ptr, int intent);
++PNG_IMPEXP void		png_set_sBIT(png_structp png_ptr, png_infop info_ptr,
++				png_const_color_8p sig_bit);
+ /* 155 */
+-PNG_IMPEXP png_uint_32	png_get_iCCP(png_structp png_ptr, png_infop info_ptr,
+-				png_charpp name, int *compression_type,
+-				png_charpp profile, png_uint_32 *proflen);
++PNG_IMPEXP png_uint_32	png_get_sRGB(png_const_structp png_ptr,
++				png_const_infop info_ptr,
++				int *file_srgb_intent);
+ /* 156 */
+-PNG_IMPEXP void		png_set_iCCP(png_structp png_ptr, png_infop info_ptr,
+-				png_charp name, int compression_type,
+-				png_charp profile, png_uint_32 proflen);
++PNG_IMPEXP void		png_set_sRGB(png_structp png_ptr, png_infop info_ptr,
++				int srgb_intent);
+ /* 157 */
+-PNG_IMPEXP png_uint_32	png_get_sPLT(png_structp png_ptr, png_infop info_ptr,
+-				png_sPLT_tpp entries);
++PNG_IMPEXP void		png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr,
++				png_infop info_ptr, int srgb_intent);
+ /* 158 */
+-PNG_IMPEXP void		png_set_sPLT(png_structp png_ptr, png_infop info_ptr,
+-				png_sPLT_tp entries, int nentries);
++PNG_IMPEXP png_uint_32	png_get_iCCP(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_charpp name,
++				int *compression_type, png_bytepp profile,
++				png_uint_32 *proflen);
+ /* 159 */
+-PNG_IMPEXP png_uint_32	png_get_text(png_structp png_ptr, png_infop info_ptr,
+-				png_textp *text_ptr, int *num_text);
++PNG_IMPEXP void		png_set_iCCP(png_structp png_ptr, png_infop info_ptr,
++				png_const_charp name, int compression_type,
++				png_const_bytep profile, png_uint_32 proflen);
+ /* 160 */
+-PNG_IMPEXP void		png_set_text(png_structp png_ptr, png_infop info_ptr,
+-				png_textp text_ptr, int num_text);
++PNG_IMPEXP png_uint_32	png_get_sPLT(png_const_structp png_ptr,
++				png_const_infop info_ptr,
++				png_sPLT_tpp entries);
+ /* 161 */
+-PNG_IMPEXP png_uint_32	png_get_tIME(png_structp png_ptr, png_infop info_ptr,
+-				png_timep *mod_time);
++PNG_IMPEXP void		png_set_sPLT(png_structp png_ptr, png_infop info_ptr,
++				png_const_sPLT_tp entries, int nentries);
+ /* 162 */
+-PNG_IMPEXP void		png_set_tIME(png_structp png_ptr, png_infop info_ptr,
+-				png_timep mod_time);
++PNG_IMPEXP png_uint_32	png_get_text(png_const_structp png_ptr,
++				png_const_infop info_ptr,
++				png_textp *text_ptr, int *num_text);
+ /* 163 */
+-PNG_IMPEXP png_uint_32	png_get_tRNS(png_structp png_ptr, png_infop info_ptr,
+-				png_bytep *trans, int *num_trans,
+-				png_color_16p *trans_values);
++PNG_IMPEXP void		png_set_text(png_structp png_ptr, png_infop info_ptr,
++				png_const_textp text_ptr, int num_text);
+ /* 164 */
+-PNG_IMPEXP void		png_set_tRNS(png_structp png_ptr, png_infop info_ptr,
+-				png_bytep trans, int num_trans,
+-				png_color_16p trans_values);
++PNG_IMPEXP png_uint_32	png_get_tIME(png_const_structp png_ptr,
++				png_infop info_ptr, png_timep *mod_time);
+ /* 165 */
+-PNG_IMPEXP png_uint_32	png_get_sCAL(png_structp png_ptr, png_infop info_ptr,
+-				int *unit, double *width, double *height);
++PNG_IMPEXP void		png_set_tIME(png_structp png_ptr, png_infop info_ptr,
++				png_const_timep mod_time);
+ /* 166 */
+-PNG_IMPEXP png_uint_32	png_get_sCAL_s(png_structp png_ptr,
+-				png_infop info_ptr, int *unit,
+-				png_charpp swidth, png_charpp sheight);
++PNG_IMPEXP png_uint_32	png_get_tRNS(png_const_structp png_ptr,
++				png_infop info_ptr, png_bytep *trans,
++				int *num_trans, png_color_16p *trans_color);
+ /* 167 */
++PNG_IMPEXP void		png_set_tRNS(png_structp png_ptr, png_infop info_ptr,
++				png_const_bytep trans, int num_trans,
++				png_const_color_16p trans_color);
++/* 168 */
++PNG_IMPEXP png_uint_32	png_get_sCAL(png_const_structp png_ptr,
++				png_const_infop info_ptr, int *unit,
++				double *width, double *height);
++/* 169 */
++PNG_IMPEXP png_uint_32	png_get_sCAL_s(png_const_structp png_ptr,
++				png_const_infop info_ptr, int *unit,
++				png_charpp swidth, png_charpp sheight);
++/* 170 */
+ PNG_IMPEXP void		png_set_sCAL(png_structp png_ptr, png_infop info_ptr,
+ 				int unit, double width, double height);
+-/* 168 */
++/* 171 */
+ PNG_IMPEXP void		png_set_sCAL_s(png_structp png_ptr,
+ 				png_infop info_ptr, int unit,
+-				png_charp swidth, png_charp sheight);
+-/* 169 */
++				png_const_charp swidth,
++				png_const_charp sheight);
++/* 172 */
+ PNG_IMPEXP void		png_set_keep_unknown_chunks(png_structp png_ptr,
+-				int keep, png_bytep chunk_list,
++				int keep, png_const_bytep chunk_list,
+ 				int num_chunks);
+-/* 170 */
++/* 173 */
++PNG_IMPEXP int		png_handle_as_unknown(png_structp png_ptr,
++				png_const_bytep chunk_name);
++/* 174 */
+ PNG_IMPEXP void		png_set_unknown_chunks(png_structp png_ptr,
+ 				png_infop info_ptr,
+-				png_unknown_chunkp unknowns,
++				png_const_unknown_chunkp unknowns,
+ 				int num_unknowns);
+-/* 171 */
++/* 175 */
+ PNG_IMPEXP void		png_set_unknown_chunk_location(png_structp png_ptr,
+ 				png_infop info_ptr, int chunk, int location);
+-/* 172 */
+-PNG_IMPEXP png_uint_32	png_get_unknown_chunks(png_structp png_ptr,
+-				png_infop info_ptr,
++/* 176 */
++PNG_IMPEXP int		png_get_unknown_chunks(png_const_structp png_ptr,
++				png_const_infop info_ptr,
+ 				png_unknown_chunkpp entries);
+-/* 173 */
++/* 177 */
+ PNG_IMPEXP void		png_set_invalid(png_structp png_ptr,
+ 				png_infop info_ptr, int mask);
+-/* 174 */
++/* 178 */
+ PNG_IMPEXP void		png_read_png(png_structp png_ptr, png_infop info_ptr,
+-				int transforms, voidp params);
+-/* 175 */
++				int transforms, png_voidp params);
++/* 179 */
+ PNG_IMPEXP void		png_write_png(png_structp png_ptr,
+ 				png_infop info_ptr, int transforms,
+-				voidp params);
+-/* 176 */
+-PNG_IMPEXP png_bytep	png_sig_bytes(void);
+-/* 177 */
+-PNG_IMPEXP png_charp	png_get_copyright(png_structp png_ptr);
+-/* 178 */
+-PNG_IMPEXP png_charp	png_get_header_ver(png_structp png_ptr);
+-/* 179 */
+-PNG_IMPEXP png_charp	png_get_header_version(png_structp png_ptr);
++				png_voidp params);
+ /* 180 */
+-PNG_IMPEXP png_charp	png_get_libpng_ver(png_structp png_ptr);
+-/* Slot 181 is reserved */
+-/* Slot 182 is reserved */
+-/* Slot 183 is reserved */
++PNG_IMPEXP png_const_charp png_get_copyright(png_const_structp png_ptr);
++/* 181 */
++PNG_IMPEXP png_const_charp png_get_header_ver(png_const_structp png_ptr);
++/* 182 */
++PNG_IMPEXP png_const_charp png_get_header_version(png_const_structp png_ptr);
++/* 183 */
++PNG_IMPEXP png_const_charp png_get_libpng_ver(png_const_structp png_ptr);
+ /* 184 */
+-PNG_IMPEXP void		png_read_init(png_structp png_ptr);
++PNG_IMPEXP png_uint_32	png_permit_mng_features(png_structp png_ptr,
++				png_uint_32 mng_features_permitted);
+ /* 185 */
+-PNG_IMPEXP void		png_read_init_2(png_structp png_ptr,
+-				png_const_charp user_png_ver,
+-				png_size_t png_struct_size,
+-				png_size_t png_info_size);
+-/* Slot 186 is reserved */
+-/* Slot 187 is reserved */
++PNG_IMPEXP void		png_set_strip_error_numbers(png_structp png_ptr,
++				png_uint_32 strip_mode);
++/* 186 */
++PNG_IMPEXP void		png_set_user_limits(png_structp png_ptr,
++				png_uint_32 user_width_max,
++				png_uint_32 user_height_max);
++/* 187 */
++PNG_IMPEXP png_uint_32	png_get_user_width_max(png_const_structp png_ptr);
+ /* 188 */
+-PNG_IMPEXP png_voidp	png_create_struct(int type);
++PNG_IMPEXP png_uint_32	png_get_user_height_max(png_const_structp png_ptr);
+ /* 189 */
+-PNG_IMPEXP void		png_destroy_struct(png_voidp struct_ptr);
++PNG_IMPEXP void		png_set_chunk_cache_max(png_structp png_ptr,
++				png_uint_32 user_chunk_cache_max);
+ /* 190 */
+-PNG_IMPEXP png_voidp	png_create_struct_2(int type,
+-				png_malloc_ptr malloc_fn);
++PNG_IMPEXP png_uint_32	png_get_chunk_cache_max(png_const_structp png_ptr);
+ /* 191 */
+-PNG_IMPEXP void		png_destroy_struct_2(png_voidp struct_ptr,
+-				png_free_ptr free_fn);
++PNG_IMPEXP void		png_set_chunk_malloc_max(png_structp png_ptr,
++				png_alloc_size_t user_chunk_cache_max);
+ /* 192 */
+-PNG_IMPEXP void		png_info_destroy(png_structp png_ptr,
+-				png_infop info_ptr);
++PNG_IMPEXP png_alloc_size_t png_get_chunk_malloc_max(
++				png_const_structp png_ptr);
+ /* 193 */
+-PNG_IMPEXP voidpf	png_zalloc(voidpf png_ptr, uInt items, uInt size);
++PNG_IMPEXP png_uint_32	png_get_pixels_per_inch(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 194 */
+-PNG_IMPEXP void		png_zfree(voidpf png_ptr, voidpf ptr);
++PNG_IMPEXP png_uint_32	png_get_x_pixels_per_inch(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 195 */
+-PNG_IMPEXP void		png_reset_crc(png_structp png_ptr);
++PNG_IMPEXP png_uint_32	png_get_y_pixels_per_inch(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 196 */
+-PNG_IMPEXP void		png_write_data(png_structp png_ptr, png_bytep data,
+-				png_size_t length);
++PNG_IMPEXP float	png_get_x_offset_inches(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 197 */
+-PNG_IMPEXP void		png_read_data(png_structp png_ptr, png_bytep data,
+-				png_size_t length);
++PNG_IMPEXP float	png_get_y_offset_inches(png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 198 */
+-PNG_IMPEXP void		png_crc_read(png_structp png_ptr, png_bytep buf,
+-				png_size_t length);
++PNG_IMPEXP png_uint_32	png_get_pHYs_dpi(png_const_structp png_ptr,
++				png_const_infop info_ptr, png_uint_32 *res_x,
++				png_uint_32 *res_y, int *unit_type);
+ /* 199 */
+-PNG_IMPEXP png_charp	png_decompress_chunk(png_structp png_ptr,
+-				int comp_type, png_charp chunkdata,
+-				png_size_t chunklength,
+-				png_size_t prefix_length,
+-				png_size_t *data_length);
++PNG_IMPEXP png_uint_32	png_get_io_state(png_structp png_ptr);
+ /* 200 */
+-PNG_IMPEXP int		png_crc_finish(png_structp png_ptr, png_uint_32 skip);
++PNG_IMPEXP png_const_bytep png_get_io_chunk_name(png_structp png_ptr);
+ /* 201 */
+-PNG_IMPEXP int		png_crc_error(png_structp png_ptr);
++PNG_IMPEXP png_uint_32	png_get_uint_32(png_const_bytep buf);
+ /* 202 */
+-PNG_IMPEXP void		png_calculate_crc(png_structp png_ptr, png_bytep ptr,
+-				png_size_t length);
++PNG_IMPEXP png_uint_16	png_get_uint_16(png_const_bytep buf);
+ /* 203 */
+-PNG_IMPEXP void		png_flush(png_structp png_ptr);
++PNG_IMPEXP png_int_32	png_get_int_32(png_const_bytep buf);
+ /* 204 */
+-PNG_IMPEXP void		png_save_uint_32(png_bytep buf, png_uint_32 i);
++PNG_IMPEXP png_uint_32	png_get_uint_31(png_structp png_ptr,
++				png_const_bytep buf);
+ /* 205 */
+-PNG_IMPEXP void		png_save_int_32(png_bytep buf, png_int_32 i);
++PNG_IMPEXP void		png_save_uint_32(png_bytep buf, png_uint_32 i);
+ /* 206 */
+-PNG_IMPEXP void		png_save_uint_16(png_bytep buf, unsigned int i);
++PNG_IMPEXP void		png_save_int_32(png_bytep buf, png_int_32 i);
+ /* 207 */
+-PNG_IMPEXP void		png_write_sig(png_structp png_ptr);
++PNG_IMPEXP void		png_save_uint_16(png_bytep buf, unsigned int i);
+ /* 208 */
+-PNG_IMPEXP void		png_write_IHDR(png_structp png_ptr,
+-				png_uint_32 width, png_uint_32 height,
+-				int bit_depth, int color_type,
+-				int compression_type, int filter_type,
+-				int interlace_type);
++PNG_IMPEXP void		png_set_gamma_fixed(png_structp png_ptr,
++				png_fixed_point screen_gamma,
++				png_fixed_point override_file_gamma);
+ /* 209 */
+-PNG_IMPEXP void		png_write_PLTE(png_structp png_ptr,
+-				png_colorp palette, png_uint_32 num_pal);
++PNG_IMPEXP void		png_set_filter_heuristics_fixed(png_structp png_ptr,
++				int heuristic_method, int num_weights,
++				png_const_fixed_point_p filter_weights,
++				png_const_fixed_point_p filter_costs);
+ /* 210 */
+-PNG_IMPEXP void		png_write_IDAT(png_structp png_ptr, png_bytep data,
+-				png_size_t length);
++PNG_IMPEXP png_fixed_point png_get_pixel_aspect_ratio_fixed(
++				png_const_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 211 */
+-PNG_IMPEXP void		png_write_IEND(png_structp png_ptr);
++PNG_IMPEXP png_fixed_point png_get_x_offset_inches_fixed(png_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 212 */
+-PNG_IMPEXP void		png_write_gAMA(png_structp png_ptr,
+-				double file_gamma);
++PNG_IMPEXP png_fixed_point png_get_y_offset_inches_fixed(png_structp png_ptr,
++				png_const_infop info_ptr);
+ /* 213 */
+-PNG_IMPEXP void		png_write_gAMA_fixed(png_structp png_ptr,
+-				png_fixed_point file_gamma);
++PNG_IMPEXP void		png_set_sCAL_fixed(png_structp png_ptr,
++				png_infop info_ptr, int unit,
++				png_fixed_point width,
++				png_fixed_point height);
+ /* 214 */
+-PNG_IMPEXP void		png_write_sBIT(png_structp png_ptr,
+-				png_color_8p sbit, int color_type);
++PNG_IMPEXP png_uint_32	png_get_sCAL_fixed(png_structp png_ptr,
++				png_const_infop info_ptr, int *unit,
++				png_fixed_point *width,
++				png_fixed_point *height);
+ /* 215 */
+-PNG_IMPEXP void		png_write_cHRM(png_structp png_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);
++PNG_IMPEXP void		png_set_background_fixed(png_structp png_ptr,
++				png_const_color_16p background_color,
++				int background_gamma_code, int need_expand,
++				png_fixed_point background_gamma);
+ /* 216 */
+-PNG_IMPEXP void		png_write_cHRM_fixed(png_structp png_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);
++PNG_IMPEXP png_uint_32	png_get_io_chunk_type(png_const_structp png_ptr);
+ /* 217 */
+-PNG_IMPEXP void		png_write_sRGB(png_structp png_ptr, int intent);
++PNG_IMPEXP png_uint_32	png_get_current_row_number(png_const_structp png_ptr);
+ /* 218 */
+-PNG_IMPEXP void		png_write_iCCP(png_structp png_ptr, png_charp name,
+-				int compression_type, png_charp profile,
+-				int proflen);
++PNG_IMPEXP png_byte	png_get_current_pass_number(
++				png_const_structp png_ptr);
+ /* 219 */
+-PNG_IMPEXP void		png_write_sPLT(png_structp png_ptr,
+-				png_sPLT_tp palette);
++PNG_IMPEXP png_size_t	png_process_data_pause(png_structp png_ptr, int save);
+ /* 220 */
+-PNG_IMPEXP void		png_write_tRNS(png_structp png_ptr, png_bytep trans,
+-				png_color_16p values, int number,
+-				int color_type);
++PNG_IMPEXP png_uint_32	png_process_data_skip(png_structp png_ptr);
+ /* 221 */
+-PNG_IMPEXP void		png_write_bKGD(png_structp png_ptr,
+-				png_color_16p values, int color_type);
++PNG_IMPEXP void		png_set_expand_16(png_structp png_ptr);
+ /* 222 */
+-PNG_IMPEXP void		png_write_hIST(png_structp png_ptr,
+-				png_uint_16p hist, int num_hist);
++PNG_IMPEXP void		png_set_text_compression_level(png_structp png_ptr,
++				int level);
+ /* 223 */
+-PNG_IMPEXP png_size_t	png_check_keyword(png_structp png_ptr, png_charp key,
+-				png_charpp new_key);
++PNG_IMPEXP void		png_set_text_compression_mem_level(
++				png_structp png_ptr, int mem_level);
+ /* 224 */
+-PNG_IMPEXP void		png_write_tEXt(png_structp png_ptr, png_charp key,
+-				png_charp text, png_size_t text_len);
++PNG_IMPEXP void		png_set_text_compression_strategy(
++				png_structp png_ptr, int strategy);
+ /* 225 */
+-PNG_IMPEXP void		png_write_zTXt(png_structp png_ptr, png_charp key,
+-				png_size_t text_len, int compression);
++PNG_IMPEXP void		png_set_text_compression_window_bits(
++				png_structp png_ptr, int window_bits);
+ /* 226 */
+-PNG_IMPEXP void		png_write_iTXt(png_structp png_ptr, int compression,
+-				png_charp key, png_charp lang,
+-				png_charp lang_key, png_charp text);
++PNG_IMPEXP void		png_set_text_compression_method(png_structp pnt_ptr,
++				int method);
+ /* 227 */
+-PNG_IMPEXP void		png_write_oFFs(png_structp png_ptr,
+-				png_uint_32 x_offset, png_uint_32 y_offset,
+-				int unit_type);
++PNG_IMPEXP void		png_set_alpha_mode(png_structp png_ptr, int mode,
++				double output_gamma);
+ /* 228 */
+-PNG_IMPEXP void		png_write_pCAL(png_structp png_ptr,
+-				png_charp purpose, png_int_32 X0,
+-				png_int_32 X1, int type, int nparams,
+-				png_charp units, png_charpp params);
++PNG_IMPEXP void		png_set_alpha_mode_fixed(png_structp png_ptr,
++				int mode, png_fixed_point output_gamma);
+ /* 229 */
+-PNG_IMPEXP void		png_write_pHYs(png_structp png_ptr,
+-				png_uint_32 x_pixels_per_unit,
+-				png_uint_32 y_pixels_per_unit, int unit_type);
++PNG_IMPEXP void		png_set_scale_16(png_structp png_ptr);
+ /* 230 */
+-PNG_IMPEXP void		png_write_tIME(png_structp png_ptr,
+-				png_timep mod_time);
++PNG_IMPEXP png_uint_32	png_get_cHRM_XYZ(png_structp png_ptr,
++				png_const_infop info_ptr, double *red_X,
++				double *red_Y, double *red_Z,
++				double *green_X, double *green_Y,
++				double *green_Z, double *blue_X,
++				double *blue_Y, double *blue_Z);
+ /* 231 */
+-PNG_IMPEXP void		png_write_sCAL(png_structp png_ptr, int unit,
+-				double width, double height);
++PNG_IMPEXP png_uint_32	png_get_cHRM_XYZ_fixed(png_structp png_ptr,
++				png_const_infop info_ptr,
++				png_fixed_point *int_red_X,
++				png_fixed_point *int_red_Y,
++				png_fixed_point *int_red_Z,
++				png_fixed_point *int_green_X,
++				png_fixed_point *int_green_Y,
++				png_fixed_point *int_green_Z,
++				png_fixed_point *int_blue_X,
++				png_fixed_point *int_blue_Y,
++				png_fixed_point *int_blue_Z);
+ /* 232 */
+-PNG_IMPEXP void		png_write_sCAL_s(png_structp png_ptr, int unit,
+-				png_charp width, png_charp height);
++PNG_IMPEXP void		png_set_cHRM_XYZ(png_structp png_ptr,
++				png_infop info_ptr, double red_X,
++				double red_Y, double red_Z, double green_X,
++				double green_Y, double green_Z,
++				double blue_X, double blue_Y, double blue_Z);
+ /* 233 */
+-PNG_IMPEXP void		png_write_finish_row(png_structp png_ptr);
+-/* 234 */
+-PNG_IMPEXP void		png_write_start_row(png_structp png_ptr);
+-/* 235 */
+-PNG_IMPEXP void		png_build_gamma_table(png_structp png_ptr);
+-/* 236 */
+-PNG_IMPEXP void		png_combine_row(png_structp png_ptr, png_bytep row,
+-				int mask);
+-/* 237 */
+-PNG_IMPEXP void		png_do_read_interlace(png_row_infop row_info,
+-				png_bytep row, int pass,
+-				png_uint_32 transformations);
+-/* 238 */
+-PNG_IMPEXP void		png_do_write_interlace(png_row_infop row_info,
+-				png_bytep row, png_bytep prev_row,
+-				int filter);
+-/* 239 */
+-PNG_IMPEXP void		png_read_filter_row(png_structp png_ptr,
+-				png_row_infop row_info, png_bytep row,
+-				png_bytep prev_row, int filter);
+-/* 240 */
+-PNG_IMPEXP void		png_write_find_filter(png_structp png_ptr,
+-				png_row_infop row_info);
+-/* 241 */
+-PNG_IMPEXP void		png_write_filtered_row(png_structp png_ptr,
+-				png_bytep filtered_row);
+-/* 242 */
+-PNG_IMPEXP void		png_read_finish_row(png_structp png_ptr);
+-/* 243 */
+-PNG_IMPEXP void		png_read_start_row(png_structp png_ptr);
+-/* 244 */
+-PNG_IMPEXP void		png_read_transform_info(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 245 */
+-PNG_IMPEXP void		png_do_read_filler(png_row_infop row_info,
+-				png_bytep row, png_uint_32 filler,
+-				png_uint_32 flags);
+-/* 246 */
+-PNG_IMPEXP void		png_do_read_swap_alpha(png_row_infop row_info,
+-				png_bytep row);
+-/* 247 */
+-PNG_IMPEXP void		png_do_write_swap_alpha(png_row_infop row_info,
+-				png_bytep row);
+-/* 248 */
+-PNG_IMPEXP void		png_do_read_invert_alpha(png_row_infop row_info,
+-				png_bytep row);
+-/* 249 */
+-PNG_IMPEXP void		png_do_write_invert_alpha(png_row_infop row_info,
+-				png_bytep row);
+-/* 250 */
+-PNG_IMPEXP void		png_do_strip_filler(png_row_infop row_info,
+-				png_bytep row, png_uint_32 flags);
+-/* 251 */
+-PNG_IMPEXP void		png_do_swap(png_row_infop row_info, png_bytep row);
+-/* 252 */
+-PNG_IMPEXP void		png_do_packswap(png_row_infop row_info,
+-				png_bytep row);
+-/* 253 */
+-PNG_IMPEXP int		png_do_rgb_to_gray(png_structp png_ptr,
+-				png_row_infop row_info, png_bytep row);
+-/* 254 */
+-PNG_IMPEXP void		png_do_gray_to_rgb(png_row_infop row_info,
+-				png_bytep row);
+-/* 255 */
+-PNG_IMPEXP void		png_do_unpack(png_row_infop row_info, png_bytep row);
+-/* 256 */
+-PNG_IMPEXP void		png_do_unshift(png_row_infop row_info, png_bytep row,
+-				png_color_8p sig_bits);
+-/* 257 */
+-PNG_IMPEXP void		png_do_invert(png_row_infop row_info, png_bytep row);
+-/* 258 */
+-PNG_IMPEXP void		png_do_chop(png_row_infop row_info, png_bytep row);
+-/* 259 */
+-PNG_IMPEXP void		png_do_dither(png_row_infop row_info, png_bytep row,
+-				png_bytep palette_lookup,
+-				png_bytep dither_lookup);
+-/* 260 */
+-PNG_IMPEXP void		png_correct_palette(png_structp png_ptr,
+-				png_colorp palette, int num_palette);
+-/* 261 */
+-PNG_IMPEXP void		png_do_bgr(png_row_infop row_info, png_bytep row);
+-/* 262 */
+-PNG_IMPEXP void		png_do_pack(png_row_infop row_info, png_bytep row,
+-				png_uint_32 bit_depth);
+-/* 263 */
+-PNG_IMPEXP void		png_do_shift(png_row_infop row_info, png_bytep row,
+-				png_color_8p bit_depth);
+-/* 264 */
+-PNG_IMPEXP void		png_do_background(png_row_infop row_info,
+-				png_bytep row, png_color_16p trans_values,
+-				png_color_16p background,
+-				png_color_16p background_1,
+-				png_bytep gamma_table,
+-				png_bytep gamma_from_1, png_bytep gamma_to_1,
+-				png_uint_16pp gamma_16,
+-				png_uint_16pp gamma_16_from_1,
+-				png_uint_16pp gamma_16_to_1, int gamma_shift);
+-/* 265 */
+-PNG_IMPEXP void		png_do_gamma(png_row_infop row_info, png_bytep row,
+-				png_bytep gamma_table,
+-				png_uint_16pp gamma_16_table,
+-				int gamma_shift);
+-/* 266 */
+-PNG_IMPEXP void		png_do_expand_palette(png_row_infop row_info,
+-				png_bytep row, png_colorp palette,
+-				png_bytep trans, int num_trans);
+-/* 267 */
+-PNG_IMPEXP void		png_do_expand(png_row_infop row_info, png_bytep row,
+-				png_color_16p trans_value);
+-/* 268 */
+-PNG_IMPEXP void		png_handle_IHDR(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 269 */
+-PNG_IMPEXP void		png_handle_PLTE(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 270 */
+-PNG_IMPEXP void		png_handle_IEND(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 271 */
+-PNG_IMPEXP void		png_handle_bKGD(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 272 */
+-PNG_IMPEXP void		png_handle_cHRM(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 273 */
+-PNG_IMPEXP void		png_handle_gAMA(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 274 */
+-PNG_IMPEXP void		png_handle_hIST(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 275 */
+-PNG_IMPEXP void		png_handle_iCCP(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 276 */
+-PNG_IMPEXP void		png_handle_iTXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 277 */
+-PNG_IMPEXP void		png_handle_oFFs(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 278 */
+-PNG_IMPEXP void		png_handle_pCAL(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 279 */
+-PNG_IMPEXP void		png_handle_pHYs(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 280 */
+-PNG_IMPEXP void		png_handle_sBIT(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 281 */
+-PNG_IMPEXP void		png_handle_sCAL(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 282 */
+-PNG_IMPEXP void		png_handle_sPLT(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 283 */
+-PNG_IMPEXP void		png_handle_sRGB(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 284 */
+-PNG_IMPEXP void		png_handle_tEXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 285 */
+-PNG_IMPEXP void		png_handle_tIME(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 286 */
+-PNG_IMPEXP void		png_handle_tRNS(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 287 */
+-PNG_IMPEXP void		png_handle_zTXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 288 */
+-PNG_IMPEXP int		png_handle_as_unknown(png_structp png_ptr,
+-				png_bytep chunk_name);
+-/* 289 */
+-PNG_IMPEXP void		png_handle_unknown(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 290 */
+-PNG_IMPEXP void		png_check_chunk_name(png_structp png_ptr,
+-				png_bytep chunk_name);
+-/* 291 */
+-PNG_IMPEXP void		png_do_read_transformations(png_structp png_ptr);
+-/* 292 */
+-PNG_IMPEXP void		png_do_write_transformations(png_structp png_ptr);
+-/* 293 */
+-PNG_IMPEXP void		png_init_read_transformations(png_structp png_ptr);
+-/* 294 */
+-PNG_IMPEXP void		png_push_read_chunk(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 295 */
+-PNG_IMPEXP void		png_push_read_sig(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 296 */
+-PNG_IMPEXP void		png_push_check_crc(png_structp png_ptr);
+-/* 297 */
+-PNG_IMPEXP void		png_push_crc_skip(png_structp png_ptr,
+-				png_uint_32 length);
+-/* 298 */
+-PNG_IMPEXP void		png_push_crc_finish(png_structp png_ptr);
+-/* 299 */
+-PNG_IMPEXP void		png_push_fill_buffer(png_structp png_ptr,
+-				png_bytep buffer, png_size_t length);
+-/* 300 */
+-PNG_IMPEXP void		png_push_save_buffer(png_structp png_ptr);
+-/* 301 */
+-PNG_IMPEXP void		png_push_restore_buffer(png_structp png_ptr,
+-				png_bytep buffer, png_size_t buffer_length);
+-/* 302 */
+-PNG_IMPEXP void		png_push_read_IDAT(png_structp png_ptr);
+-/* 303 */
+-PNG_IMPEXP void		png_process_IDAT_data(png_structp png_ptr,
+-				png_bytep buffer, png_size_t buffer_length);
+-/* 304 */
+-PNG_IMPEXP void		png_push_process_row(png_structp png_ptr);
+-/* 305 */
+-PNG_IMPEXP void		png_push_handle_unknown(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 306 */
+-PNG_IMPEXP void		png_push_have_info(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 307 */
+-PNG_IMPEXP void		png_push_have_end(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 308 */
+-PNG_IMPEXP void		png_push_have_row(png_structp png_ptr, png_bytep row);
+-/* 309 */
+-PNG_IMPEXP void		png_push_read_end(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 310 */
+-PNG_IMPEXP void		png_process_some_data(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 311 */
+-PNG_IMPEXP void		png_read_push_finish_row(png_structp png_ptr);
+-/* 312 */
+-PNG_IMPEXP void		png_push_handle_tEXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 313 */
+-PNG_IMPEXP void		png_push_read_tEXt(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 314 */
+-PNG_IMPEXP void		png_push_handle_zTXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 315 */
+-PNG_IMPEXP void		png_push_read_zTXt(png_structp png_ptr,
+-				png_infop info_ptr);
+-/* 316 */
+-PNG_IMPEXP void		png_push_handle_iTXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 317 */
+-PNG_IMPEXP void		png_push_read_iTXt(png_structp png_ptr,
+-				png_infop info_ptr, png_uint_32 length);
+-/* 318 */
+-PNG_IMPEXP void		png_info_init_3(png_infopp info_ptr,
+-				png_size_t png_info_struct_size);
++PNG_IMPEXP void		png_set_cHRM_XYZ_fixed(png_structp png_ptr,
++				png_infop info_ptr,
++				png_fixed_point int_red_X,
++				png_fixed_point int_red_Y,
++				png_fixed_point int_red_Z,
++				png_fixed_point int_green_X,
++				png_fixed_point int_green_Y,
++				png_fixed_point int_green_Z,
++				png_fixed_point int_blue_X,
++				png_fixed_point int_blue_Y,
++				png_fixed_point int_blue_Z);
+ 
+ typedef struct PngtclStubs {
+     int magic;
+     const struct PngtclStubHooks *hooks;
+ 
+-    png_uint_32 (*png_access_version_numberPtr) (void); /* 0 */
+-    void (*png_set_sig_bytesPtr) (png_structp png_ptr, int num_bytes); /* 1 */
+-    int (*png_sig_cmpPtr) (png_bytep sig, png_size_t start, png_size_t num_to_check); /* 2 */
+-    void (*reserved3)(void);
++    void (*reserved0)(void);
++    png_uint_32 (*png_access_version_numberPtr) (void); /* 1 */
++    void (*png_set_sig_bytesPtr) (png_structp png_ptr, int num_bytes); /* 2 */
++    int (*png_sig_cmpPtr) (png_const_bytep sig, png_size_t start, png_size_t num_to_check); /* 3 */
+     png_structp (*png_create_read_structPtr) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); /* 4 */
+     png_structp (*png_create_write_structPtr) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); /* 5 */
+-    png_size_t (*png_get_compression_buffer_sizePtr) (png_structp png_ptr); /* 6 */
++    png_size_t (*png_get_compression_buffer_sizePtr) (png_const_structp png_ptr); /* 6 */
+     void (*png_set_compression_buffer_sizePtr) (png_structp png_ptr, png_size_t size); /* 7 */
+-    int (*png_reset_zstreamPtr) (png_structp png_ptr); /* 8 */
+-    png_structp (*png_create_read_struct_2Ptr) (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); /* 9 */
+-    png_structp (*png_create_write_struct_2Ptr) (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); /* 10 */
+-    void (*png_write_chunkPtr) (png_structp png_ptr, png_bytep chunk_name, png_bytep data, png_size_t length); /* 11 */
+-    void (*png_write_chunk_startPtr) (png_structp png_ptr, png_bytep chunk_name, png_uint_32 length); /* 12 */
+-    void (*png_write_chunk_dataPtr) (png_structp png_ptr, png_bytep data, png_size_t length); /* 13 */
+-    void (*png_write_chunk_endPtr) (png_structp png_ptr); /* 14 */
+-    png_infop (*png_create_info_structPtr) (png_structp png_ptr); /* 15 */
+-    void (*reserved16)(void);
+-    void (*png_write_info_before_PLTEPtr) (png_structp png_ptr, png_infop info_ptr); /* 17 */
+-    void (*png_write_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 18 */
+-    void (*png_read_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 19 */
+-    png_charp (*png_convert_to_rfc1123Ptr) (png_structp png_ptr, png_timep ptime); /* 20 */
+-    void (*png_convert_from_struct_tmPtr) (png_timep ptime, struct tm FAR *ttime); /* 21 */
+-    void (*png_convert_from_time_tPtr) (png_timep ptime, time_t ttime); /* 22 */
+-    void (*png_set_expandPtr) (png_structp png_ptr); /* 23 */
+-    void (*reserved24)(void);
+-    void (*png_set_palette_to_rgbPtr) (png_structp png_ptr); /* 25 */
+-    void (*png_set_tRNS_to_alphaPtr) (png_structp png_ptr); /* 26 */
+-    void (*png_set_bgrPtr) (png_structp png_ptr); /* 27 */
+-    void (*png_set_gray_to_rgbPtr) (png_structp png_ptr); /* 28 */
+-    void (*png_set_rgb_to_grayPtr) (png_structp png_ptr, int error_action, double red, double green); /* 29 */
+-    void (*png_set_rgb_to_gray_fixedPtr) (png_structp png_ptr, int error_action, png_fixed_point red, png_fixed_point green); /* 30 */
+-    png_byte (*png_get_rgb_to_gray_statusPtr) (png_structp png_ptr); /* 31 */
+-    void (*png_build_grayscale_palettePtr) (int bit_depth, png_colorp palette); /* 32 */
+-    void (*png_set_strip_alphaPtr) (png_structp png_ptr); /* 33 */
+-    void (*png_set_swap_alphaPtr) (png_structp png_ptr); /* 34 */
+-    void (*png_set_invert_alphaPtr) (png_structp png_ptr); /* 35 */
+-    void (*png_set_fillerPtr) (png_structp png_ptr, png_uint_32 filler, int flags); /* 36 */
+-    void (*png_set_swapPtr) (png_structp png_ptr); /* 37 */
+-    void (*png_set_packingPtr) (png_structp png_ptr); /* 38 */
+-    void (*png_set_packswapPtr) (png_structp png_ptr); /* 39 */
+-    void (*png_set_shiftPtr) (png_structp png_ptr, png_color_8p true_bits); /* 40 */
+-    int (*png_set_interlace_handlingPtr) (png_structp png_ptr); /* 41 */
+-    void (*png_set_invert_monoPtr) (png_structp png_ptr); /* 42 */
+-    void (*png_set_backgroundPtr) (png_structp png_ptr, png_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma); /* 43 */
+-    void (*png_set_strip_16Ptr) (png_structp png_ptr); /* 44 */
+-    /* void (*png_set_quantizePtr) (png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither); */
+-    void (*reserved45)(void);
+-    void (*png_set_gammaPtr) (png_structp png_ptr, double screen_gamma, double default_file_gamma); /* 46 */
+-    void (*png_permit_empty_pltePtr) (png_structp png_ptr, int empty_plte_permitted); /* 47 */
+-    void (*png_set_flushPtr) (png_structp png_ptr, int nrows); /* 48 */
+-    void (*png_write_flushPtr) (png_structp png_ptr); /* 49 */
+-    void (*png_start_read_imagePtr) (png_structp png_ptr); /* 50 */
+-    void (*png_read_update_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 51 */
+-    void (*png_read_rowsPtr) (png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows); /* 52 */
+-    void (*png_read_rowPtr) (png_structp png_ptr, png_bytep row, png_bytep display_row); /* 53 */
+-    void (*png_read_imagePtr) (png_structp png_ptr, png_bytepp image); /* 54 */
+-    void (*png_write_rowPtr) (png_structp png_ptr, png_bytep row); /* 55 */
+-    void (*png_write_rowsPtr) (png_structp png_ptr, png_bytepp row, png_uint_32 num_rows); /* 56 */
+-    void (*png_write_imagePtr) (png_structp png_ptr, png_bytepp image); /* 57 */
+-    void (*png_write_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 58 */
+-    void (*png_read_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 59 */
+-    void (*png_destroy_info_structPtr) (png_structp png_ptr, png_infopp info_ptr_ptr); /* 60 */
+-    void (*png_destroy_read_structPtr) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); /* 61 */
+-    void (*reserved62)(void);
+-    void (*png_destroy_write_structPtr) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr); /* 63 */
+-    void (*reserved64)(void);
+-    void (*reserved65)(void);
++    jmp_buf* (*png_set_longjmp_fnPtr) (png_structp png_ptr, png_longjmp_ptr longjmp_fn, size_t jmp_buf_size); /* 8 */
++    void (*png_longjmpPtr) (png_structp png_ptr, int val); /* 9 */
++    int (*png_reset_zstreamPtr) (png_structp png_ptr); /* 10 */
++    png_structp (*png_create_read_struct_2Ptr) (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); /* 11 */
++    png_structp (*png_create_write_struct_2Ptr) (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); /* 12 */
++    void (*png_write_sigPtr) (png_structp png_ptr); /* 13 */
++    void (*png_write_chunkPtr) (png_structp png_ptr, png_const_bytep chunk_name, png_const_bytep data, png_size_t length); /* 14 */
++    void (*png_write_chunk_startPtr) (png_structp png_ptr, png_const_bytep chunk_name, png_uint_32 length); /* 15 */
++    void (*png_write_chunk_dataPtr) (png_structp png_ptr, png_const_bytep data, png_size_t length); /* 16 */
++    void (*png_write_chunk_endPtr) (png_structp png_ptr); /* 17 */
++    png_infop (*png_create_info_structPtr) (png_structp png_ptr); /* 18 */
++    void (*png_info_init_3Ptr) (png_infopp info_ptr, png_size_t png_info_struct_size); /* 19 */
++    void (*png_write_info_before_PLTEPtr) (png_structp png_ptr, png_infop info_ptr); /* 20 */
++    void (*png_write_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 21 */
++    void (*png_read_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 22 */
++    png_const_charp (*png_convert_to_rfc1123Ptr) (png_structp png_ptr, png_const_timep ptime); /* 23 */
++    void (*png_convert_from_struct_tmPtr) (png_timep ptime, PNG_CONST struct tm FAR *ttime); /* 24 */
++    void (*png_convert_from_time_tPtr) (png_timep ptime, time_t ttime); /* 25 */
++    void (*png_set_expandPtr) (png_structp png_ptr); /* 26 */
++    void (*png_set_expand_gray_1_2_4_to_8Ptr) (png_structp png_ptr); /* 27 */
++    void (*png_set_palette_to_rgbPtr) (png_structp png_ptr); /* 28 */
++    void (*png_set_tRNS_to_alphaPtr) (png_structp png_ptr); /* 29 */
++    void (*png_set_bgrPtr) (png_structp png_ptr); /* 30 */
++    void (*png_set_gray_to_rgbPtr) (png_structp png_ptr); /* 31 */
++    void (*png_set_rgb_to_grayPtr) (png_structp png_ptr, int error_action, double red, double green); /* 32 */
++    void (*png_set_rgb_to_gray_fixedPtr) (png_structp png_ptr, int error_action, png_fixed_point red, png_fixed_point green); /* 33 */
++    png_byte (*png_get_rgb_to_gray_statusPtr) (png_const_structp png_ptr); /* 34 */
++    void (*png_build_grayscale_palettePtr) (int bit_depth, png_colorp palette); /* 35 */
++    void (*png_set_strip_alphaPtr) (png_structp png_ptr); /* 36 */
++    void (*png_set_swap_alphaPtr) (png_structp png_ptr); /* 37 */
++    void (*png_set_invert_alphaPtr) (png_structp png_ptr); /* 38 */
++    void (*png_set_fillerPtr) (png_structp png_ptr, png_uint_32 filler, int flags); /* 39 */
++    void (*png_set_add_alphaPtr) (png_structp png_ptr, png_uint_32 filler, int flags); /* 40 */
++    void (*png_set_swapPtr) (png_structp png_ptr); /* 41 */
++    void (*png_set_packingPtr) (png_structp png_ptr); /* 42 */
++    void (*png_set_packswapPtr) (png_structp png_ptr); /* 43 */
++    void (*png_set_shiftPtr) (png_structp png_ptr, png_const_color_8p true_bits); /* 44 */
++    int (*png_set_interlace_handlingPtr) (png_structp png_ptr); /* 45 */
++    void (*png_set_invert_monoPtr) (png_structp png_ptr); /* 46 */
++    void (*png_set_backgroundPtr) (png_structp png_ptr, png_const_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma); /* 47 */
++    void (*png_set_strip_16Ptr) (png_structp png_ptr); /* 48 */
++    void (*png_set_quantizePtr) (png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_const_uint_16p histogram, int full_quantize); /* 49 */
++    void (*png_set_gammaPtr) (png_structp png_ptr, double screen_gamma, double override_file_gamma); /* 50 */
++    void (*png_set_flushPtr) (png_structp png_ptr, int nrows); /* 51 */
++    void (*png_write_flushPtr) (png_structp png_ptr); /* 52 */
++    void (*png_start_read_imagePtr) (png_structp png_ptr); /* 53 */
++    void (*png_read_update_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 54 */
++    void (*png_read_rowsPtr) (png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows); /* 55 */
++    void (*png_read_rowPtr) (png_structp png_ptr, png_bytep row, png_bytep display_row); /* 56 */
++    void (*png_read_imagePtr) (png_structp png_ptr, png_bytepp image); /* 57 */
++    void (*png_write_rowPtr) (png_structp png_ptr, png_const_bytep row); /* 58 */
++    void (*png_write_rowsPtr) (png_structp png_ptr, png_bytepp row, png_uint_32 num_rows); /* 59 */
++    void (*png_write_imagePtr) (png_structp png_ptr, png_bytepp image); /* 60 */
++    void (*png_write_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 61 */
++    void (*png_read_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 62 */
++    void (*png_destroy_info_structPtr) (png_structp png_ptr, png_infopp info_ptr_ptr); /* 63 */
++    void (*png_destroy_read_structPtr) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); /* 64 */
++    void (*png_destroy_write_structPtr) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr); /* 65 */
+     void (*png_set_crc_actionPtr) (png_structp png_ptr, int crit_action, int ancil_action); /* 66 */
+     void (*png_set_filterPtr) (png_structp png_ptr, int method, int filters); /* 67 */
+-    void (*png_set_filter_heuristicsPtr) (png_structp png_ptr, int heuristic_method, int num_weights, png_doublep filter_weights, png_doublep filter_costs); /* 68 */
++    void (*png_set_filter_heuristicsPtr) (png_structp png_ptr, int heuristic_method, int num_weights, png_const_doublep filter_weights, png_const_doublep filter_costs); /* 68 */
+     void (*png_set_compression_levelPtr) (png_structp png_ptr, int level); /* 69 */
+     void (*png_set_compression_mem_levelPtr) (png_structp png_ptr, int mem_level); /* 70 */
+     void (*png_set_compression_strategyPtr) (png_structp png_ptr, int strategy); /* 71 */
+@@ -1091,249 +894,164 @@ typedef struct PngtclStubs {
+     void (*png_set_compression_methodPtr) (png_structp png_ptr, int method); /* 73 */
+     void (*png_init_ioPtr) (png_structp png_ptr, png_FILE_p fp); /* 74 */
+     void (*png_set_error_fnPtr) (png_structp png_ptr, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn); /* 75 */
+-    png_voidp (*png_get_error_ptrPtr) (png_structp png_ptr); /* 76 */
++    png_voidp (*png_get_error_ptrPtr) (png_const_structp png_ptr); /* 76 */
+     void (*png_set_write_fnPtr) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn); /* 77 */
+     void (*png_set_read_fnPtr) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn); /* 78 */
+     png_voidp (*png_get_io_ptrPtr) (png_structp png_ptr); /* 79 */
+     void (*png_set_read_status_fnPtr) (png_structp png_ptr, png_read_status_ptr read_row_fn); /* 80 */
+     void (*png_set_write_status_fnPtr) (png_structp png_ptr, png_write_status_ptr write_row_fn); /* 81 */
+     void (*png_set_mem_fnPtr) (png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn); /* 82 */
+-    png_voidp (*png_get_mem_ptrPtr) (png_structp png_ptr); /* 83 */
++    png_voidp (*png_get_mem_ptrPtr) (png_const_structp png_ptr); /* 83 */
+     void (*png_set_read_user_transform_fnPtr) (png_structp png_ptr, png_user_transform_ptr read_user_transform_fn); /* 84 */
+     void (*png_set_write_user_transform_fnPtr) (png_structp png_ptr, png_user_transform_ptr write_user_transform_fn); /* 85 */
+     void (*png_set_user_transform_infoPtr) (png_structp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels); /* 86 */
+-    png_voidp (*png_get_user_transform_ptrPtr) (png_structp png_ptr); /* 87 */
++    png_voidp (*png_get_user_transform_ptrPtr) (png_const_structp png_ptr); /* 87 */
+     void (*png_set_read_user_chunk_fnPtr) (png_structp png_ptr, png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn); /* 88 */
+-    png_voidp (*png_get_user_chunk_ptrPtr) (png_structp png_ptr); /* 89 */
++    png_voidp (*png_get_user_chunk_ptrPtr) (png_const_structp png_ptr); /* 89 */
+     void (*png_set_progressive_read_fnPtr) (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); /* 90 */
+-    png_voidp (*png_get_progressive_ptrPtr) (png_structp png_ptr); /* 91 */
++    png_voidp (*png_get_progressive_ptrPtr) (png_const_structp png_ptr); /* 91 */
+     void (*png_process_dataPtr) (png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size); /* 92 */
+-    void (*png_progressive_combine_rowPtr) (png_structp png_ptr, png_bytep old_row, png_bytep new_row); /* 93 */
+-    png_voidp (*png_mallocPtr) (png_structp png_ptr, png_uint_32 size); /* 94 */
+-    void (*png_freePtr) (png_structp png_ptr, png_voidp ptr); /* 95 */
+-    void (*png_free_dataPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num); /* 96 */
+-    void (*png_data_freerPtr) (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask); /* 97 */
+-    png_voidp (*png_malloc_defaultPtr) (png_structp png_ptr, png_uint_32 size); /* 98 */
+-    void (*png_free_defaultPtr) (png_structp png_ptr, png_voidp ptr); /* 99 */
+-    void (*reserved100)(void);
+-    void (*reserved101)(void);
+-    void * (*png_far_to_nearPtr) (png_structp png_ptr, png_voidp ptr, int check); /* 102 */
+-    void (*png_errorPtr) (png_structp png_ptr, png_const_charp error); /* 103 */
+-    void (*png_chunk_errorPtr) (png_structp png_ptr, png_const_charp error); /* 104 */
+-    void (*png_warningPtr) (png_structp png_ptr, png_const_charp message); /* 105 */
+-    void (*png_chunk_warningPtr) (png_structp png_ptr, png_const_charp message); /* 106 */
+-    png_uint_32 (*png_get_validPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 flag); /* 107 */
+-    png_size_t (*png_get_rowbytesPtr) (png_structp png_ptr, png_infop info_ptr); /* 108 */
+-    png_bytepp (*png_get_rowsPtr) (png_structp png_ptr, png_infop info_ptr); /* 109 */
+-    void (*png_set_rowsPtr) (png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers); /* 110 */
+-    png_byte (*png_get_channelsPtr) (png_structp png_ptr, png_infop info_ptr); /* 111 */
+-    png_uint_32 (*png_get_image_widthPtr) (png_structp png_ptr, png_infop info_ptr); /* 112 */
+-    png_uint_32 (*png_get_image_heightPtr) (png_structp png_ptr, png_infop info_ptr); /* 113 */
+-    png_byte (*png_get_bit_depthPtr) (png_structp png_ptr, png_infop info_ptr); /* 114 */
+-    png_byte (*png_get_color_typePtr) (png_structp png_ptr, png_infop info_ptr); /* 115 */
+-    png_byte (*png_get_filter_typePtr) (png_structp png_ptr, png_infop info_ptr); /* 116 */
+-    png_byte (*png_get_interlace_typePtr) (png_structp png_ptr, png_infop info_ptr); /* 117 */
+-    png_byte (*png_get_compression_typePtr) (png_structp png_ptr, png_infop info_ptr); /* 118 */
+-    png_uint_32 (*png_get_pixels_per_meterPtr) (png_structp png_ptr, png_infop info_ptr); /* 119 */
+-    png_uint_32 (*png_get_x_pixels_per_meterPtr) (png_structp png_ptr, png_infop info_ptr); /* 120 */
+-    png_uint_32 (*png_get_y_pixels_per_meterPtr) (png_structp png_ptr, png_infop info_ptr); /* 121 */
+-    float (*png_get_pixel_aspect_ratioPtr) (png_structp png_ptr, png_infop info_ptr); /* 122 */
+-    png_int_32 (*png_get_x_offset_pixelsPtr) (png_structp png_ptr, png_infop info_ptr); /* 123 */
+-    png_int_32 (*png_get_y_offset_pixelsPtr) (png_structp png_ptr, png_infop info_ptr); /* 124 */
+-    png_int_32 (*png_get_x_offset_micronsPtr) (png_structp png_ptr, png_infop info_ptr); /* 125 */
+-    png_int_32 (*png_get_y_offset_micronsPtr) (png_structp png_ptr, png_infop info_ptr); /* 126 */
+-    png_bytep (*png_get_signaturePtr) (png_structp png_ptr, png_infop info_ptr); /* 127 */
+-    png_uint_32 (*png_get_bKGDPtr) (png_structp png_ptr, png_infop info_ptr, png_color_16p *background); /* 128 */
+-    void (*png_set_bKGDPtr) (png_structp png_ptr, png_infop info_ptr, png_color_16p background); /* 129 */
+-    png_uint_32 (*png_get_cHRMPtr) (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); /* 130 */
+-    png_uint_32 (*png_get_cHRM_fixedPtr) (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); /* 131 */
+-    void (*png_set_cHRMPtr) (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); /* 132 */
+-    void (*png_set_cHRM_fixedPtr) (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); /* 133 */
+-    png_uint_32 (*png_get_gAMAPtr) (png_structp png_ptr, png_infop info_ptr, double *file_gamma); /* 134 */
+-    png_uint_32 (*png_get_gAMA_fixedPtr) (png_structp png_ptr, png_infop info_ptr, png_fixed_point *int_file_gamma); /* 135 */
+-    void (*png_set_gAMAPtr) (png_structp png_ptr, png_infop info_ptr, double file_gamma); /* 136 */
+-    void (*png_set_gAMA_fixedPtr) (png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma); /* 137 */
+-    png_uint_32 (*png_get_hISTPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist); /* 138 */
+-    void (*png_set_hISTPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_16p hist); /* 139 */
+-    png_uint_32 (*png_get_IHDRPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_type, int *compression_type, int *filter_type); /* 140 */
+-    void (*png_set_IHDRPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type); /* 141 */
+-    png_uint_32 (*png_get_oFFsPtr) (png_structp png_ptr, png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type); /* 142 */
+-    void (*png_set_oFFsPtr) (png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type); /* 143 */
+-    png_uint_32 (*png_get_pCALPtr) (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); /* 144 */
+-    void (*png_set_pCALPtr) (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); /* 145 */
+-    png_uint_32 (*png_get_pHYsPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type); /* 146 */
+-    void (*png_set_pHYsPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type); /* 147 */
+-    png_uint_32 (*png_get_PLTEPtr) (png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette); /* 148 */
+-    void (*png_set_PLTEPtr) (png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette); /* 149 */
+-    png_uint_32 (*png_get_sBITPtr) (png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit); /* 150 */
+-    void (*png_set_sBITPtr) (png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit); /* 151 */
+-    png_uint_32 (*png_get_sRGBPtr) (png_structp png_ptr, png_infop info_ptr, int *intent); /* 152 */
+-    void (*png_set_sRGBPtr) (png_structp png_ptr, png_infop info_ptr, int intent); /* 153 */
+-    void (*png_set_sRGB_gAMA_and_cHRMPtr) (png_structp png_ptr, png_infop info_ptr, int intent); /* 154 */
+-    png_uint_32 (*png_get_iCCPPtr) (png_structp png_ptr, png_infop info_ptr, png_charpp name, int *compression_type, png_charpp profile, png_uint_32 *proflen); /* 155 */
+-    void (*png_set_iCCPPtr) (png_structp png_ptr, png_infop info_ptr, png_charp name, int compression_type, png_charp profile, png_uint_32 proflen); /* 156 */
+-    png_uint_32 (*png_get_sPLTPtr) (png_structp png_ptr, png_infop info_ptr, png_sPLT_tpp entries); /* 157 */
+-    void (*png_set_sPLTPtr) (png_structp png_ptr, png_infop info_ptr, png_sPLT_tp entries, int nentries); /* 158 */
+-    png_uint_32 (*png_get_textPtr) (png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, int *num_text); /* 159 */
+-    void (*png_set_textPtr) (png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text); /* 160 */
+-    png_uint_32 (*png_get_tIMEPtr) (png_structp png_ptr, png_infop info_ptr, png_timep *mod_time); /* 161 */
+-    void (*png_set_tIMEPtr) (png_structp png_ptr, png_infop info_ptr, png_timep mod_time); /* 162 */
+-    png_uint_32 (*png_get_tRNSPtr) (png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values); /* 163 */
+-    void (*png_set_tRNSPtr) (png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values); /* 164 */
+-    png_uint_32 (*png_get_sCALPtr) (png_structp png_ptr, png_infop info_ptr, int *unit, double *width, double *height); /* 165 */
+-    png_uint_32 (*png_get_sCAL_sPtr) (png_structp png_ptr, png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight); /* 166 */
+-    void (*png_set_sCALPtr) (png_structp png_ptr, png_infop info_ptr, int unit, double width, double height); /* 167 */
+-    void (*png_set_sCAL_sPtr) (png_structp png_ptr, png_infop info_ptr, int unit, png_charp swidth, png_charp sheight); /* 168 */
+-    void (*png_set_keep_unknown_chunksPtr) (png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks); /* 169 */
+-    void (*png_set_unknown_chunksPtr) (png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns); /* 170 */
+-    void (*png_set_unknown_chunk_locationPtr) (png_structp png_ptr, png_infop info_ptr, int chunk, int location); /* 171 */
+-    png_uint_32 (*png_get_unknown_chunksPtr) (png_structp png_ptr, png_infop info_ptr, png_unknown_chunkpp entries); /* 172 */
+-    void (*png_set_invalidPtr) (png_structp png_ptr, png_infop info_ptr, int mask); /* 173 */
+-    void (*png_read_pngPtr) (png_structp png_ptr, png_infop info_ptr, int transforms, voidp params); /* 174 */
+-    void (*png_write_pngPtr) (png_structp png_ptr, png_infop info_ptr, int transforms, voidp params); /* 175 */
+-    png_bytep (*png_sig_bytesPtr) (void); /* 176 */
+-    png_charp (*png_get_copyrightPtr) (png_structp png_ptr); /* 177 */
+-    png_charp (*png_get_header_verPtr) (png_structp png_ptr); /* 178 */
+-    png_charp (*png_get_header_versionPtr) (png_structp png_ptr); /* 179 */
+-    png_charp (*png_get_libpng_verPtr) (png_structp png_ptr); /* 180 */
+-    void (*reserved181)(void);
+-    void (*reserved182)(void);
+-    void (*reserved183)(void);
+-    void (*png_read_initPtr) (png_structp png_ptr); /* 184 */
+-    void (*png_read_init_2Ptr) (png_structp png_ptr, png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t png_info_size); /* 185 */
+-    void (*reserved186)(void);
+-    void (*reserved187)(void);
+-    png_voidp (*png_create_structPtr) (int type); /* 188 */
+-    void (*png_destroy_structPtr) (png_voidp struct_ptr); /* 189 */
+-    png_voidp (*png_create_struct_2Ptr) (int type, png_malloc_ptr malloc_fn); /* 190 */
+-    void (*png_destroy_struct_2Ptr) (png_voidp struct_ptr, png_free_ptr free_fn); /* 191 */
+-    void (*png_info_destroyPtr) (png_structp png_ptr, png_infop info_ptr); /* 192 */
+-    voidpf (*png_zallocPtr) (voidpf png_ptr, uInt items, uInt size); /* 193 */
+-    void (*png_zfreePtr) (voidpf png_ptr, voidpf ptr); /* 194 */
+-    void (*png_reset_crcPtr) (png_structp png_ptr); /* 195 */
+-    void (*png_write_dataPtr) (png_structp png_ptr, png_bytep data, png_size_t length); /* 196 */
+-    void (*png_read_dataPtr) (png_structp png_ptr, png_bytep data, png_size_t length); /* 197 */
+-    void (*png_crc_readPtr) (png_structp png_ptr, png_bytep buf, png_size_t length); /* 198 */
+-    png_charp (*png_decompress_chunkPtr) (png_structp png_ptr, int comp_type, png_charp chunkdata, png_size_t chunklength, png_size_t prefix_length, png_size_t *data_length); /* 199 */
+-    int (*png_crc_finishPtr) (png_structp png_ptr, png_uint_32 skip); /* 200 */
+-    int (*png_crc_errorPtr) (png_structp png_ptr); /* 201 */
+-    void (*png_calculate_crcPtr) (png_structp png_ptr, png_bytep ptr, png_size_t length); /* 202 */
+-    void (*png_flushPtr) (png_structp png_ptr); /* 203 */
+-    void (*png_save_uint_32Ptr) (png_bytep buf, png_uint_32 i); /* 204 */
+-    void (*png_save_int_32Ptr) (png_bytep buf, png_int_32 i); /* 205 */
+-    void (*png_save_uint_16Ptr) (png_bytep buf, unsigned int i); /* 206 */
+-    void (*png_write_sigPtr) (png_structp png_ptr); /* 207 */
+-    void (*png_write_IHDRPtr) (png_structp png_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int compression_type, int filter_type, int interlace_type); /* 208 */
+-    void (*png_write_PLTEPtr) (png_structp png_ptr, png_colorp palette, png_uint_32 num_pal); /* 209 */
+-    void (*png_write_IDATPtr) (png_structp png_ptr, png_bytep data, png_size_t length); /* 210 */
+-    void (*png_write_IENDPtr) (png_structp png_ptr); /* 211 */
+-    void (*png_write_gAMAPtr) (png_structp png_ptr, double file_gamma); /* 212 */
+-    void (*png_write_gAMA_fixedPtr) (png_structp png_ptr, png_fixed_point file_gamma); /* 213 */
+-    void (*png_write_sBITPtr) (png_structp png_ptr, png_color_8p sbit, int color_type); /* 214 */
+-    void (*png_write_cHRMPtr) (png_structp png_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); /* 215 */
+-    void (*png_write_cHRM_fixedPtr) (png_structp png_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); /* 216 */
+-    void (*png_write_sRGBPtr) (png_structp png_ptr, int intent); /* 217 */
+-    void (*png_write_iCCPPtr) (png_structp png_ptr, png_charp name, int compression_type, png_charp profile, int proflen); /* 218 */
+-    void (*png_write_sPLTPtr) (png_structp png_ptr, png_sPLT_tp palette); /* 219 */
+-    void (*png_write_tRNSPtr) (png_structp png_ptr, png_bytep trans, png_color_16p values, int number, int color_type); /* 220 */
+-    void (*png_write_bKGDPtr) (png_structp png_ptr, png_color_16p values, int color_type); /* 221 */
+-    void (*png_write_hISTPtr) (png_structp png_ptr, png_uint_16p hist, int num_hist); /* 222 */
+-    png_size_t (*png_check_keywordPtr) (png_structp png_ptr, png_charp key, png_charpp new_key); /* 223 */
+-    void (*png_write_tEXtPtr) (png_structp png_ptr, png_charp key, png_charp text, png_size_t text_len); /* 224 */
+-    void (*png_write_zTXtPtr) (png_structp png_ptr, png_charp key, png_size_t text_len, int compression); /* 225 */
+-    void (*png_write_iTXtPtr) (png_structp png_ptr, int compression, png_charp key, png_charp lang, png_charp lang_key, png_charp text); /* 226 */
+-    void (*png_write_oFFsPtr) (png_structp png_ptr, png_uint_32 x_offset, png_uint_32 y_offset, int unit_type); /* 227 */
+-    void (*png_write_pCALPtr) (png_structp png_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp units, png_charpp params); /* 228 */
+-    void (*png_write_pHYsPtr) (png_structp png_ptr, png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, int unit_type); /* 229 */
+-    void (*png_write_tIMEPtr) (png_structp png_ptr, png_timep mod_time); /* 230 */
+-    void (*png_write_sCALPtr) (png_structp png_ptr, int unit, double width, double height); /* 231 */
+-    void (*png_write_sCAL_sPtr) (png_structp png_ptr, int unit, png_charp width, png_charp height); /* 232 */
+-    void (*png_write_finish_rowPtr) (png_structp png_ptr); /* 233 */
+-    void (*png_write_start_rowPtr) (png_structp png_ptr); /* 234 */
+-    void (*png_build_gamma_tablePtr) (png_structp png_ptr); /* 235 */
+-    void (*png_combine_rowPtr) (png_structp png_ptr, png_bytep row, int mask); /* 236 */
+-    void (*png_do_read_interlacePtr) (png_row_infop row_info, png_bytep row, int pass, png_uint_32 transformations); /* 237 */
+-    void (*png_do_write_interlacePtr) (png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter); /* 238 */
+-    void (*png_read_filter_rowPtr) (png_structp png_ptr, png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter); /* 239 */
+-    void (*png_write_find_filterPtr) (png_structp png_ptr, png_row_infop row_info); /* 240 */
+-    void (*png_write_filtered_rowPtr) (png_structp png_ptr, png_bytep filtered_row); /* 241 */
+-    void (*png_read_finish_rowPtr) (png_structp png_ptr); /* 242 */
+-    void (*png_read_start_rowPtr) (png_structp png_ptr); /* 243 */
+-    void (*png_read_transform_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 244 */
+-    void (*png_do_read_fillerPtr) (png_row_infop row_info, png_bytep row, png_uint_32 filler, png_uint_32 flags); /* 245 */
+-    void (*png_do_read_swap_alphaPtr) (png_row_infop row_info, png_bytep row); /* 246 */
+-    void (*png_do_write_swap_alphaPtr) (png_row_infop row_info, png_bytep row); /* 247 */
+-    void (*png_do_read_invert_alphaPtr) (png_row_infop row_info, png_bytep row); /* 248 */
+-    void (*png_do_write_invert_alphaPtr) (png_row_infop row_info, png_bytep row); /* 249 */
+-    void (*png_do_strip_fillerPtr) (png_row_infop row_info, png_bytep row, png_uint_32 flags); /* 250 */
+-    void (*png_do_swapPtr) (png_row_infop row_info, png_bytep row); /* 251 */
+-    void (*png_do_packswapPtr) (png_row_infop row_info, png_bytep row); /* 252 */
+-    int (*png_do_rgb_to_grayPtr) (png_structp png_ptr, png_row_infop row_info, png_bytep row); /* 253 */
+-    void (*png_do_gray_to_rgbPtr) (png_row_infop row_info, png_bytep row); /* 254 */
+-    void (*png_do_unpackPtr) (png_row_infop row_info, png_bytep row); /* 255 */
+-    void (*png_do_unshiftPtr) (png_row_infop row_info, png_bytep row, png_color_8p sig_bits); /* 256 */
+-    void (*png_do_invertPtr) (png_row_infop row_info, png_bytep row); /* 257 */
+-    void (*png_do_chopPtr) (png_row_infop row_info, png_bytep row); /* 258 */
+-    void (*png_do_ditherPtr) (png_row_infop row_info, png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup); /* 259 */
+-    void (*png_correct_palettePtr) (png_structp png_ptr, png_colorp palette, int num_palette); /* 260 */
+-    void (*png_do_bgrPtr) (png_row_infop row_info, png_bytep row); /* 261 */
+-    void (*png_do_packPtr) (png_row_infop row_info, png_bytep row, png_uint_32 bit_depth); /* 262 */
+-    void (*png_do_shiftPtr) (png_row_infop row_info, png_bytep row, png_color_8p bit_depth); /* 263 */
+-    void (*png_do_backgroundPtr) (png_row_infop row_info, png_bytep row, png_color_16p trans_values, png_color_16p background, png_color_16p background_1, png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, png_uint_16pp gamma_16_to_1, int gamma_shift); /* 264 */
+-    void (*png_do_gammaPtr) (png_row_infop row_info, png_bytep row, png_bytep gamma_table, png_uint_16pp gamma_16_table, int gamma_shift); /* 265 */
+-    void (*png_do_expand_palettePtr) (png_row_infop row_info, png_bytep row, png_colorp palette, png_bytep trans, int num_trans); /* 266 */
+-    void (*png_do_expandPtr) (png_row_infop row_info, png_bytep row, png_color_16p trans_value); /* 267 */
+-    void (*png_handle_IHDRPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 268 */
+-    void (*png_handle_PLTEPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 269 */
+-    void (*png_handle_IENDPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 270 */
+-    void (*png_handle_bKGDPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 271 */
+-    void (*png_handle_cHRMPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 272 */
+-    void (*png_handle_gAMAPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 273 */
+-    void (*png_handle_hISTPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 274 */
+-    void (*png_handle_iCCPPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 275 */
+-    void (*png_handle_iTXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 276 */
+-    void (*png_handle_oFFsPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 277 */
+-    void (*png_handle_pCALPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 278 */
+-    void (*png_handle_pHYsPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 279 */
+-    void (*png_handle_sBITPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 280 */
+-    void (*png_handle_sCALPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 281 */
+-    void (*png_handle_sPLTPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 282 */
+-    void (*png_handle_sRGBPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 283 */
+-    void (*png_handle_tEXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 284 */
+-    void (*png_handle_tIMEPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 285 */
+-    void (*png_handle_tRNSPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 286 */
+-    void (*png_handle_zTXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 287 */
+-    int (*png_handle_as_unknownPtr) (png_structp png_ptr, png_bytep chunk_name); /* 288 */
+-    void (*png_handle_unknownPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 289 */
+-    void (*png_check_chunk_namePtr) (png_structp png_ptr, png_bytep chunk_name); /* 290 */
+-    void (*png_do_read_transformationsPtr) (png_structp png_ptr); /* 291 */
+-    void (*png_do_write_transformationsPtr) (png_structp png_ptr); /* 292 */
+-    void (*png_init_read_transformationsPtr) (png_structp png_ptr); /* 293 */
+-    void (*png_push_read_chunkPtr) (png_structp png_ptr, png_infop info_ptr); /* 294 */
+-    void (*png_push_read_sigPtr) (png_structp png_ptr, png_infop info_ptr); /* 295 */
+-    void (*png_push_check_crcPtr) (png_structp png_ptr); /* 296 */
+-    void (*png_push_crc_skipPtr) (png_structp png_ptr, png_uint_32 length); /* 297 */
+-    void (*png_push_crc_finishPtr) (png_structp png_ptr); /* 298 */
+-    void (*png_push_fill_bufferPtr) (png_structp png_ptr, png_bytep buffer, png_size_t length); /* 299 */
+-    void (*png_push_save_bufferPtr) (png_structp png_ptr); /* 300 */
+-    void (*png_push_restore_bufferPtr) (png_structp png_ptr, png_bytep buffer, png_size_t buffer_length); /* 301 */
+-    void (*png_push_read_IDATPtr) (png_structp png_ptr); /* 302 */
+-    void (*png_process_IDAT_dataPtr) (png_structp png_ptr, png_bytep buffer, png_size_t buffer_length); /* 303 */
+-    void (*png_push_process_rowPtr) (png_structp png_ptr); /* 304 */
+-    void (*png_push_handle_unknownPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 305 */
+-    void (*png_push_have_infoPtr) (png_structp png_ptr, png_infop info_ptr); /* 306 */
+-    void (*png_push_have_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 307 */
+-    void (*png_push_have_rowPtr) (png_structp png_ptr, png_bytep row); /* 308 */
+-    void (*png_push_read_endPtr) (png_structp png_ptr, png_infop info_ptr); /* 309 */
+-    void (*png_process_some_dataPtr) (png_structp png_ptr, png_infop info_ptr); /* 310 */
+-    void (*png_read_push_finish_rowPtr) (png_structp png_ptr); /* 311 */
+-    void (*png_push_handle_tEXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 312 */
+-    void (*png_push_read_tEXtPtr) (png_structp png_ptr, png_infop info_ptr); /* 313 */
+-    void (*png_push_handle_zTXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 314 */
+-    void (*png_push_read_zTXtPtr) (png_structp png_ptr, png_infop info_ptr); /* 315 */
+-    void (*png_push_handle_iTXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 316 */
+-    void (*png_push_read_iTXtPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 length); /* 317 */
+-    void (*png_info_init_3Ptr) (png_infopp info_ptr, png_size_t png_info_struct_size); /* 318 */
++    void (*png_progressive_combine_rowPtr) (png_structp png_ptr, png_bytep old_row, png_const_bytep new_row); /* 93 */
++    png_voidp (*png_mallocPtr) (png_structp png_ptr, png_alloc_size_t size); /* 94 */
++    png_voidp (*png_callocPtr) (png_structp png_ptr, png_alloc_size_t size); /* 95 */
++    png_voidp (*png_malloc_warnPtr) (png_structp png_ptr, png_alloc_size_t size); /* 96 */
++    void (*png_freePtr) (png_structp png_ptr, png_voidp ptr); /* 97 */
++    void (*png_free_dataPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num); /* 98 */
++    void (*png_data_freerPtr) (png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask); /* 99 */
++    png_voidp (*png_malloc_defaultPtr) (png_structp png_ptr, png_alloc_size_t size); /* 100 */
++    void (*png_free_defaultPtr) (png_structp png_ptr, png_voidp ptr); /* 101 */
++    void (*png_errorPtr) (png_structp png_ptr, png_const_charp error_message); /* 102 */
++    void (*png_chunk_errorPtr) (png_structp png_ptr, png_const_charp error); /* 103 */
++    void (*png_errPtr) (png_structp png_ptr); /* 104 */
++    void (*png_warningPtr) (png_structp png_ptr, png_const_charp warning_message); /* 105 */
++    void (*png_chunk_warningPtr) (png_structp png_ptr, png_const_charp warning_message); /* 106 */
++    void (*png_benign_errorPtr) (png_structp png_ptr, png_const_charp warning_message); /* 107 */
++    void (*png_chunk_benign_errorPtr) (png_structp png_ptr, png_const_charp warning_message); /* 108 */
++    void (*png_set_benign_errorsPtr) (png_structp png_ptr, int allowed); /* 109 */
++    png_uint_32 (*png_get_validPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 flag); /* 110 */
++    png_size_t (*png_get_rowbytesPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 111 */
++    png_bytepp (*png_get_rowsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 112 */
++    void (*png_set_rowsPtr) (png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers); /* 113 */
++    png_byte (*png_get_channelsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 114 */
++    png_uint_32 (*png_get_image_widthPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 115 */
++    png_uint_32 (*png_get_image_heightPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 116 */
++    png_byte (*png_get_bit_depthPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 117 */
++    png_byte (*png_get_color_typePtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 118 */
++    png_byte (*png_get_filter_typePtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 119 */
++    png_byte (*png_get_interlace_typePtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 120 */
++    png_byte (*png_get_compression_typePtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 121 */
++    png_uint_32 (*png_get_pixels_per_meterPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 122 */
++    png_uint_32 (*png_get_x_pixels_per_meterPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 123 */
++    png_uint_32 (*png_get_y_pixels_per_meterPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 124 */
++    float (*png_get_pixel_aspect_ratioPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 125 */
++    png_int_32 (*png_get_x_offset_pixelsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 126 */
++    png_int_32 (*png_get_y_offset_pixelsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 127 */
++    png_int_32 (*png_get_x_offset_micronsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 128 */
++    png_int_32 (*png_get_y_offset_micronsPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 129 */
++    png_const_bytep (*png_get_signaturePtr) (png_const_structp png_ptr, png_infop info_ptr); /* 130 */
++    png_uint_32 (*png_get_bKGDPtr) (png_const_structp png_ptr, png_infop info_ptr, png_color_16p *background); /* 131 */
++    void (*png_set_bKGDPtr) (png_structp png_ptr, png_infop info_ptr, png_const_color_16p background); /* 132 */
++    png_uint_32 (*png_get_cHRMPtr) (png_const_structp png_ptr, png_const_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); /* 133 */
++    png_uint_32 (*png_get_cHRM_fixedPtr) (png_const_structp png_ptr, png_const_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); /* 134 */
++    void (*png_set_cHRMPtr) (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); /* 135 */
++    void (*png_set_cHRM_fixedPtr) (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); /* 136 */
++    png_uint_32 (*png_get_gAMAPtr) (png_const_structp png_ptr, png_const_infop info_ptr, double *file_gamma); /* 137 */
++    png_uint_32 (*png_get_gAMA_fixedPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_fixed_point *int_file_gamma); /* 138 */
++    void (*png_set_gAMAPtr) (png_structp png_ptr, png_infop info_ptr, double file_gamma); /* 139 */
++    void (*png_set_gAMA_fixedPtr) (png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma); /* 140 */
++    png_uint_32 (*png_get_hISTPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_16p *hist); /* 141 */
++    void (*png_set_hISTPtr) (png_structp png_ptr, png_infop info_ptr, png_const_uint_16p hist); /* 142 */
++    png_uint_32 (*png_get_IHDRPtr) (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); /* 143 */
++    void (*png_set_IHDRPtr) (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); /* 144 */
++    png_uint_32 (*png_get_oFFsPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type); /* 145 */
++    void (*png_set_oFFsPtr) (png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type); /* 146 */
++    png_uint_32 (*png_get_pCALPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, png_charp *units, png_charpp *params); /* 147 */
++    void (*png_set_pCALPtr) (png_structp png_ptr, png_infop info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_const_charp units, png_charpp params); /* 148 */
++    png_uint_32 (*png_get_pHYsPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type); /* 149 */
++    void (*png_set_pHYsPtr) (png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type); /* 150 */
++    png_uint_32 (*png_get_PLTEPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_colorp *palette, int *num_palette); /* 151 */
++    void (*png_set_PLTEPtr) (png_structp png_ptr, png_infop info_ptr, png_const_colorp palette, int num_palette); /* 152 */
++    png_uint_32 (*png_get_sBITPtr) (png_const_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit); /* 153 */
++    void (*png_set_sBITPtr) (png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit); /* 154 */
++    png_uint_32 (*png_get_sRGBPtr) (png_const_structp png_ptr, png_const_infop info_ptr, int *file_srgb_intent); /* 155 */
++    void (*png_set_sRGBPtr) (png_structp png_ptr, png_infop info_ptr, int srgb_intent); /* 156 */
++    void (*png_set_sRGB_gAMA_and_cHRMPtr) (png_structp png_ptr, png_infop info_ptr, int srgb_intent); /* 157 */
++    png_uint_32 (*png_get_iCCPPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_charpp name, int *compression_type, png_bytepp profile, png_uint_32 *proflen); /* 158 */
++    void (*png_set_iCCPPtr) (png_structp png_ptr, png_infop info_ptr, png_const_charp name, int compression_type, png_const_bytep profile, png_uint_32 proflen); /* 159 */
++    png_uint_32 (*png_get_sPLTPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_sPLT_tpp entries); /* 160 */
++    void (*png_set_sPLTPtr) (png_structp png_ptr, png_infop info_ptr, png_const_sPLT_tp entries, int nentries); /* 161 */
++    png_uint_32 (*png_get_textPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_textp *text_ptr, int *num_text); /* 162 */
++    void (*png_set_textPtr) (png_structp png_ptr, png_infop info_ptr, png_const_textp text_ptr, int num_text); /* 163 */
++    png_uint_32 (*png_get_tIMEPtr) (png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time); /* 164 */
++    void (*png_set_tIMEPtr) (png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time); /* 165 */
++    png_uint_32 (*png_get_tRNSPtr) (png_const_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_color); /* 166 */
++    void (*png_set_tRNSPtr) (png_structp png_ptr, png_infop info_ptr, png_const_bytep trans, int num_trans, png_const_color_16p trans_color); /* 167 */
++    png_uint_32 (*png_get_sCALPtr) (png_const_structp png_ptr, png_const_infop info_ptr, int *unit, double *width, double *height); /* 168 */
++    png_uint_32 (*png_get_sCAL_sPtr) (png_const_structp png_ptr, png_const_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight); /* 169 */
++    void (*png_set_sCALPtr) (png_structp png_ptr, png_infop info_ptr, int unit, double width, double height); /* 170 */
++    void (*png_set_sCAL_sPtr) (png_structp png_ptr, png_infop info_ptr, int unit, png_const_charp swidth, png_const_charp sheight); /* 171 */
++    void (*png_set_keep_unknown_chunksPtr) (png_structp png_ptr, int keep, png_const_bytep chunk_list, int num_chunks); /* 172 */
++    int (*png_handle_as_unknownPtr) (png_structp png_ptr, png_const_bytep chunk_name); /* 173 */
++    void (*png_set_unknown_chunksPtr) (png_structp png_ptr, png_infop info_ptr, png_const_unknown_chunkp unknowns, int num_unknowns); /* 174 */
++    void (*png_set_unknown_chunk_locationPtr) (png_structp png_ptr, png_infop info_ptr, int chunk, int location); /* 175 */
++    int (*png_get_unknown_chunksPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_unknown_chunkpp entries); /* 176 */
++    void (*png_set_invalidPtr) (png_structp png_ptr, png_infop info_ptr, int mask); /* 177 */
++    void (*png_read_pngPtr) (png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); /* 178 */
++    void (*png_write_pngPtr) (png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); /* 179 */
++    png_const_charp (*png_get_copyrightPtr) (png_const_structp png_ptr); /* 180 */
++    png_const_charp (*png_get_header_verPtr) (png_const_structp png_ptr); /* 181 */
++    png_const_charp (*png_get_header_versionPtr) (png_const_structp png_ptr); /* 182 */
++    png_const_charp (*png_get_libpng_verPtr) (png_const_structp png_ptr); /* 183 */
++    png_uint_32 (*png_permit_mng_featuresPtr) (png_structp png_ptr, png_uint_32 mng_features_permitted); /* 184 */
++    void (*png_set_strip_error_numbersPtr) (png_structp png_ptr, png_uint_32 strip_mode); /* 185 */
++    void (*png_set_user_limitsPtr) (png_structp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max); /* 186 */
++    png_uint_32 (*png_get_user_width_maxPtr) (png_const_structp png_ptr); /* 187 */
++    png_uint_32 (*png_get_user_height_maxPtr) (png_const_structp png_ptr); /* 188 */
++    void (*png_set_chunk_cache_maxPtr) (png_structp png_ptr, png_uint_32 user_chunk_cache_max); /* 189 */
++    png_uint_32 (*png_get_chunk_cache_maxPtr) (png_const_structp png_ptr); /* 190 */
++    void (*png_set_chunk_malloc_maxPtr) (png_structp png_ptr, png_alloc_size_t user_chunk_cache_max); /* 191 */
++    png_alloc_size_t (*png_get_chunk_malloc_maxPtr) (png_const_structp png_ptr); /* 192 */
++    png_uint_32 (*png_get_pixels_per_inchPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 193 */
++    png_uint_32 (*png_get_x_pixels_per_inchPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 194 */
++    png_uint_32 (*png_get_y_pixels_per_inchPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 195 */
++    float (*png_get_x_offset_inchesPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 196 */
++    float (*png_get_y_offset_inchesPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 197 */
++    png_uint_32 (*png_get_pHYs_dpiPtr) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type); /* 198 */
++    png_uint_32 (*png_get_io_statePtr) (png_structp png_ptr); /* 199 */
++    png_const_bytep (*png_get_io_chunk_namePtr) (png_structp png_ptr); /* 200 */
++    png_uint_32 (*png_get_uint_32Ptr) (png_const_bytep buf); /* 201 */
++    png_uint_16 (*png_get_uint_16Ptr) (png_const_bytep buf); /* 202 */
++    png_int_32 (*png_get_int_32Ptr) (png_const_bytep buf); /* 203 */
++    png_uint_32 (*png_get_uint_31Ptr) (png_structp png_ptr, png_const_bytep buf); /* 204 */
++    void (*png_save_uint_32Ptr) (png_bytep buf, png_uint_32 i); /* 205 */
++    void (*png_save_int_32Ptr) (png_bytep buf, png_int_32 i); /* 206 */
++    void (*png_save_uint_16Ptr) (png_bytep buf, unsigned int i); /* 207 */
++    void (*png_set_gamma_fixedPtr) (png_structp png_ptr, png_fixed_point screen_gamma, png_fixed_point override_file_gamma); /* 208 */
++    void (*png_set_filter_heuristics_fixedPtr) (png_structp png_ptr, int heuristic_method, int num_weights, png_const_fixed_point_p filter_weights, png_const_fixed_point_p filter_costs); /* 209 */
++    png_fixed_point (*png_get_pixel_aspect_ratio_fixedPtr) (png_const_structp png_ptr, png_const_infop info_ptr); /* 210 */
++    png_fixed_point (*png_get_x_offset_inches_fixedPtr) (png_structp png_ptr, png_const_infop info_ptr); /* 211 */
++    png_fixed_point (*png_get_y_offset_inches_fixedPtr) (png_structp png_ptr, png_const_infop info_ptr); /* 212 */
++    void (*png_set_sCAL_fixedPtr) (png_structp png_ptr, png_infop info_ptr, int unit, png_fixed_point width, png_fixed_point height); /* 213 */
++    png_uint_32 (*png_get_sCAL_fixedPtr) (png_structp png_ptr, png_const_infop info_ptr, int *unit, png_fixed_point *width, png_fixed_point *height); /* 214 */
++    void (*png_set_background_fixedPtr) (png_structp png_ptr, png_const_color_16p background_color, int background_gamma_code, int need_expand, png_fixed_point background_gamma); /* 215 */
++    png_uint_32 (*png_get_io_chunk_typePtr) (png_const_structp png_ptr); /* 216 */
++    png_uint_32 (*png_get_current_row_numberPtr) (png_const_structp png_ptr); /* 217 */
++    png_byte (*png_get_current_pass_numberPtr) (png_const_structp png_ptr); /* 218 */
++    png_size_t (*png_process_data_pausePtr) (png_structp png_ptr, int save); /* 219 */
++    png_uint_32 (*png_process_data_skipPtr) (png_structp png_ptr); /* 220 */
++    void (*png_set_expand_16Ptr) (png_structp png_ptr); /* 221 */
++    void (*png_set_text_compression_levelPtr) (png_structp png_ptr, int level); /* 222 */
++    void (*png_set_text_compression_mem_levelPtr) (png_structp png_ptr, int mem_level); /* 223 */
++    void (*png_set_text_compression_strategyPtr) (png_structp png_ptr, int strategy); /* 224 */
++    void (*png_set_text_compression_window_bitsPtr) (png_structp png_ptr, int window_bits); /* 225 */
++    void (*png_set_text_compression_methodPtr) (png_structp pnt_ptr, int method); /* 226 */
++    void (*png_set_alpha_modePtr) (png_structp png_ptr, int mode, double output_gamma); /* 227 */
++    void (*png_set_alpha_mode_fixedPtr) (png_structp png_ptr, int mode, png_fixed_point output_gamma); /* 228 */
++    void (*png_set_scale_16Ptr) (png_structp png_ptr); /* 229 */
++    png_uint_32 (*png_get_cHRM_XYZPtr) (png_structp png_ptr, png_const_infop info_ptr, double *red_X, double *red_Y, double *red_Z, double *green_X, double *green_Y, double *green_Z, double *blue_X, double *blue_Y, double *blue_Z); /* 230 */
++    png_uint_32 (*png_get_cHRM_XYZ_fixedPtr) (png_structp png_ptr, png_const_infop info_ptr, png_fixed_point *int_red_X, png_fixed_point *int_red_Y, png_fixed_point *int_red_Z, png_fixed_point *int_green_X, png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, png_fixed_point *int_blue_Z); /* 231 */
++    void (*png_set_cHRM_XYZPtr) (png_structp png_ptr, png_infop info_ptr, double red_X, double red_Y, double red_Z, double green_X, double green_Y, double green_Z, double blue_X, double blue_Y, double blue_Z); /* 232 */
++    void (*png_set_cHRM_XYZ_fixedPtr) (png_structp png_ptr, png_infop info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, png_fixed_point int_red_Z, png_fixed_point int_green_X, png_fixed_point int_green_Y, png_fixed_point int_green_Z, png_fixed_point int_blue_X, png_fixed_point int_blue_Y, png_fixed_point int_blue_Z); /* 233 */
+ } PngtclStubs;
+ 
+ #ifdef __cplusplus
+@@ -1350,13 +1068,13 @@ PNG_IMPEXP const PngtclStubs *pngtclStub
+  * Inline function declarations:
+  */
+ 
++/* Slot 0 is reserved */
+ #define png_access_version_number \
+-	(pngtclStubsPtr->png_access_version_numberPtr) /* 0 */
++	(pngtclStubsPtr->png_access_version_numberPtr) /* 1 */
+ #define png_set_sig_bytes \
+-	(pngtclStubsPtr->png_set_sig_bytesPtr) /* 1 */
++	(pngtclStubsPtr->png_set_sig_bytesPtr) /* 2 */
+ #define png_sig_cmp \
+-	(pngtclStubsPtr->png_sig_cmpPtr) /* 2 */
+-/* Slot 3 is reserved */
++	(pngtclStubsPtr->png_sig_cmpPtr) /* 3 */
+ #define png_create_read_struct \
+ 	(pngtclStubsPtr->png_create_read_structPtr) /* 4 */
+ #define png_create_write_struct \
+@@ -1365,118 +1083,122 @@ PNG_IMPEXP const PngtclStubs *pngtclStub
+ 	(pngtclStubsPtr->png_get_compression_buffer_sizePtr) /* 6 */
+ #define png_set_compression_buffer_size \
+ 	(pngtclStubsPtr->png_set_compression_buffer_sizePtr) /* 7 */
++#define png_set_longjmp_fn \
++	(pngtclStubsPtr->png_set_longjmp_fnPtr) /* 8 */
++#define png_longjmp \
++	(pngtclStubsPtr->png_longjmpPtr) /* 9 */
+ #define png_reset_zstream \
+-	(pngtclStubsPtr->png_reset_zstreamPtr) /* 8 */
++	(pngtclStubsPtr->png_reset_zstreamPtr) /* 10 */
+ #define png_create_read_struct_2 \
+-	(pngtclStubsPtr->png_create_read_struct_2Ptr) /* 9 */
++	(pngtclStubsPtr->png_create_read_struct_2Ptr) /* 11 */
+ #define png_create_write_struct_2 \
+-	(pngtclStubsPtr->png_create_write_struct_2Ptr) /* 10 */
++	(pngtclStubsPtr->png_create_write_struct_2Ptr) /* 12 */
++#define png_write_sig \
++	(pngtclStubsPtr->png_write_sigPtr) /* 13 */
+ #define png_write_chunk \
+-	(pngtclStubsPtr->png_write_chunkPtr) /* 11 */
++	(pngtclStubsPtr->png_write_chunkPtr) /* 14 */
+ #define png_write_chunk_start \
+-	(pngtclStubsPtr->png_write_chunk_startPtr) /* 12 */
++	(pngtclStubsPtr->png_write_chunk_startPtr) /* 15 */
+ #define png_write_chunk_data \
+-	(pngtclStubsPtr->png_write_chunk_dataPtr) /* 13 */
++	(pngtclStubsPtr->png_write_chunk_dataPtr) /* 16 */
+ #define png_write_chunk_end \
+-	(pngtclStubsPtr->png_write_chunk_endPtr) /* 14 */
++	(pngtclStubsPtr->png_write_chunk_endPtr) /* 17 */
+ #define png_create_info_struct \
+-	(pngtclStubsPtr->png_create_info_structPtr) /* 15 */
+-/* Slot 16 is reserved */
++	(pngtclStubsPtr->png_create_info_structPtr) /* 18 */
++#define png_info_init_3 \
++	(pngtclStubsPtr->png_info_init_3Ptr) /* 19 */
+ #define png_write_info_before_PLTE \
+-	(pngtclStubsPtr->png_write_info_before_PLTEPtr) /* 17 */
++	(pngtclStubsPtr->png_write_info_before_PLTEPtr) /* 20 */
+ #define png_write_info \
+-	(pngtclStubsPtr->png_write_infoPtr) /* 18 */
++	(pngtclStubsPtr->png_write_infoPtr) /* 21 */
+ #define png_read_info \
+-	(pngtclStubsPtr->png_read_infoPtr) /* 19 */
++	(pngtclStubsPtr->png_read_infoPtr) /* 22 */
+ #define png_convert_to_rfc1123 \
+-	(pngtclStubsPtr->png_convert_to_rfc1123Ptr) /* 20 */
++	(pngtclStubsPtr->png_convert_to_rfc1123Ptr) /* 23 */
+ #define png_convert_from_struct_tm \
+-	(pngtclStubsPtr->png_convert_from_struct_tmPtr) /* 21 */
++	(pngtclStubsPtr->png_convert_from_struct_tmPtr) /* 24 */
+ #define png_convert_from_time_t \
+-	(pngtclStubsPtr->png_convert_from_time_tPtr) /* 22 */
++	(pngtclStubsPtr->png_convert_from_time_tPtr) /* 25 */
+ #define png_set_expand \
+-	(pngtclStubsPtr->png_set_expandPtr) /* 23 */
+-/* Slot 24 is reserved */
++	(pngtclStubsPtr->png_set_expandPtr) /* 26 */
++#define png_set_expand_gray_1_2_4_to_8 \
++	(pngtclStubsPtr->png_set_expand_gray_1_2_4_to_8Ptr) /* 27 */
+ #define png_set_palette_to_rgb \
+-	(pngtclStubsPtr->png_set_palette_to_rgbPtr) /* 25 */
++	(pngtclStubsPtr->png_set_palette_to_rgbPtr) /* 28 */
+ #define png_set_tRNS_to_alpha \
+-	(pngtclStubsPtr->png_set_tRNS_to_alphaPtr) /* 26 */
++	(pngtclStubsPtr->png_set_tRNS_to_alphaPtr) /* 29 */
+ #define png_set_bgr \
+-	(pngtclStubsPtr->png_set_bgrPtr) /* 27 */
++	(pngtclStubsPtr->png_set_bgrPtr) /* 30 */
+ #define png_set_gray_to_rgb \
+-	(pngtclStubsPtr->png_set_gray_to_rgbPtr) /* 28 */
++	(pngtclStubsPtr->png_set_gray_to_rgbPtr) /* 31 */
+ #define png_set_rgb_to_gray \
+-	(pngtclStubsPtr->png_set_rgb_to_grayPtr) /* 29 */
++	(pngtclStubsPtr->png_set_rgb_to_grayPtr) /* 32 */
+ #define png_set_rgb_to_gray_fixed \
+-	(pngtclStubsPtr->png_set_rgb_to_gray_fixedPtr) /* 30 */
++	(pngtclStubsPtr->png_set_rgb_to_gray_fixedPtr) /* 33 */
+ #define png_get_rgb_to_gray_status \
+-	(pngtclStubsPtr->png_get_rgb_to_gray_statusPtr) /* 31 */
++	(pngtclStubsPtr->png_get_rgb_to_gray_statusPtr) /* 34 */
+ #define png_build_grayscale_palette \
+-	(pngtclStubsPtr->png_build_grayscale_palettePtr) /* 32 */
++	(pngtclStubsPtr->png_build_grayscale_palettePtr) /* 35 */
+ #define png_set_strip_alpha \
+-	(pngtclStubsPtr->png_set_strip_alphaPtr) /* 33 */
++	(pngtclStubsPtr->png_set_strip_alphaPtr) /* 36 */
+ #define png_set_swap_alpha \
+-	(pngtclStubsPtr->png_set_swap_alphaPtr) /* 34 */
++	(pngtclStubsPtr->png_set_swap_alphaPtr) /* 37 */
+ #define png_set_invert_alpha \
+-	(pngtclStubsPtr->png_set_invert_alphaPtr) /* 35 */
++	(pngtclStubsPtr->png_set_invert_alphaPtr) /* 38 */
+ #define png_set_filler \
+-	(pngtclStubsPtr->png_set_fillerPtr) /* 36 */
++	(pngtclStubsPtr->png_set_fillerPtr) /* 39 */
++#define png_set_add_alpha \
++	(pngtclStubsPtr->png_set_add_alphaPtr) /* 40 */
+ #define png_set_swap \
+-	(pngtclStubsPtr->png_set_swapPtr) /* 37 */
++	(pngtclStubsPtr->png_set_swapPtr) /* 41 */
+ #define png_set_packing \
+-	(pngtclStubsPtr->png_set_packingPtr) /* 38 */
++	(pngtclStubsPtr->png_set_packingPtr) /* 42 */
+ #define png_set_packswap \
+-	(pngtclStubsPtr->png_set_packswapPtr) /* 39 */
++	(pngtclStubsPtr->png_set_packswapPtr) /* 43 */
+ #define png_set_shift \
+-	(pngtclStubsPtr->png_set_shiftPtr) /* 40 */
++	(pngtclStubsPtr->png_set_shiftPtr) /* 44 */
+ #define png_set_interlace_handling \
+-	(pngtclStubsPtr->png_set_interlace_handlingPtr) /* 41 */
++	(pngtclStubsPtr->png_set_interlace_handlingPtr) /* 45 */
+ #define png_set_invert_mono \
+-	(pngtclStubsPtr->png_set_invert_monoPtr) /* 42 */
++	(pngtclStubsPtr->png_set_invert_monoPtr) /* 46 */
+ #define png_set_background \
+-	(pngtclStubsPtr->png_set_backgroundPtr) /* 43 */
++	(pngtclStubsPtr->png_set_backgroundPtr) /* 47 */
+ #define png_set_strip_16 \
+-	(pngtclStubsPtr->png_set_strip_16Ptr) /* 44 */
+-/* Slot 45 is reserved */
+-/* #define png_set_quantize \
+-	(pngtclStubsPtr->png_set_quantizePtr) */
++	(pngtclStubsPtr->png_set_strip_16Ptr) /* 48 */
++#define png_set_quantize \
++	(pngtclStubsPtr->png_set_quantizePtr) /* 49 */
+ #define png_set_gamma \
+-	(pngtclStubsPtr->png_set_gammaPtr) /* 46 */
+-#define png_permit_empty_plte \
+-	(pngtclStubsPtr->png_permit_empty_pltePtr) /* 47 */
++	(pngtclStubsPtr->png_set_gammaPtr) /* 50 */
+ #define png_set_flush \
+-	(pngtclStubsPtr->png_set_flushPtr) /* 48 */
++	(pngtclStubsPtr->png_set_flushPtr) /* 51 */
+ #define png_write_flush \
+-	(pngtclStubsPtr->png_write_flushPtr) /* 49 */
++	(pngtclStubsPtr->png_write_flushPtr) /* 52 */
+ #define png_start_read_image \
+-	(pngtclStubsPtr->png_start_read_imagePtr) /* 50 */
++	(pngtclStubsPtr->png_start_read_imagePtr) /* 53 */
+ #define png_read_update_info \
+-	(pngtclStubsPtr->png_read_update_infoPtr) /* 51 */
++	(pngtclStubsPtr->png_read_update_infoPtr) /* 54 */
+ #define png_read_rows \
+-	(pngtclStubsPtr->png_read_rowsPtr) /* 52 */
++	(pngtclStubsPtr->png_read_rowsPtr) /* 55 */
+ #define png_read_row \
+-	(pngtclStubsPtr->png_read_rowPtr) /* 53 */
++	(pngtclStubsPtr->png_read_rowPtr) /* 56 */
+ #define png_read_image \
+-	(pngtclStubsPtr->png_read_imagePtr) /* 54 */
++	(pngtclStubsPtr->png_read_imagePtr) /* 57 */
+ #define png_write_row \
+-	(pngtclStubsPtr->png_write_rowPtr) /* 55 */
++	(pngtclStubsPtr->png_write_rowPtr) /* 58 */
+ #define png_write_rows \
+-	(pngtclStubsPtr->png_write_rowsPtr) /* 56 */
++	(pngtclStubsPtr->png_write_rowsPtr) /* 59 */
+ #define png_write_image \
+-	(pngtclStubsPtr->png_write_imagePtr) /* 57 */
++	(pngtclStubsPtr->png_write_imagePtr) /* 60 */
+ #define png_write_end \
+-	(pngtclStubsPtr->png_write_endPtr) /* 58 */
++	(pngtclStubsPtr->png_write_endPtr) /* 61 */
+ #define png_read_end \
+-	(pngtclStubsPtr->png_read_endPtr) /* 59 */
++	(pngtclStubsPtr->png_read_endPtr) /* 62 */
+ #define png_destroy_info_struct \
+-	(pngtclStubsPtr->png_destroy_info_structPtr) /* 60 */
++	(pngtclStubsPtr->png_destroy_info_structPtr) /* 63 */
+ #define png_destroy_read_struct \
+-	(pngtclStubsPtr->png_destroy_read_structPtr) /* 61 */
+-/* Slot 62 is reserved */
++	(pngtclStubsPtr->png_destroy_read_structPtr) /* 64 */
+ #define png_destroy_write_struct \
+-	(pngtclStubsPtr->png_destroy_write_structPtr) /* 63 */
+-/* Slot 64 is reserved */
+-/* Slot 65 is reserved */
++	(pngtclStubsPtr->png_destroy_write_structPtr) /* 65 */
+ #define png_set_crc_action \
+ 	(pngtclStubsPtr->png_set_crc_actionPtr) /* 66 */
+ #define png_set_filter \
+@@ -1535,447 +1257,284 @@ PNG_IMPEXP const PngtclStubs *pngtclStub
+ 	(pngtclStubsPtr->png_progressive_combine_rowPtr) /* 93 */
+ #define png_malloc \
+ 	(pngtclStubsPtr->png_mallocPtr) /* 94 */
++#define png_calloc \
++	(pngtclStubsPtr->png_callocPtr) /* 95 */
++#define png_malloc_warn \
++	(pngtclStubsPtr->png_malloc_warnPtr) /* 96 */
+ #define png_free \
+-	(pngtclStubsPtr->png_freePtr) /* 95 */
++	(pngtclStubsPtr->png_freePtr) /* 97 */
+ #define png_free_data \
+-	(pngtclStubsPtr->png_free_dataPtr) /* 96 */
++	(pngtclStubsPtr->png_free_dataPtr) /* 98 */
+ #define png_data_freer \
+-	(pngtclStubsPtr->png_data_freerPtr) /* 97 */
++	(pngtclStubsPtr->png_data_freerPtr) /* 99 */
+ #define png_malloc_default \
+-	(pngtclStubsPtr->png_malloc_defaultPtr) /* 98 */
++	(pngtclStubsPtr->png_malloc_defaultPtr) /* 100 */
+ #define png_free_default \
+-	(pngtclStubsPtr->png_free_defaultPtr) /* 99 */
+-/* Slot 100 is reserved */
+-/* Slot 101 is reserved */
+-#define png_far_to_near \
+-	(pngtclStubsPtr->png_far_to_nearPtr) /* 102 */
++	(pngtclStubsPtr->png_free_defaultPtr) /* 101 */
+ #define png_error \
+-	(pngtclStubsPtr->png_errorPtr) /* 103 */
++	(pngtclStubsPtr->png_errorPtr) /* 102 */
+ #define png_chunk_error \
+-	(pngtclStubsPtr->png_chunk_errorPtr) /* 104 */
++	(pngtclStubsPtr->png_chunk_errorPtr) /* 103 */
++#define png_err \
++	(pngtclStubsPtr->png_errPtr) /* 104 */
+ #define png_warning \
+ 	(pngtclStubsPtr->png_warningPtr) /* 105 */
+ #define png_chunk_warning \
+ 	(pngtclStubsPtr->png_chunk_warningPtr) /* 106 */
++#define png_benign_error \
++	(pngtclStubsPtr->png_benign_errorPtr) /* 107 */
++#define png_chunk_benign_error \
++	(pngtclStubsPtr->png_chunk_benign_errorPtr) /* 108 */
++#define png_set_benign_errors \
++	(pngtclStubsPtr->png_set_benign_errorsPtr) /* 109 */
+ #define png_get_valid \
+-	(pngtclStubsPtr->png_get_validPtr) /* 107 */
++	(pngtclStubsPtr->png_get_validPtr) /* 110 */
+ #define png_get_rowbytes \
+-	(pngtclStubsPtr->png_get_rowbytesPtr) /* 108 */
++	(pngtclStubsPtr->png_get_rowbytesPtr) /* 111 */
+ #define png_get_rows \
+-	(pngtclStubsPtr->png_get_rowsPtr) /* 109 */
++	(pngtclStubsPtr->png_get_rowsPtr) /* 112 */
+ #define png_set_rows \
+-	(pngtclStubsPtr->png_set_rowsPtr) /* 110 */
++	(pngtclStubsPtr->png_set_rowsPtr) /* 113 */
+ #define png_get_channels \
+-	(pngtclStubsPtr->png_get_channelsPtr) /* 111 */
++	(pngtclStubsPtr->png_get_channelsPtr) /* 114 */
+ #define png_get_image_width \
+-	(pngtclStubsPtr->png_get_image_widthPtr) /* 112 */
++	(pngtclStubsPtr->png_get_image_widthPtr) /* 115 */
+ #define png_get_image_height \
+-	(pngtclStubsPtr->png_get_image_heightPtr) /* 113 */
++	(pngtclStubsPtr->png_get_image_heightPtr) /* 116 */
+ #define png_get_bit_depth \
+-	(pngtclStubsPtr->png_get_bit_depthPtr) /* 114 */
++	(pngtclStubsPtr->png_get_bit_depthPtr) /* 117 */
+ #define png_get_color_type \
+-	(pngtclStubsPtr->png_get_color_typePtr) /* 115 */
++	(pngtclStubsPtr->png_get_color_typePtr) /* 118 */
+ #define png_get_filter_type \
+-	(pngtclStubsPtr->png_get_filter_typePtr) /* 116 */
++	(pngtclStubsPtr->png_get_filter_typePtr) /* 119 */
+ #define png_get_interlace_type \
+-	(pngtclStubsPtr->png_get_interlace_typePtr) /* 117 */
++	(pngtclStubsPtr->png_get_interlace_typePtr) /* 120 */
+ #define png_get_compression_type \
+-	(pngtclStubsPtr->png_get_compression_typePtr) /* 118 */
++	(pngtclStubsPtr->png_get_compression_typePtr) /* 121 */
+ #define png_get_pixels_per_meter \
+-	(pngtclStubsPtr->png_get_pixels_per_meterPtr) /* 119 */
++	(pngtclStubsPtr->png_get_pixels_per_meterPtr) /* 122 */
+ #define png_get_x_pixels_per_meter \
+-	(pngtclStubsPtr->png_get_x_pixels_per_meterPtr) /* 120 */
++	(pngtclStubsPtr->png_get_x_pixels_per_meterPtr) /* 123 */
+ #define png_get_y_pixels_per_meter \
+-	(pngtclStubsPtr->png_get_y_pixels_per_meterPtr) /* 121 */
++	(pngtclStubsPtr->png_get_y_pixels_per_meterPtr) /* 124 */
+ #define png_get_pixel_aspect_ratio \
+-	(pngtclStubsPtr->png_get_pixel_aspect_ratioPtr) /* 122 */
++	(pngtclStubsPtr->png_get_pixel_aspect_ratioPtr) /* 125 */
+ #define png_get_x_offset_pixels \
+-	(pngtclStubsPtr->png_get_x_offset_pixelsPtr) /* 123 */
++	(pngtclStubsPtr->png_get_x_offset_pixelsPtr) /* 126 */
+ #define png_get_y_offset_pixels \
+-	(pngtclStubsPtr->png_get_y_offset_pixelsPtr) /* 124 */
++	(pngtclStubsPtr->png_get_y_offset_pixelsPtr) /* 127 */
+ #define png_get_x_offset_microns \
+-	(pngtclStubsPtr->png_get_x_offset_micronsPtr) /* 125 */
++	(pngtclStubsPtr->png_get_x_offset_micronsPtr) /* 128 */
+ #define png_get_y_offset_microns \
+-	(pngtclStubsPtr->png_get_y_offset_micronsPtr) /* 126 */
++	(pngtclStubsPtr->png_get_y_offset_micronsPtr) /* 129 */
+ #define png_get_signature \
+-	(pngtclStubsPtr->png_get_signaturePtr) /* 127 */
++	(pngtclStubsPtr->png_get_signaturePtr) /* 130 */
+ #define png_get_bKGD \
+-	(pngtclStubsPtr->png_get_bKGDPtr) /* 128 */
++	(pngtclStubsPtr->png_get_bKGDPtr) /* 131 */
+ #define png_set_bKGD \
+-	(pngtclStubsPtr->png_set_bKGDPtr) /* 129 */
++	(pngtclStubsPtr->png_set_bKGDPtr) /* 132 */
+ #define png_get_cHRM \
+-	(pngtclStubsPtr->png_get_cHRMPtr) /* 130 */
++	(pngtclStubsPtr->png_get_cHRMPtr) /* 133 */
+ #define png_get_cHRM_fixed \
+-	(pngtclStubsPtr->png_get_cHRM_fixedPtr) /* 131 */
++	(pngtclStubsPtr->png_get_cHRM_fixedPtr) /* 134 */
+ #define png_set_cHRM \
+-	(pngtclStubsPtr->png_set_cHRMPtr) /* 132 */
++	(pngtclStubsPtr->png_set_cHRMPtr) /* 135 */
+ #define png_set_cHRM_fixed \
+-	(pngtclStubsPtr->png_set_cHRM_fixedPtr) /* 133 */
++	(pngtclStubsPtr->png_set_cHRM_fixedPtr) /* 136 */
+ #define png_get_gAMA \
+-	(pngtclStubsPtr->png_get_gAMAPtr) /* 134 */
++	(pngtclStubsPtr->png_get_gAMAPtr) /* 137 */
+ #define png_get_gAMA_fixed \
+-	(pngtclStubsPtr->png_get_gAMA_fixedPtr) /* 135 */
++	(pngtclStubsPtr->png_get_gAMA_fixedPtr) /* 138 */
+ #define png_set_gAMA \
+-	(pngtclStubsPtr->png_set_gAMAPtr) /* 136 */
++	(pngtclStubsPtr->png_set_gAMAPtr) /* 139 */
+ #define png_set_gAMA_fixed \
+-	(pngtclStubsPtr->png_set_gAMA_fixedPtr) /* 137 */
++	(pngtclStubsPtr->png_set_gAMA_fixedPtr) /* 140 */
+ #define png_get_hIST \
+-	(pngtclStubsPtr->png_get_hISTPtr) /* 138 */
++	(pngtclStubsPtr->png_get_hISTPtr) /* 141 */
+ #define png_set_hIST \
+-	(pngtclStubsPtr->png_set_hISTPtr) /* 139 */
++	(pngtclStubsPtr->png_set_hISTPtr) /* 142 */
+ #define png_get_IHDR \
+-	(pngtclStubsPtr->png_get_IHDRPtr) /* 140 */
++	(pngtclStubsPtr->png_get_IHDRPtr) /* 143 */
+ #define png_set_IHDR \
+-	(pngtclStubsPtr->png_set_IHDRPtr) /* 141 */
++	(pngtclStubsPtr->png_set_IHDRPtr) /* 144 */
+ #define png_get_oFFs \
+-	(pngtclStubsPtr->png_get_oFFsPtr) /* 142 */
++	(pngtclStubsPtr->png_get_oFFsPtr) /* 145 */
+ #define png_set_oFFs \
+-	(pngtclStubsPtr->png_set_oFFsPtr) /* 143 */
++	(pngtclStubsPtr->png_set_oFFsPtr) /* 146 */
+ #define png_get_pCAL \
+-	(pngtclStubsPtr->png_get_pCALPtr) /* 144 */
++	(pngtclStubsPtr->png_get_pCALPtr) /* 147 */
+ #define png_set_pCAL \
+-	(pngtclStubsPtr->png_set_pCALPtr) /* 145 */
++	(pngtclStubsPtr->png_set_pCALPtr) /* 148 */
+ #define png_get_pHYs \
+-	(pngtclStubsPtr->png_get_pHYsPtr) /* 146 */
++	(pngtclStubsPtr->png_get_pHYsPtr) /* 149 */
+ #define png_set_pHYs \
+-	(pngtclStubsPtr->png_set_pHYsPtr) /* 147 */
++	(pngtclStubsPtr->png_set_pHYsPtr) /* 150 */
+ #define png_get_PLTE \
+-	(pngtclStubsPtr->png_get_PLTEPtr) /* 148 */
++	(pngtclStubsPtr->png_get_PLTEPtr) /* 151 */
+ #define png_set_PLTE \
+-	(pngtclStubsPtr->png_set_PLTEPtr) /* 149 */
++	(pngtclStubsPtr->png_set_PLTEPtr) /* 152 */
+ #define png_get_sBIT \
+-	(pngtclStubsPtr->png_get_sBITPtr) /* 150 */
++	(pngtclStubsPtr->png_get_sBITPtr) /* 153 */
+ #define png_set_sBIT \
+-	(pngtclStubsPtr->png_set_sBITPtr) /* 151 */
++	(pngtclStubsPtr->png_set_sBITPtr) /* 154 */
+ #define png_get_sRGB \
+-	(pngtclStubsPtr->png_get_sRGBPtr) /* 152 */
++	(pngtclStubsPtr->png_get_sRGBPtr) /* 155 */
+ #define png_set_sRGB \
+-	(pngtclStubsPtr->png_set_sRGBPtr) /* 153 */
++	(pngtclStubsPtr->png_set_sRGBPtr) /* 156 */
+ #define png_set_sRGB_gAMA_and_cHRM \
+-	(pngtclStubsPtr->png_set_sRGB_gAMA_and_cHRMPtr) /* 154 */
++	(pngtclStubsPtr->png_set_sRGB_gAMA_and_cHRMPtr) /* 157 */
+ #define png_get_iCCP \
+-	(pngtclStubsPtr->png_get_iCCPPtr) /* 155 */
++	(pngtclStubsPtr->png_get_iCCPPtr) /* 158 */
+ #define png_set_iCCP \
+-	(pngtclStubsPtr->png_set_iCCPPtr) /* 156 */
++	(pngtclStubsPtr->png_set_iCCPPtr) /* 159 */
+ #define png_get_sPLT \
+-	(pngtclStubsPtr->png_get_sPLTPtr) /* 157 */
++	(pngtclStubsPtr->png_get_sPLTPtr) /* 160 */
+ #define png_set_sPLT \
+-	(pngtclStubsPtr->png_set_sPLTPtr) /* 158 */
++	(pngtclStubsPtr->png_set_sPLTPtr) /* 161 */
+ #define png_get_text \
+-	(pngtclStubsPtr->png_get_textPtr) /* 159 */
++	(pngtclStubsPtr->png_get_textPtr) /* 162 */
+ #define png_set_text \
+-	(pngtclStubsPtr->png_set_textPtr) /* 160 */
++	(pngtclStubsPtr->png_set_textPtr) /* 163 */
+ #define png_get_tIME \
+-	(pngtclStubsPtr->png_get_tIMEPtr) /* 161 */
++	(pngtclStubsPtr->png_get_tIMEPtr) /* 164 */
+ #define png_set_tIME \
+-	(pngtclStubsPtr->png_set_tIMEPtr) /* 162 */
++	(pngtclStubsPtr->png_set_tIMEPtr) /* 165 */
+ #define png_get_tRNS \
+-	(pngtclStubsPtr->png_get_tRNSPtr) /* 163 */
++	(pngtclStubsPtr->png_get_tRNSPtr) /* 166 */
+ #define png_set_tRNS \
+-	(pngtclStubsPtr->png_set_tRNSPtr) /* 164 */
++	(pngtclStubsPtr->png_set_tRNSPtr) /* 167 */
+ #define png_get_sCAL \
+-	(pngtclStubsPtr->png_get_sCALPtr) /* 165 */
++	(pngtclStubsPtr->png_get_sCALPtr) /* 168 */
+ #define png_get_sCAL_s \
+-	(pngtclStubsPtr->png_get_sCAL_sPtr) /* 166 */
++	(pngtclStubsPtr->png_get_sCAL_sPtr) /* 169 */
+ #define png_set_sCAL \
+-	(pngtclStubsPtr->png_set_sCALPtr) /* 167 */
++	(pngtclStubsPtr->png_set_sCALPtr) /* 170 */
+ #define png_set_sCAL_s \
+-	(pngtclStubsPtr->png_set_sCAL_sPtr) /* 168 */
++	(pngtclStubsPtr->png_set_sCAL_sPtr) /* 171 */
+ #define png_set_keep_unknown_chunks \
+-	(pngtclStubsPtr->png_set_keep_unknown_chunksPtr) /* 169 */
++	(pngtclStubsPtr->png_set_keep_unknown_chunksPtr) /* 172 */
++#define png_handle_as_unknown \
++	(pngtclStubsPtr->png_handle_as_unknownPtr) /* 173 */
+ #define png_set_unknown_chunks \
+-	(pngtclStubsPtr->png_set_unknown_chunksPtr) /* 170 */
++	(pngtclStubsPtr->png_set_unknown_chunksPtr) /* 174 */
+ #define png_set_unknown_chunk_location \
+-	(pngtclStubsPtr->png_set_unknown_chunk_locationPtr) /* 171 */
++	(pngtclStubsPtr->png_set_unknown_chunk_locationPtr) /* 175 */
+ #define png_get_unknown_chunks \
+-	(pngtclStubsPtr->png_get_unknown_chunksPtr) /* 172 */
++	(pngtclStubsPtr->png_get_unknown_chunksPtr) /* 176 */
+ #define png_set_invalid \
+-	(pngtclStubsPtr->png_set_invalidPtr) /* 173 */
++	(pngtclStubsPtr->png_set_invalidPtr) /* 177 */
+ #define png_read_png \
+-	(pngtclStubsPtr->png_read_pngPtr) /* 174 */
++	(pngtclStubsPtr->png_read_pngPtr) /* 178 */
+ #define png_write_png \
+-	(pngtclStubsPtr->png_write_pngPtr) /* 175 */
+-#define png_sig_bytes \
+-	(pngtclStubsPtr->png_sig_bytesPtr) /* 176 */
++	(pngtclStubsPtr->png_write_pngPtr) /* 179 */
+ #define png_get_copyright \
+-	(pngtclStubsPtr->png_get_copyrightPtr) /* 177 */
++	(pngtclStubsPtr->png_get_copyrightPtr) /* 180 */
+ #define png_get_header_ver \
+-	(pngtclStubsPtr->png_get_header_verPtr) /* 178 */
++	(pngtclStubsPtr->png_get_header_verPtr) /* 181 */
+ #define png_get_header_version \
+-	(pngtclStubsPtr->png_get_header_versionPtr) /* 179 */
++	(pngtclStubsPtr->png_get_header_versionPtr) /* 182 */
+ #define png_get_libpng_ver \
+-	(pngtclStubsPtr->png_get_libpng_verPtr) /* 180 */
+-/* Slot 181 is reserved */
+-/* Slot 182 is reserved */
+-/* Slot 183 is reserved */
+-#define png_read_init \
+-	(pngtclStubsPtr->png_read_initPtr) /* 184 */
+-#define png_read_init_2 \
+-	(pngtclStubsPtr->png_read_init_2Ptr) /* 185 */
+-/* Slot 186 is reserved */
+-/* Slot 187 is reserved */
+-#define png_create_struct \
+-	(pngtclStubsPtr->png_create_structPtr) /* 188 */
+-#define png_destroy_struct \
+-	(pngtclStubsPtr->png_destroy_structPtr) /* 189 */
+-#define png_create_struct_2 \
+-	(pngtclStubsPtr->png_create_struct_2Ptr) /* 190 */
+-#define png_destroy_struct_2 \
+-	(pngtclStubsPtr->png_destroy_struct_2Ptr) /* 191 */
+-#define png_info_destroy \
+-	(pngtclStubsPtr->png_info_destroyPtr) /* 192 */
+-#define png_zalloc \
+-	(pngtclStubsPtr->png_zallocPtr) /* 193 */
+-#define png_zfree \
+-	(pngtclStubsPtr->png_zfreePtr) /* 194 */
+-#define png_reset_crc \
+-	(pngtclStubsPtr->png_reset_crcPtr) /* 195 */
+-#define png_write_data \
+-	(pngtclStubsPtr->png_write_dataPtr) /* 196 */
+-#define png_read_data \
+-	(pngtclStubsPtr->png_read_dataPtr) /* 197 */
+-#define png_crc_read \
+-	(pngtclStubsPtr->png_crc_readPtr) /* 198 */
+-#define png_decompress_chunk \
+-	(pngtclStubsPtr->png_decompress_chunkPtr) /* 199 */
+-#define png_crc_finish \
+-	(pngtclStubsPtr->png_crc_finishPtr) /* 200 */
+-#define png_crc_error \
+-	(pngtclStubsPtr->png_crc_errorPtr) /* 201 */
+-#define png_calculate_crc \
+-	(pngtclStubsPtr->png_calculate_crcPtr) /* 202 */
+-#define png_flush \
+-	(pngtclStubsPtr->png_flushPtr) /* 203 */
++	(pngtclStubsPtr->png_get_libpng_verPtr) /* 183 */
++#define png_permit_mng_features \
++	(pngtclStubsPtr->png_permit_mng_featuresPtr) /* 184 */
++#define png_set_strip_error_numbers \
++	(pngtclStubsPtr->png_set_strip_error_numbersPtr) /* 185 */
++#define png_set_user_limits \
++	(pngtclStubsPtr->png_set_user_limitsPtr) /* 186 */
++#define png_get_user_width_max \
++	(pngtclStubsPtr->png_get_user_width_maxPtr) /* 187 */
++#define png_get_user_height_max \
++	(pngtclStubsPtr->png_get_user_height_maxPtr) /* 188 */
++#define png_set_chunk_cache_max \
++	(pngtclStubsPtr->png_set_chunk_cache_maxPtr) /* 189 */
++#define png_get_chunk_cache_max \
++	(pngtclStubsPtr->png_get_chunk_cache_maxPtr) /* 190 */
++#define png_set_chunk_malloc_max \
++	(pngtclStubsPtr->png_set_chunk_malloc_maxPtr) /* 191 */
++#define png_get_chunk_malloc_max \
++	(pngtclStubsPtr->png_get_chunk_malloc_maxPtr) /* 192 */
++#define png_get_pixels_per_inch \
++	(pngtclStubsPtr->png_get_pixels_per_inchPtr) /* 193 */
++#define png_get_x_pixels_per_inch \
++	(pngtclStubsPtr->png_get_x_pixels_per_inchPtr) /* 194 */
++#define png_get_y_pixels_per_inch \
++	(pngtclStubsPtr->png_get_y_pixels_per_inchPtr) /* 195 */
++#define png_get_x_offset_inches \
++	(pngtclStubsPtr->png_get_x_offset_inchesPtr) /* 196 */
++#define png_get_y_offset_inches \
++	(pngtclStubsPtr->png_get_y_offset_inchesPtr) /* 197 */
++#define png_get_pHYs_dpi \
++	(pngtclStubsPtr->png_get_pHYs_dpiPtr) /* 198 */
++#define png_get_io_state \
++	(pngtclStubsPtr->png_get_io_statePtr) /* 199 */
++#define png_get_io_chunk_name \
++	(pngtclStubsPtr->png_get_io_chunk_namePtr) /* 200 */
++#define png_get_uint_32 \
++	(pngtclStubsPtr->png_get_uint_32Ptr) /* 201 */
++#define png_get_uint_16 \
++	(pngtclStubsPtr->png_get_uint_16Ptr) /* 202 */
++#define png_get_int_32 \
++	(pngtclStubsPtr->png_get_int_32Ptr) /* 203 */
++#define png_get_uint_31 \
++	(pngtclStubsPtr->png_get_uint_31Ptr) /* 204 */
+ #define png_save_uint_32 \
+-	(pngtclStubsPtr->png_save_uint_32Ptr) /* 204 */
++	(pngtclStubsPtr->png_save_uint_32Ptr) /* 205 */
+ #define png_save_int_32 \
+-	(pngtclStubsPtr->png_save_int_32Ptr) /* 205 */
++	(pngtclStubsPtr->png_save_int_32Ptr) /* 206 */
+ #define png_save_uint_16 \
+-	(pngtclStubsPtr->png_save_uint_16Ptr) /* 206 */
+-#define png_write_sig \
+-	(pngtclStubsPtr->png_write_sigPtr) /* 207 */
+-#define png_write_IHDR \
+-	(pngtclStubsPtr->png_write_IHDRPtr) /* 208 */
+-#define png_write_PLTE \
+-	(pngtclStubsPtr->png_write_PLTEPtr) /* 209 */
+-#define png_write_IDAT \
+-	(pngtclStubsPtr->png_write_IDATPtr) /* 210 */
+-#define png_write_IEND \
+-	(pngtclStubsPtr->png_write_IENDPtr) /* 211 */
+-#define png_write_gAMA \
+-	(pngtclStubsPtr->png_write_gAMAPtr) /* 212 */
+-#define png_write_gAMA_fixed \
+-	(pngtclStubsPtr->png_write_gAMA_fixedPtr) /* 213 */
+-#define png_write_sBIT \
+-	(pngtclStubsPtr->png_write_sBITPtr) /* 214 */
+-#define png_write_cHRM \
+-	(pngtclStubsPtr->png_write_cHRMPtr) /* 215 */
+-#define png_write_cHRM_fixed \
+-	(pngtclStubsPtr->png_write_cHRM_fixedPtr) /* 216 */
+-#define png_write_sRGB \
+-	(pngtclStubsPtr->png_write_sRGBPtr) /* 217 */
+-#define png_write_iCCP \
+-	(pngtclStubsPtr->png_write_iCCPPtr) /* 218 */
+-#define png_write_sPLT \
+-	(pngtclStubsPtr->png_write_sPLTPtr) /* 219 */
+-#define png_write_tRNS \
+-	(pngtclStubsPtr->png_write_tRNSPtr) /* 220 */
+-#define png_write_bKGD \
+-	(pngtclStubsPtr->png_write_bKGDPtr) /* 221 */
+-#define png_write_hIST \
+-	(pngtclStubsPtr->png_write_hISTPtr) /* 222 */
+-#define png_check_keyword \
+-	(pngtclStubsPtr->png_check_keywordPtr) /* 223 */
+-#define png_write_tEXt \
+-	(pngtclStubsPtr->png_write_tEXtPtr) /* 224 */
+-#define png_write_zTXt \
+-	(pngtclStubsPtr->png_write_zTXtPtr) /* 225 */
+-#define png_write_iTXt \
+-	(pngtclStubsPtr->png_write_iTXtPtr) /* 226 */
+-#define png_write_oFFs \
+-	(pngtclStubsPtr->png_write_oFFsPtr) /* 227 */
+-#define png_write_pCAL \
+-	(pngtclStubsPtr->png_write_pCALPtr) /* 228 */
+-#define png_write_pHYs \
+-	(pngtclStubsPtr->png_write_pHYsPtr) /* 229 */
+-#define png_write_tIME \
+-	(pngtclStubsPtr->png_write_tIMEPtr) /* 230 */
+-#define png_write_sCAL \
+-	(pngtclStubsPtr->png_write_sCALPtr) /* 231 */
+-#define png_write_sCAL_s \
+-	(pngtclStubsPtr->png_write_sCAL_sPtr) /* 232 */
+-#define png_write_finish_row \
+-	(pngtclStubsPtr->png_write_finish_rowPtr) /* 233 */
+-#define png_write_start_row \
+-	(pngtclStubsPtr->png_write_start_rowPtr) /* 234 */
+-#define png_build_gamma_table \
+-	(pngtclStubsPtr->png_build_gamma_tablePtr) /* 235 */
+-#define png_combine_row \
+-	(pngtclStubsPtr->png_combine_rowPtr) /* 236 */
+-#define png_do_read_interlace \
+-	(pngtclStubsPtr->png_do_read_interlacePtr) /* 237 */
+-#define png_do_write_interlace \
+-	(pngtclStubsPtr->png_do_write_interlacePtr) /* 238 */
+-#define png_read_filter_row \
+-	(pngtclStubsPtr->png_read_filter_rowPtr) /* 239 */
+-#define png_write_find_filter \
+-	(pngtclStubsPtr->png_write_find_filterPtr) /* 240 */
+-#define png_write_filtered_row \
+-	(pngtclStubsPtr->png_write_filtered_rowPtr) /* 241 */
+-#define png_read_finish_row \
+-	(pngtclStubsPtr->png_read_finish_rowPtr) /* 242 */
+-#define png_read_start_row \
+-	(pngtclStubsPtr->png_read_start_rowPtr) /* 243 */
+-#define png_read_transform_info \
+-	(pngtclStubsPtr->png_read_transform_infoPtr) /* 244 */
+-#define png_do_read_filler \
+-	(pngtclStubsPtr->png_do_read_fillerPtr) /* 245 */
+-#define png_do_read_swap_alpha \
+-	(pngtclStubsPtr->png_do_read_swap_alphaPtr) /* 246 */
+-#define png_do_write_swap_alpha \
+-	(pngtclStubsPtr->png_do_write_swap_alphaPtr) /* 247 */
+-#define png_do_read_invert_alpha \
+-	(pngtclStubsPtr->png_do_read_invert_alphaPtr) /* 248 */
+-#define png_do_write_invert_alpha \
+-	(pngtclStubsPtr->png_do_write_invert_alphaPtr) /* 249 */
+-#define png_do_strip_filler \
+-	(pngtclStubsPtr->png_do_strip_fillerPtr) /* 250 */
+-#define png_do_swap \
+-	(pngtclStubsPtr->png_do_swapPtr) /* 251 */
+-#define png_do_packswap \
+-	(pngtclStubsPtr->png_do_packswapPtr) /* 252 */
+-#define png_do_rgb_to_gray \
+-	(pngtclStubsPtr->png_do_rgb_to_grayPtr) /* 253 */
+-#define png_do_gray_to_rgb \
+-	(pngtclStubsPtr->png_do_gray_to_rgbPtr) /* 254 */
+-#define png_do_unpack \
+-	(pngtclStubsPtr->png_do_unpackPtr) /* 255 */
+-#define png_do_unshift \
+-	(pngtclStubsPtr->png_do_unshiftPtr) /* 256 */
+-#define png_do_invert \
+-	(pngtclStubsPtr->png_do_invertPtr) /* 257 */
+-#define png_do_chop \
+-	(pngtclStubsPtr->png_do_chopPtr) /* 258 */
+-#define png_do_dither \
+-	(pngtclStubsPtr->png_do_ditherPtr) /* 259 */
+-#define png_correct_palette \
+-	(pngtclStubsPtr->png_correct_palettePtr) /* 260 */
+-#define png_do_bgr \
+-	(pngtclStubsPtr->png_do_bgrPtr) /* 261 */
+-#define png_do_pack \
+-	(pngtclStubsPtr->png_do_packPtr) /* 262 */
+-#define png_do_shift \
+-	(pngtclStubsPtr->png_do_shiftPtr) /* 263 */
+-#define png_do_background \
+-	(pngtclStubsPtr->png_do_backgroundPtr) /* 264 */
+-#define png_do_gamma \
+-	(pngtclStubsPtr->png_do_gammaPtr) /* 265 */
+-#define png_do_expand_palette \
+-	(pngtclStubsPtr->png_do_expand_palettePtr) /* 266 */
+-#define png_do_expand \
+-	(pngtclStubsPtr->png_do_expandPtr) /* 267 */
+-#define png_handle_IHDR \
+-	(pngtclStubsPtr->png_handle_IHDRPtr) /* 268 */
+-#define png_handle_PLTE \
+-	(pngtclStubsPtr->png_handle_PLTEPtr) /* 269 */
+-#define png_handle_IEND \
+-	(pngtclStubsPtr->png_handle_IENDPtr) /* 270 */
+-#define png_handle_bKGD \
+-	(pngtclStubsPtr->png_handle_bKGDPtr) /* 271 */
+-#define png_handle_cHRM \
+-	(pngtclStubsPtr->png_handle_cHRMPtr) /* 272 */
+-#define png_handle_gAMA \
+-	(pngtclStubsPtr->png_handle_gAMAPtr) /* 273 */
+-#define png_handle_hIST \
+-	(pngtclStubsPtr->png_handle_hISTPtr) /* 274 */
+-#define png_handle_iCCP \
+-	(pngtclStubsPtr->png_handle_iCCPPtr) /* 275 */
+-#define png_handle_iTXt \
+-	(pngtclStubsPtr->png_handle_iTXtPtr) /* 276 */
+-#define png_handle_oFFs \
+-	(pngtclStubsPtr->png_handle_oFFsPtr) /* 277 */
+-#define png_handle_pCAL \
+-	(pngtclStubsPtr->png_handle_pCALPtr) /* 278 */
+-#define png_handle_pHYs \
+-	(pngtclStubsPtr->png_handle_pHYsPtr) /* 279 */
+-#define png_handle_sBIT \
+-	(pngtclStubsPtr->png_handle_sBITPtr) /* 280 */
+-#define png_handle_sCAL \
+-	(pngtclStubsPtr->png_handle_sCALPtr) /* 281 */
+-#define png_handle_sPLT \
+-	(pngtclStubsPtr->png_handle_sPLTPtr) /* 282 */
+-#define png_handle_sRGB \
+-	(pngtclStubsPtr->png_handle_sRGBPtr) /* 283 */
+-#define png_handle_tEXt \
+-	(pngtclStubsPtr->png_handle_tEXtPtr) /* 284 */
+-#define png_handle_tIME \
+-	(pngtclStubsPtr->png_handle_tIMEPtr) /* 285 */
+-#define png_handle_tRNS \
+-	(pngtclStubsPtr->png_handle_tRNSPtr) /* 286 */
+-#define png_handle_zTXt \
+-	(pngtclStubsPtr->png_handle_zTXtPtr) /* 287 */
+-#define png_handle_as_unknown \
+-	(pngtclStubsPtr->png_handle_as_unknownPtr) /* 288 */
+-#define png_handle_unknown \
+-	(pngtclStubsPtr->png_handle_unknownPtr) /* 289 */
+-#define png_check_chunk_name \
+-	(pngtclStubsPtr->png_check_chunk_namePtr) /* 290 */
+-#define png_do_read_transformations \
+-	(pngtclStubsPtr->png_do_read_transformationsPtr) /* 291 */
+-#define png_do_write_transformations \
+-	(pngtclStubsPtr->png_do_write_transformationsPtr) /* 292 */
+-#define png_init_read_transformations \
+-	(pngtclStubsPtr->png_init_read_transformationsPtr) /* 293 */
+-#define png_push_read_chunk \
+-	(pngtclStubsPtr->png_push_read_chunkPtr) /* 294 */
+-#define png_push_read_sig \
+-	(pngtclStubsPtr->png_push_read_sigPtr) /* 295 */
+-#define png_push_check_crc \
+-	(pngtclStubsPtr->png_push_check_crcPtr) /* 296 */
+-#define png_push_crc_skip \
+-	(pngtclStubsPtr->png_push_crc_skipPtr) /* 297 */
+-#define png_push_crc_finish \
+-	(pngtclStubsPtr->png_push_crc_finishPtr) /* 298 */
+-#define png_push_fill_buffer \
+-	(pngtclStubsPtr->png_push_fill_bufferPtr) /* 299 */
+-#define png_push_save_buffer \
+-	(pngtclStubsPtr->png_push_save_bufferPtr) /* 300 */
+-#define png_push_restore_buffer \
+-	(pngtclStubsPtr->png_push_restore_bufferPtr) /* 301 */
+-#define png_push_read_IDAT \
+-	(pngtclStubsPtr->png_push_read_IDATPtr) /* 302 */
+-#define png_process_IDAT_data \
+-	(pngtclStubsPtr->png_process_IDAT_dataPtr) /* 303 */
+-#define png_push_process_row \
+-	(pngtclStubsPtr->png_push_process_rowPtr) /* 304 */
+-#define png_push_handle_unknown \
+-	(pngtclStubsPtr->png_push_handle_unknownPtr) /* 305 */
+-#define png_push_have_info \
+-	(pngtclStubsPtr->png_push_have_infoPtr) /* 306 */
+-#define png_push_have_end \
+-	(pngtclStubsPtr->png_push_have_endPtr) /* 307 */
+-#define png_push_have_row \
+-	(pngtclStubsPtr->png_push_have_rowPtr) /* 308 */
+-#define png_push_read_end \
+-	(pngtclStubsPtr->png_push_read_endPtr) /* 309 */
+-#define png_process_some_data \
+-	(pngtclStubsPtr->png_process_some_dataPtr) /* 310 */
+-#define png_read_push_finish_row \
+-	(pngtclStubsPtr->png_read_push_finish_rowPtr) /* 311 */
+-#define png_push_handle_tEXt \
+-	(pngtclStubsPtr->png_push_handle_tEXtPtr) /* 312 */
+-#define png_push_read_tEXt \
+-	(pngtclStubsPtr->png_push_read_tEXtPtr) /* 313 */
+-#define png_push_handle_zTXt \
+-	(pngtclStubsPtr->png_push_handle_zTXtPtr) /* 314 */
+-#define png_push_read_zTXt \
+-	(pngtclStubsPtr->png_push_read_zTXtPtr) /* 315 */
+-#define png_push_handle_iTXt \
+-	(pngtclStubsPtr->png_push_handle_iTXtPtr) /* 316 */
+-#define png_push_read_iTXt \
+-	(pngtclStubsPtr->png_push_read_iTXtPtr) /* 317 */
+-#define png_info_init_3 \
+-	(pngtclStubsPtr->png_info_init_3Ptr) /* 318 */
++	(pngtclStubsPtr->png_save_uint_16Ptr) /* 207 */
++#define png_set_gamma_fixed \
++	(pngtclStubsPtr->png_set_gamma_fixedPtr) /* 208 */
++#define png_set_filter_heuristics_fixed \
++	(pngtclStubsPtr->png_set_filter_heuristics_fixedPtr) /* 209 */
++#define png_get_pixel_aspect_ratio_fixed \
++	(pngtclStubsPtr->png_get_pixel_aspect_ratio_fixedPtr) /* 210 */
++#define png_get_x_offset_inches_fixed \
++	(pngtclStubsPtr->png_get_x_offset_inches_fixedPtr) /* 211 */
++#define png_get_y_offset_inches_fixed \
++	(pngtclStubsPtr->png_get_y_offset_inches_fixedPtr) /* 212 */
++#define png_set_sCAL_fixed \
++	(pngtclStubsPtr->png_set_sCAL_fixedPtr) /* 213 */
++#define png_get_sCAL_fixed \
++	(pngtclStubsPtr->png_get_sCAL_fixedPtr) /* 214 */
++#define png_set_background_fixed \
++	(pngtclStubsPtr->png_set_background_fixedPtr) /* 215 */
++#define png_get_io_chunk_type \
++	(pngtclStubsPtr->png_get_io_chunk_typePtr) /* 216 */
++#define png_get_current_row_number \
++	(pngtclStubsPtr->png_get_current_row_numberPtr) /* 217 */
++#define png_get_current_pass_number \
++	(pngtclStubsPtr->png_get_current_pass_numberPtr) /* 218 */
++#define png_process_data_pause \
++	(pngtclStubsPtr->png_process_data_pausePtr) /* 219 */
++#define png_process_data_skip \
++	(pngtclStubsPtr->png_process_data_skipPtr) /* 220 */
++#define png_set_expand_16 \
++	(pngtclStubsPtr->png_set_expand_16Ptr) /* 221 */
++#define png_set_text_compression_level \
++	(pngtclStubsPtr->png_set_text_compression_levelPtr) /* 222 */
++#define png_set_text_compression_mem_level \
++	(pngtclStubsPtr->png_set_text_compression_mem_levelPtr) /* 223 */
++#define png_set_text_compression_strategy \
++	(pngtclStubsPtr->png_set_text_compression_strategyPtr) /* 224 */
++#define png_set_text_compression_window_bits \
++	(pngtclStubsPtr->png_set_text_compression_window_bitsPtr) /* 225 */
++#define png_set_text_compression_method \
++	(pngtclStubsPtr->png_set_text_compression_methodPtr) /* 226 */
++#define png_set_alpha_mode \
++	(pngtclStubsPtr->png_set_alpha_modePtr) /* 227 */
++#define png_set_alpha_mode_fixed \
++	(pngtclStubsPtr->png_set_alpha_mode_fixedPtr) /* 228 */
++#define png_set_scale_16 \
++	(pngtclStubsPtr->png_set_scale_16Ptr) /* 229 */
++#define png_get_cHRM_XYZ \
++	(pngtclStubsPtr->png_get_cHRM_XYZPtr) /* 230 */
++#define png_get_cHRM_XYZ_fixed \
++	(pngtclStubsPtr->png_get_cHRM_XYZ_fixedPtr) /* 231 */
++#define png_set_cHRM_XYZ \
++	(pngtclStubsPtr->png_set_cHRM_XYZPtr) /* 232 */
++#define png_set_cHRM_XYZ_fixed \
++	(pngtclStubsPtr->png_set_cHRM_XYZ_fixedPtr) /* 233 */
+ 
+ #endif /* defined(USE_PNGTCL_STUBS) */
+ 
+diff -up tkimg1.4/libpng/pngtcl.decls.png15 tkimg1.4/libpng/pngtcl.decls
+--- tkimg1.4/libpng/pngtcl.decls.png15	2010-07-08 04:26:15.000000000 -0400
++++ tkimg1.4/libpng/pngtcl.decls	2011-12-07 16:26:43.173201112 -0500
+@@ -10,6 +10,8 @@
+ # the an index should never be reused for a different function in order
+ # to preserve backwards compatibility.
+ 
++# Completely updated to sync with libpng 1.5
++
+ library pngtcl
+ 
+ # Define the PNGTCL interface:
+@@ -20,14 +22,14 @@ scspec PNG_IMPEXP
+ #########################################################################
+ ###  PNG API
+ 
+-declare 0 {
++declare 1 {
+     png_uint_32 png_access_version_number(void)
+ }
+-declare 1 {
++declare 2 {
+     void png_set_sig_bytes(png_structp png_ptr, int num_bytes)
+ }
+-declare 2 {
+-    int png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check)
++declare 3 {
++    int png_sig_cmp(png_const_bytep sig, png_size_t start, png_size_t num_to_check)
+ }
+ declare 4 {
+     png_structp png_create_read_struct(png_const_charp user_png_ver,
+@@ -38,178 +40,194 @@ declare 5 {
+     	png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn)
+ }
+ declare 6 {
+-    png_size_t png_get_compression_buffer_size(png_structp png_ptr)
++    png_size_t png_get_compression_buffer_size(png_const_structp png_ptr)
+ }
+ declare 7 {
+     void png_set_compression_buffer_size(png_structp png_ptr, png_size_t size)
+ }
+ declare 8 {
++    jmp_buf* png_set_longjmp_fn(png_structp png_ptr,
++        png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)
++}
++declare 9 {
++    void png_longjmp(png_structp png_ptr, int val)
++}
++declare 10 {
+     int png_reset_zstream(png_structp png_ptr)
+ }
+-declare 9 generic {!PNG_USER_MEM_SUPPORTED} {
++declare 11 generic {!PNG_USER_MEM_SUPPORTED} {
+     png_structp png_create_read_struct_2(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)
+ }
+-declare 10 generic {!PNG_USER_MEM_SUPPORTED} {
++declare 12 generic {!PNG_USER_MEM_SUPPORTED} {
+     png_structp png_create_write_struct_2(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)
+ }
+-declare 11 {
+-    void png_write_chunk(png_structp png_ptr, png_bytep chunk_name,
+-    	png_bytep data, png_size_t length)
++declare 13 {
++    void png_write_sig(png_structp png_ptr)
+ }
+-declare 12 {
+-    void png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name,
++declare 14 {
++    void png_write_chunk(png_structp png_ptr, png_const_bytep chunk_name,
++    	png_const_bytep data, png_size_t length)
++}
++declare 15 {
++    void png_write_chunk_start(png_structp png_ptr, png_const_bytep chunk_name,
+     	png_uint_32 length)
+ }
+-declare 13 {
+-    void png_write_chunk_data(png_structp png_ptr, png_bytep data,
++declare 16 {
++    void png_write_chunk_data(png_structp png_ptr, png_const_bytep data,
+     	png_size_t length)
+ }
+-declare 14 {
++declare 17 {
+     void png_write_chunk_end(png_structp png_ptr)
+ }
+-declare 15 {
++declare 18 {
+     png_infop png_create_info_struct(png_structp png_ptr)
+ }
+-declare 17 {
++declare 19 {
++    void png_info_init_3(png_infopp info_ptr,
++        png_size_t png_info_struct_size)
++}
++declare 20 {
+     void png_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 18 {
++declare 21 {
+     void png_write_info(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 19 {
++declare 22 {
+     void png_read_info(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 20 generic {!PNG_TIME_RFC1123_SUPPORTED} {
+-    png_charp png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime)
++declare 23 generic {!PNG_TIME_RFC1123_SUPPORTED} {
++    png_const_charp png_convert_to_rfc1123(png_structp png_ptr, png_const_timep ptime)
+ }
+-declare 21 generic {_WIN32_WCE !PNG_WRITE_tIME_SUPPORTED} {
+-    void png_convert_from_struct_tm(png_timep ptime, struct tm FAR *ttime)
++declare 24 generic {_WIN32_WCE !PNG_WRITE_tIME_SUPPORTED} {
++    void png_convert_from_struct_tm(png_timep ptime, PNG_CONST struct tm FAR * ttime)
+ }
+-declare 22 generic {_WIN32_WCE !PNG_WRITE_tIME_SUPPORTED} {
++declare 25 generic {_WIN32_WCE !PNG_WRITE_tIME_SUPPORTED} {
+     void png_convert_from_time_t(png_timep ptime, time_t ttime)
+ }
+-declare 23 generic {!PNG_READ_EXPAND_SUPPORTED} {
++declare 26 generic {!PNG_READ_EXPAND_SUPPORTED} {
+     void png_set_expand(png_structp png_ptr)
+ }
+-declare 25 generic {!PNG_READ_EXPAND_SUPPORTED} {
++declare 27 generic {!PNG_READ_EXPAND_SUPPORTED} {
++    void png_set_expand_gray_1_2_4_to_8(png_structp png_ptr)
++}
++declare 28 generic {!PNG_READ_EXPAND_SUPPORTED} {
+     void png_set_palette_to_rgb(png_structp png_ptr)
+ }
+-declare 26 generic {!PNG_READ_EXPAND_SUPPORTED} {
++declare 29 generic {!PNG_READ_EXPAND_SUPPORTED} {
+     void png_set_tRNS_to_alpha(png_structp png_ptr)
+ }
+-declare 27 generic {{!PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED}} {
++declare 30 generic {{!PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED}} {
+     void png_set_bgr(png_structp png_ptr)
+ }
+-declare 28 generic {!PNG_READ_GRAY_TO_RGB_SUPPORTED} {
++declare 31 generic {!PNG_READ_GRAY_TO_RGB_SUPPORTED} {
+     void png_set_gray_to_rgb(png_structp png_ptr)
+ }
+-declare 29 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++declare 32 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+     void png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red, double green)
+ }
+-declare 30 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED} {
++declare 33 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED} {
+     void png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
+     	png_fixed_point red, png_fixed_point green)
+ }
+-declare 31 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED} {
+-    png_byte png_get_rgb_to_gray_status(png_structp png_ptr)
++declare 34 generic {!PNG_READ_RGB_TO_GRAY_SUPPORTED} {
++    png_byte png_get_rgb_to_gray_status(png_const_structp png_ptr)
+ }
+-declare 32 {
++declare 35 generic {!PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED} {
+     void png_build_grayscale_palette(int bit_depth, png_colorp palette)
+ }
+-declare 33 generic {!PNG_READ_STRIP_ALPHA_SUPPORTED} {
++declare 36 generic {!PNG_READ_ALPHA_MODE_SUPPORTED} {
+     void png_set_strip_alpha(png_structp png_ptr)
+ }
+-declare 34 generic {{!PNG_READ_SWAP_ALPHA_SUPPORTED !PNG_WRITE_SWAP_ALPHA_SUPPORTED}} {
++declare 37 generic {{!PNG_READ_SWAP_ALPHA_SUPPORTED !PNG_WRITE_SWAP_ALPHA_SUPPORTED}} {
+     void png_set_swap_alpha(png_structp png_ptr)
+ }
+-declare 35 generic {{!PNG_READ_INVERT_ALPHA_SUPPORTED !PNG_WRITE_INVERT_ALPHA_SUPPORTED}} {
++declare 38 generic {{!PNG_READ_INVERT_ALPHA_SUPPORTED !PNG_WRITE_INVERT_ALPHA_SUPPORTED}} {
+     void png_set_invert_alpha(png_structp png_ptr)
+ }
+-declare 36 generic {{!PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED}} {
++declare 39 generic {{!PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED}} {
+     void png_set_filler(png_structp png_ptr, png_uint_32 filler, int flags)
+ }
+-declare 37 generic {{!PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED}} {
++declare 40 generic {{!PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED}} {
++    void png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int flags)
++}
++declare 41 generic {{!PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED}} {
+     void png_set_swap(png_structp png_ptr)
+ }
+-declare 38 generic {{!PNG_READ_PACK_SUPPORTED !PNG_WRITE_PACK_SUPPORTED}} {
++declare 42 generic {{!PNG_READ_PACK_SUPPORTED !PNG_WRITE_PACK_SUPPORTED}} {
+     void png_set_packing(png_structp png_ptr)
+ }
+-declare 39 generic {{!PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED}} {
++declare 43 generic {{!PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED}} {
+     void png_set_packswap(png_structp png_ptr)
+ }
+-declare 40 generic {{!PNG_READ_SHIFT_SUPPORTED !PNG_WRITE_SHIFT_SUPPORTED}} {
+-    void png_set_shift(png_structp png_ptr, png_color_8p true_bits)
++declare 44 generic {{!PNG_READ_SHIFT_SUPPORTED !PNG_WRITE_SHIFT_SUPPORTED}} {
++    void png_set_shift(png_structp png_ptr, png_const_color_8p true_bits)
+ }
+-declare 41 generic {{!PNG_READ_INTERLACING_SUPPORTED !PNG_WRITE_INTERLACING_SUPPORTED}} {
++declare 45 generic {{!PNG_READ_INTERLACING_SUPPORTED !PNG_WRITE_INTERLACING_SUPPORTED}} {
+     int png_set_interlace_handling(png_structp png_ptr)
+ }
+-declare 42 generic {{!PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED}} {
++declare 46 generic {{!PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED}} {
+     void png_set_invert_mono(png_structp png_ptr)
+ }
+-declare 43 generic {!PNG_READ_BACKGROUND_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_set_background(png_structp png_ptr, png_color_16p background_color,
++declare 47 generic {!PNG_READ_BACKGROUND_SUPPORTED} {
++    void png_set_background(png_structp png_ptr, png_const_color_16p background_color,
+     	int background_gamma_code, int need_expand, double background_gamma)
+ }
+-declare 44 generic {!PNG_READ_16_TO_8_SUPPORTED} {
++declare 48 generic {!PNG_READ_STRIP_16_TO_8_SUPPORTED} {
+     void png_set_strip_16(png_structp png_ptr)
+ }
+-declare 45 generic {!PNG_READ_DITHER_SUPPORTED} {
+-    void png_set_quantize(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither)
+-}
+-declare 46 generic {!PNG_READ_GAMMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_set_gamma(png_structp png_ptr, double screen_gamma, double default_file_gamma)
++declare 49 generic {!PNG_READ_QUANTIZE_SUPPORTED} {
++    void png_set_quantize(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_const_uint_16p histogram, int full_quantize)
+ }
+-declare 47 generic {{!PNG_READ_EMPTY_PLTE_SUPPORTED !PNG_WRITE_EMPTY_PLTE_SUPPORTED}} {
+-    void png_permit_empty_plte(png_structp png_ptr, int empty_plte_permitted)
++declare 50 generic {!PNG_READ_GAMMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    void png_set_gamma(png_structp png_ptr, double screen_gamma, double override_file_gamma)
+ }
+-declare 48 generic {!PNG_WRITE_FLUSH_SUPPORTED} {
++declare 51 generic {!PNG_WRITE_FLUSH_SUPPORTED} {
+     void png_set_flush(png_structp png_ptr, int nrows)
+ }
+-declare 49 generic {!PNG_WRITE_FLUSH_SUPPORTED} {
++declare 52 generic {!PNG_WRITE_FLUSH_SUPPORTED} {
+     void png_write_flush(png_structp png_ptr)
+ }
+-declare 50 {
++declare 53 {
+     void png_start_read_image(png_structp png_ptr)
+ }
+-declare 51 {
++declare 54 {
+     void png_read_update_info(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 52 {
++declare 55 generic {!PNG_SEQUENTIAL_READ_SUPPORTED} {
+     void png_read_rows(png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)
+ }
+-declare 53 {
++declare 56 generic {!PNG_SEQUENTIAL_READ_SUPPORTED} {
+     void png_read_row(png_structp png_ptr, png_bytep row, png_bytep display_row)
+ }
+-declare 54 {
++declare 57 generic {!PNG_SEQUENTIAL_READ_SUPPORTED} {
+     void png_read_image(png_structp png_ptr, png_bytepp image)
+ }
+-declare 55 {
+-    void png_write_row(png_structp png_ptr, png_bytep row)
++declare 58 {
++    void png_write_row(png_structp png_ptr, png_const_bytep row)
+ }
+-declare 56 {
++declare 59 {
+     void png_write_rows(png_structp png_ptr, png_bytepp row, png_uint_32 num_rows)
+ }
+-declare 57 {
++declare 60 {
+     void png_write_image(png_structp png_ptr, png_bytepp image)
+ }
+-declare 58 {
++declare 61 {
+     void png_write_end(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 59 {
++declare 62 generic {!PNG_SEQUENTIAL_READ_SUPPORTED} {
+     void png_read_end(png_structp png_ptr, png_infop info_ptr)
+ }
+-declare 60 {
++declare 63 {
+     void png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr)
+ }
+-declare 61 {
+-    void png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
+-    	png_infopp end_info_ptr_ptr)
++declare 64 {
++    void png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)
+ }
+-declare 63 {
++declare 65 {
+     void png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
+ }
+ declare 66 {
+@@ -220,36 +238,34 @@ declare 67 {
+ }
+ declare 68 generic {!PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+     void png_set_filter_heuristics(png_structp png_ptr, int heuristic_method,
+-    	int num_weights, png_doublep filter_weights, png_doublep filter_costs)
++    	int num_weights, png_const_doublep filter_weights, png_const_doublep filter_costs)
+ }
+-declare 69 {
++declare 69 generic {!PNG_WRITE_SUPPORTED} {
+     void png_set_compression_level(png_structp png_ptr, int level)
+ }
+-declare 70 {
++declare 70 generic {!PNG_WRITE_SUPPORTED} {
+     void png_set_compression_mem_level(png_structp png_ptr, int mem_level)
+ }
+-declare 71 {
++declare 71 generic {!PNG_WRITE_SUPPORTED} {
+     void png_set_compression_strategy(png_structp png_ptr, int strategy)
+ }
+-declare 72 {
++declare 72 generic {!PNG_WRITE_SUPPORTED} {
+     void png_set_compression_window_bits(png_structp png_ptr, int window_bits)
+ }
+-declare 73 {
++declare 73 generic {!PNG_WRITE_SUPPORTED} {
+     void png_set_compression_method(png_structp png_ptr, int method)
+ }
+-declare 74 generic {PNG_NO_STDIO} {
++declare 74 generic {!PNG_STDIO_SUPPORTED} {
+     void png_init_io(png_structp png_ptr, png_FILE_p fp)
+ }
+ declare 75 {
+-    void png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
+-    	png_error_ptr error_fn, png_error_ptr warning_fn)
++    void png_set_error_fn(png_structp png_ptr, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)
+ }
+ declare 76 {
+-    png_voidp png_get_error_ptr(png_structp png_ptr)
++    png_voidp png_get_error_ptr(png_const_structp png_ptr)
+ }
+ declare 77 {
+-    void png_set_write_fn(png_structp png_ptr, png_voidp io_ptr,
+-    	png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
++    void png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)
+ }
+ declare 78 {
+     void png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn)
+@@ -264,714 +280,460 @@ declare 81 {
+     void png_set_write_status_fn(png_structp png_ptr, png_write_status_ptr write_row_fn)
+ }
+ declare 82 generic {!PNG_USER_MEM_SUPPORTED} {
+-    void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr,
+-    	png_malloc_ptr malloc_fn, png_free_ptr free_fn)
++    void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)
+ }
+ declare 83 generic {!PNG_USER_MEM_SUPPORTED} {
+-    png_voidp png_get_mem_ptr(png_structp png_ptr)
++    png_voidp png_get_mem_ptr(png_const_structp png_ptr)
+ }
+-declare 84 generic {{!PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED}} {
+-    void png_set_read_user_transform_fn(png_structp png_ptr,
+-    	png_user_transform_ptr read_user_transform_fn)
++declare 84 generic {!PNG_READ_USER_TRANSFORM_SUPPORTED} {
++    void png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr read_user_transform_fn)
+ }
+-declare 85 generic {{!PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED}} {
+-    void png_set_write_user_transform_fn(png_structp png_ptr,
+-    	png_user_transform_ptr write_user_transform_fn)
++declare 85 generic {!PNG_WRITE_USER_TRANSFORM_SUPPORTED} {
++    void png_set_write_user_transform_fn(png_structp png_ptr, png_user_transform_ptr write_user_transform_fn)
+ }
+-declare 86 generic {{!PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED}} {
+-    void png_set_user_transform_info(png_structp png_ptr, png_voidp user_transform_ptr,
+-    	int user_transform_depth, int user_transform_channels)
++declare 86 generic {!PNG_USER_TRANSFORM_PTR_SUPPORTED} {
++    void png_set_user_transform_info(png_structp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels)
+ }
+-declare 87 generic {{!PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED}} {
+-    png_voidp png_get_user_transform_ptr(png_structp png_ptr)
++declare 87 generic {!PNG_USER_TRANSFORM_PTR_SUPPORTED} {
++    png_voidp png_get_user_transform_ptr(png_const_structp png_ptr)
+ }
+-declare 88 generic {!PNG_READ_USER_CHUNKS_SUPPORTED} {
+-    void png_set_read_user_chunk_fn(png_structp png_ptr, png_voidp user_chunk_ptr,
+-    	png_user_chunk_ptr read_user_chunk_fn)
++declare 88 generic {!PNG_USER_CHUNKS_SUPPORTED} {
++    void png_set_read_user_chunk_fn(png_structp png_ptr, png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)
+ }
+-declare 89 generic {!PNG_READ_USER_CHUNKS_SUPPORTED} {
+-    png_voidp png_get_user_chunk_ptr(png_structp png_ptr)
++declare 89 generic {!PNG_USER_CHUNKS_SUPPORTED} {
++    png_voidp png_get_user_chunk_ptr(png_const_structp png_ptr)
+ }
+ declare 90 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_set_progressive_read_fn(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)
++    void png_set_progressive_read_fn(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)
+ }
+ declare 91 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    png_voidp png_get_progressive_ptr(png_structp png_ptr)
++    png_voidp png_get_progressive_ptr(png_const_structp png_ptr)
+ }
+ declare 92 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_process_data(png_structp png_ptr, png_infop info_ptr,
+-    	png_bytep buffer, png_size_t buffer_size)
++    void png_process_data(png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)
+ }
+-declare 93 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_progressive_combine_row(png_structp png_ptr, png_bytep old_row,
+-    	png_bytep new_row)
++declare 93 generic {!PNG_PROGRESSIVE_READ_SUPPORTED !PNG_READ_INTERLACING_SUPPORTED} {
++    void png_progressive_combine_row(png_structp png_ptr, png_bytep old_row, png_const_bytep new_row)
+ }
+ declare 94 {
+     png_voidp png_malloc(png_structp png_ptr, png_alloc_size_t size)
+ }
+ declare 95 {
+-    void png_free(png_structp png_ptr, png_voidp ptr)
++    png_voidp png_calloc(png_structp png_ptr, png_alloc_size_t size)
+ }
+ declare 96 {
++    png_voidp png_malloc_warn(png_structp png_ptr, png_alloc_size_t size)
++}
++declare 97 {
++    void png_free(png_structp png_ptr, png_voidp ptr)
++}
++declare 98 {
+     void png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num)
+ }
+-declare 97 generic {!PNG_FREE_ME_SUPPORTED} {
++declare 99 {
+     void png_data_freer(png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask)
+ }
+-declare 98 generic {!PNG_USER_MEM_SUPPORTED} {
+-    png_voidp png_malloc_default(png_structp png_ptr, png_uint_32 size)
++declare 100 generic {!PNG_USER_MEM_SUPPORTED} {
++    png_voidp png_malloc_default(png_structp png_ptr, png_alloc_size_t size)
+ }
+-declare 99 generic {!PNG_USER_MEM_SUPPORTED} {
++declare 101 generic {!PNG_USER_MEM_SUPPORTED} {
+     void png_free_default(png_structp png_ptr, png_voidp ptr)
+ }
+-declare 102 generic {!USE_FAR_KEYWORD} {
+-    void *png_far_to_near(png_structp png_ptr,png_voidp ptr, int check)
+-}
+-declare 103 {
+-    void png_error(png_structp png_ptr, png_const_charp error)
++declare 102 generic {!PNG_ERROR_TEXT_SUPPORTED} {
++    void png_error(png_structp png_ptr, png_const_charp error_message)
+ }
+-declare 104 {
++declare 103 generic {!PNG_ERROR_TEXT_SUPPORTED} {
+     void png_chunk_error(png_structp png_ptr, png_const_charp error)
+ }
+-declare 105 {
+-    void png_warning(png_structp png_ptr, png_const_charp message)
++declare 104 generic {PNG_ERROR_TEXT_SUPPORTED} {
++    void png_err(png_structp png_ptr)
+ }
+-declare 106 {
+-    void png_chunk_warning(png_structp png_ptr, png_const_charp message)
++declare 105 generic {!PNG_WARNINGS_SUPPORTED} {
++    void png_warning(png_structp png_ptr, png_const_charp warning_message)
+ }
+-declare 107 {
+-    png_uint_32 png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag)
++declare 106 generic {!PNG_WARNINGS_SUPPORTED} {
++    void png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
+ }
+-declare 108 {
+-    png_size_t png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
++declare 107 generic {!PNG_BENIGN_ERRORS_SUPPORTED} {
++    void png_benign_error(png_structp png_ptr, png_const_charp warning_message)
+ }
+-declare 109 generic {!PNG_INFO_IMAGE_SUPPORTED} {
+-    png_bytepp png_get_rows(png_structp png_ptr, png_infop info_ptr)
++declare 108 generic {!PNG_BENIGN_ERRORS_SUPPORTED} {
++    void png_chunk_benign_error(png_structp png_ptr, png_const_charp warning_message)
+ }
+-declare 110 generic {!PNG_INFO_IMAGE_SUPPORTED} {
+-    void png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
++declare 109 generic {!PNG_BENIGN_ERRORS_SUPPORTED} {
++    void png_set_benign_errors(png_structp png_ptr, int allowed)
++}
++declare 110 {
++    png_uint_32 png_get_valid(png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 flag)
+ }
+ declare 111 {
+-    png_byte png_get_channels(png_structp png_ptr, png_infop info_ptr)
++    png_size_t png_get_rowbytes(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 112 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_uint_32 png_get_image_width(png_structp png_ptr, png_infop info_ptr)
++declare 112 generic {!PNG_INFO_IMAGE_SUPPORTED} {
++    png_bytepp png_get_rows(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 113 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_uint_32 png_get_image_height(png_structp png_ptr, png_infop info_ptr)
++declare 113 generic {!PNG_INFO_IMAGE_SUPPORTED} {
++    void png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
+ }
+-declare 114 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_byte png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
++declare 114 {
++    png_byte png_get_channels(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 115 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_byte png_get_color_type(png_structp png_ptr, png_infop info_ptr)
++    png_uint_32 png_get_image_width(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 116 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_byte png_get_filter_type(png_structp png_ptr, png_infop info_ptr)
++    png_uint_32 png_get_image_height(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 117 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_byte png_get_interlace_type(png_structp png_ptr, png_infop info_ptr)
++    png_byte png_get_bit_depth(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 118 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_byte png_get_compression_type(png_structp png_ptr, png_infop info_ptr)
++    png_byte png_get_color_type(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 119 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_uint_32 png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
++    png_byte png_get_filter_type(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 120 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_uint_32 png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
++    png_byte png_get_interlace_type(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 121 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_uint_32 png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
++    png_byte png_get_compression_type(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 122 generic {!PNG_EASY_ACCESS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    float png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr)
++declare 122 generic {!PNG_EASY_ACCESS_SUPPORTED} {
++    png_uint_32 png_get_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 123 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_int_32 png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr)
++    png_uint_32 png_get_x_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 124 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_int_32 png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr)
++    png_uint_32 png_get_y_pixels_per_meter(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 125 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_int_32 png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr)
++declare 125 generic {!PNG_EASY_ACCESS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    float png_get_pixel_aspect_ratio(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+ declare 126 generic {!PNG_EASY_ACCESS_SUPPORTED} {
+-    png_int_32 png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr)
+-}
+-declare 127 {
+-    png_bytep png_get_signature(png_structp png_ptr, png_infop info_ptr)
+-}
+-declare 128 generic {!PNG_READ_bKGD_SUPPORTED} {
+-    png_uint_32 png_get_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p *background)
+-}
+-declare 129 generic {!PNG_bKGD_SUPPORTED} {
+-    void png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background)
+-}
+-declare 130 generic {!PNG_READ_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    png_uint_32 png_get_cHRM(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)
+-}
+-declare 131 generic {!PNG_READ_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    png_uint_32 png_get_cHRM_fixed(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)
+-}
+-declare 132 generic {!PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_set_cHRM(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)
+-}
+-declare 133 generic {!PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    void png_set_cHRM_fixed(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)
+-}
+-declare 134 generic {!PNG_READ_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    png_uint_32 png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma)
+-}
+-declare 135 generic {!PNG_READ_gAMA_SUPPORTED} {
+-    png_uint_32 png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point *int_file_gamma)
+-}
+-declare 136 generic {!PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
+-}
+-declare 137 generic {!PNG_gAMA_SUPPORTED} {
+-    void png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma)
+-}
+-declare 138 generic {!PNG_READ_hIST_SUPPORTED} {
+-    png_uint_32 png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist)
+-}
+-declare 139 generic {!PNG_hIST_SUPPORTED} {
+-    void png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist)
+-}
+-declare 140 {
+-    png_uint_32 png_get_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_type, int *compression_type, int *filter_type)
+-}
+-declare 141 {
+-    void png_set_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type)
+-}
+-declare 142 generic {!PNG_READ_oFFs_SUPPORTED} {
+-    png_uint_32 png_get_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
+-}
+-declare 143 generic {!PNG_oFFs_SUPPORTED} {
+-    void png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type)
+-}
+-declare 144 generic {!PNG_READ_pCAL_SUPPORTED} {
+-    png_uint_32 png_get_pCAL(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)
+-}
+-declare 145 generic {!PNG_pCAL_SUPPORTED} {
+-    void png_set_pCAL(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)
+-}
+-declare 146 generic {!PNG_READ_pHYs_SUPPORTED} {
+-    png_uint_32 png_get_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
+-}
+-declare 147 generic {!PNG_pHYs_SUPPORTED} {
+-    void png_set_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)
+-}
+-declare 148 {
+-    png_uint_32 png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette)
+-}
+-declare 149 {
+-    void png_set_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette)
+-}
+-
+-declare 150 generic {!PNG_READ_sBIT_SUPPORTED} {
+-    png_uint_32 png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
+-}
+-declare 151 generic {!PNG_sBIT_SUPPORTED} {
+-    void png_set_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit)
+-}
+-declare 152 generic {!PNG_READ_sRGB_SUPPORTED} {
+-    png_uint_32 png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *intent)
++    png_int_32 png_get_x_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 153 generic {!PNG_sRGB_SUPPORTED} {
+-    void png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent)
++declare 127 generic {!PNG_EASY_ACCESS_SUPPORTED} {
++    png_int_32 png_get_y_offset_pixels(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 154 generic {!PNG_sRGB_SUPPORTED} {
+-    void png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, int intent)
++declare 128 generic {!PNG_EASY_ACCESS_SUPPORTED} {
++    png_int_32 png_get_x_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 155 generic {!PNG_READ_iCCP_SUPPORTED} {
+-    png_uint_32 png_get_iCCP(png_structp png_ptr, png_infop info_ptr, png_charpp name, int *compression_type, png_charpp profile, png_uint_32 *proflen)
++declare 129 generic {!PNG_EASY_ACCESS_SUPPORTED} {
++    png_int_32 png_get_y_offset_microns(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 156 generic {!PNG_iCCP_SUPPORTED} {
+-    void png_set_iCCP(png_structp png_ptr, png_infop info_ptr, png_charp name, int compression_type, png_charp profile, png_uint_32 proflen)
++declare 130 {
++    png_const_bytep png_get_signature(png_const_structp png_ptr, png_infop info_ptr)
+ }
+-declare 157 generic {!PNG_READ_sPLT_SUPPORTED} {
+-    png_uint_32 png_get_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tpp entries)
++declare 131 generic {!PNG_bKGD_SUPPORTED} {
++    png_uint_32 png_get_bKGD(png_const_structp png_ptr, png_infop info_ptr, png_color_16p *background)
+ }
+-declare 158 generic {!PNG_sPLT_SUPPORTED} {
+-    void png_set_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tp entries, int nentries)
++declare 132 generic {!PNG_bKGD_SUPPORTED} {
++    void png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_const_color_16p background)
+ }
+-declare 159 generic {!PNG_READ_TEXT_SUPPORTED} {
+-    png_uint_32 png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, int *num_text)
++declare 133 generic {!PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    png_uint_32 png_get_cHRM(png_const_structp png_ptr, png_const_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)
+ }
+-declare 160 generic {!PNG_TEXT_SUPPORTED} {
+-    void png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text)
++declare 134 generic {!PNG_READ_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    png_uint_32 png_get_cHRM_fixed(png_const_structp png_ptr, png_const_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)
+ }
+-declare 161 generic {!PNG_READ_tIME_SUPPORTED} {
+-    png_uint_32 png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
++declare 135 generic {!PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    void png_set_cHRM(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)
+ }
+-declare 162 generic {!PNG_tIME_SUPPORTED} {
+-    void png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time)
++declare 136 generic {!PNG_cHRM_SUPPORTED} {
++    void png_set_cHRM_fixed(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)
+ }
+-declare 163 generic {!PNG_READ_tRNS_SUPPORTED} {
+-    png_uint_32 png_get_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values)
++declare 137 generic {!PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    png_uint_32 png_get_gAMA(png_const_structp png_ptr, png_const_infop info_ptr, double *file_gamma)
+ }
+-declare 164 generic {!PNG_tRNS_SUPPORTED} {
+-    void png_set_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values)
++declare 138 generic {!PNG_gAMA_SUPPORTED} {
++    png_uint_32 png_get_gAMA_fixed(png_const_structp png_ptr, png_const_infop info_ptr, png_fixed_point *int_file_gamma)
+ }
+-declare 165 generic {!PNG_READ_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    png_uint_32 png_get_sCAL(png_structp png_ptr, png_infop info_ptr, int *unit, double *width, double *height)
+-}
+-declare 166 generic {!PNG_READ_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    png_uint_32 png_get_sCAL_s(png_structp png_ptr, png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)
+-}
+-declare 167 generic {!PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width, double height)
+-}
+-declare 168 generic {!PNG_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    void png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)
+-}
+-declare 169 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
+-    void png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks)
+-}
+-declare 170 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
+-    void png_set_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)
+-}
+-declare 171 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
+-    void png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location)
+-}
+-declare 172 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
+-    png_uint_32 png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)
+-}
+-declare 173 {
+-    void png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
+-}
+-declare 174 generic {!PNG_INFO_IMAGE_SUPPORTED} {
+-    void png_read_png(png_structp png_ptr, png_infop info_ptr, int transforms, voidp params)
+-}
+-declare 175 generic {!PNG_INFO_IMAGE_SUPPORTED} {
+-    void png_write_png(png_structp png_ptr, png_infop info_ptr, int transforms, voidp params)
+-}
+-declare 176 generic {!PNG_INTERNAL PNG_USE_GLOBAL_ARRAYS {PNG_NO_EXTERN !PNG_ALWAYS_EXTERN}} {
+-    png_bytep png_sig_bytes(void)
+-}
+-declare 177 {
+-    png_charp png_get_copyright(png_structp png_ptr)
+-}
+-declare 178 {
+-    png_charp png_get_header_ver(png_structp png_ptr)
+-}
+-declare 179 {
+-    png_charp png_get_header_version(png_structp png_ptr)
+-}
+-declare 180 {
+-    png_charp png_get_libpng_ver(png_structp png_ptr)
+-}
+-declare 184 generic {!PNG_INTERNAL} {
+-    void png_read_init(png_structp png_ptr)
+-}
+-declare 185 generic {!PNG_INTERNAL} {
+-    void png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t png_info_size)
+-}
+-declare 188 generic {!PNG_INTERNAL} {
+-    png_voidp png_create_struct(int type)
+-}
+-declare 189 generic {!PNG_INTERNAL} {
+-    void png_destroy_struct(png_voidp struct_ptr)
+-}
+-declare 190 generic {!PNG_INTERNAL} {
+-    png_voidp png_create_struct_2(int type, png_malloc_ptr malloc_fn)
+-}
+-declare 191 generic {!PNG_INTERNAL} {
+-    void png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn)
+-}
+-declare 192 generic {!PNG_INTERNAL} {
+-    void png_info_destroy(png_structp png_ptr, png_infop info_ptr)
+-}
+-declare 193 generic {!PNG_INTERNAL} {
+-    voidpf png_zalloc(voidpf png_ptr, uInt items, uInt size)
+-}
+-declare 194 generic {!PNG_INTERNAL} {
+-    void png_zfree(voidpf png_ptr, voidpf ptr)
+-}
+-declare 195 generic {!PNG_INTERNAL} {
+-    void png_reset_crc(png_structp png_ptr)
+-}
+-declare 196 generic {!PNG_INTERNAL} {
+-    void png_write_data(png_structp png_ptr, png_bytep data, png_size_t length)
+-}
+-declare 197 generic {!PNG_INTERNAL} {
+-    void png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
+-}
+-declare 198 generic {!PNG_INTERNAL} {
+-    void png_crc_read(png_structp png_ptr, png_bytep buf, png_size_t length)
+-}
+-declare 199 generic {!PNG_INTERNAL {!PNG_READ_zTXt_SUPPORTED !PNG_READ_iTXt_SUPPORTED !PNG_READ_iCCP_SUPPORTED !PNG_READ_sPLT_SUPPORTED}} {
+-    png_charp png_decompress_chunk(png_structp png_ptr, int comp_type, png_charp chunkdata, png_size_t chunklength, png_size_t prefix_length, png_size_t *data_length)
+-}
+-declare 200 generic {!PNG_INTERNAL} {
+-    int png_crc_finish(png_structp png_ptr, png_uint_32 skip)
+-}
+-declare 201 generic {!PNG_INTERNAL} {
+-    int png_crc_error(png_structp png_ptr)
+-}
+-declare 202 generic {!PNG_INTERNAL} {
+-    void png_calculate_crc(png_structp png_ptr, png_bytep ptr, png_size_t length)
+-}
+-declare 203 generic {!PNG_INTERNAL !PNG_WRITE_FLUSH_SUPPORTED} {
+-    void png_flush(png_structp png_ptr)
+-}
+-declare 204 generic {!PNG_INTERNAL} {
+-    void png_save_uint_32(png_bytep buf, png_uint_32 i)
+-}
+-declare 205 generic {!PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED} {
+-    void png_save_int_32(png_bytep buf, png_int_32 i)
+-}
+-declare 206 generic {!PNG_INTERNAL} {
+-    void png_save_uint_16(png_bytep buf, unsigned int i)
+-}
+-declare 207 generic {!PNG_INTERNAL} {
+-    void png_write_sig(png_structp png_ptr)
+-}
+-declare 208 generic {!PNG_INTERNAL} {
+-    void png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int compression_type, int filter_type, int interlace_type)
+-}
+-declare 209 generic {!PNG_INTERNAL} {
+-    void png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal)
+-}
+-declare 210 generic {!PNG_INTERNAL} {
+-    void png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length)
+-}
+-declare 211 generic {!PNG_INTERNAL} {
+-    void png_write_IEND(png_structp png_ptr)
+-}
+-declare 212 generic {!PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_write_gAMA(png_structp png_ptr, double file_gamma)
+-}
+-declare 213 generic {!PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    void png_write_gAMA_fixed(png_structp png_ptr, png_fixed_point file_gamma)
+-}
+-declare 214 generic {!PNG_INTERNAL !PNG_WRITE_sBIT_SUPPORTED} {
+-    void png_write_sBIT(png_structp png_ptr, png_color_8p sbit, int color_type)
+-}
+-declare 215 generic {!PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
+-    void png_write_cHRM(png_structp png_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)
+-}
+-declare 216 generic {!PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
+-    void png_write_cHRM_fixed(png_structp png_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)
+-}
+-declare 217 generic {!PNG_INTERNAL !PNG_WRITE_sRGB_SUPPORTED} {
+-    void png_write_sRGB(png_structp png_ptr, int intent)
+-}
+-declare 218 generic {!PNG_INTERNAL !PNG_WRITE_iCCP_SUPPORTED} {
+-    void png_write_iCCP(png_structp png_ptr, png_charp name, int compression_type, png_charp profile, int proflen)
+-}
+-declare 219 generic {!PNG_INTERNAL !PNG_WRITE_sPLT_SUPPORTED} {
+-    void png_write_sPLT(png_structp png_ptr, png_sPLT_tp palette)
+-}
+-declare 220 generic {!PNG_INTERNAL !PNG_WRITE_tRNS_SUPPORTED} {
+-    void png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p values, int number, int color_type)
+-}
+-declare 221 generic {!PNG_INTERNAL !PNG_WRITE_bKGD_SUPPORTED} {
+-    void png_write_bKGD(png_structp png_ptr, png_color_16p values, int color_type)
+-}
+-declare 222 generic {!PNG_INTERNAL !PNG_WRITE_hIST_SUPPORTED} {
+-    void png_write_hIST(png_structp png_ptr, png_uint_16p hist, int num_hist)
+-}
+-declare 223 generic {!PNG_INTERNAL {!PNG_WRITE_TEXT_SUPPORTED !PNG_WRITE_pCAL_SUPPORTED !PNG_WRITE_iCCP_SUPPORTED !PNG_WRITE_sPLT_SUPPORTED}} {
+-    png_size_t png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key)
+-}
+-declare 224 generic {!PNG_INTERNAL !PNG_WRITE_tEXt_SUPPORTED} {
+-    void png_write_tEXt(png_structp png_ptr, png_charp key, png_charp text, png_size_t text_len)
++declare 139 generic {!PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    void png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
+ }
+-declare 225 generic {!PNG_INTERNAL !PNG_WRITE_zTXt_SUPPORTED} {
+-    void png_write_zTXt(png_structp png_ptr, png_charp key, png_size_t text_len, int compression)
++declare 140 generic {!PNG_gAMA_SUPPORTED} {
++    void png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma)
+ }
+-declare 226 generic {!PNG_INTERNAL !PNG_iTXt_SUPPORTED} {
+-    void png_write_iTXt(png_structp png_ptr, int compression, png_charp key, png_charp lang, png_charp lang_key, png_charp text)
++declare 141 generic {!PNG_hIST_SUPPORTED} {
++    png_uint_32 png_get_hIST(png_const_structp png_ptr, png_const_infop info_ptr, png_uint_16p *hist)
+ }
+-declare 227 generic {!PNG_INTERNAL !PNG_WRITE_oFFs_SUPPORTED} {
+-    void png_write_oFFs(png_structp png_ptr, png_uint_32 x_offset, png_uint_32 y_offset, int unit_type)
++declare 142 generic {!PNG_hIST_SUPPORTED} {
++    void png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_const_uint_16p hist)
+ }
+-declare 228 generic {!PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED} {
+-    void png_write_pCAL(png_structp png_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp units, png_charpp params)
++declare 143 {
++    png_uint_32 png_get_IHDR(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)
+ }
+-declare 229 generic {!PNG_INTERNAL !PNG_WRITE_pHYs_SUPPORTED} {
+-    void png_write_pHYs(png_structp png_ptr, png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, int unit_type)
++declare 144 {
++    void png_set_IHDR(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)
+ }
+-declare 230 generic {!PNG_INTERNAL !PNG_WRITE_tIME_SUPPORTED} {
+-    void png_write_tIME(png_structp png_ptr, png_timep mod_time)
++declare 145 generic {!PNG_oFFs_SUPPORTED} {
++    png_uint_32 png_get_oFFs(png_const_structp png_ptr, png_const_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
+ }
+-declare 231 generic {!PNG_INTERNAL !PNG_WRITE_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED PNG_NO_STDIO} {
+-    void png_write_sCAL(png_structp png_ptr, int unit, double width, double height)
++declare 146 generic {!PNG_oFFs_SUPPORTED} {
++    void png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type)
+ }
+-declare 232 generic {!PNG_INTERNAL !PNG_FIXED_POINT_SUPPORTED {PNG_WRITE_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_NO_STDIO}} {
+-    void png_write_sCAL_s(png_structp png_ptr, int unit, png_charp width, png_charp height)
++declare 147 generic {!PNG_pCAL_SUPPORTED} {
++    png_uint_32 png_get_pCAL(png_const_structp png_ptr, png_const_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, png_charp *units, png_charpp *params)
+ }
+-declare 233 generic {!PNG_INTERNAL} {
+-    void png_write_finish_row(png_structp png_ptr)
++declare 148 generic {!PNG_pCAL_SUPPORTED} {
++    void png_set_pCAL(png_structp png_ptr, png_infop info_ptr, png_const_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_const_charp units, png_charpp params)
+ }
+-declare 234 generic {!PNG_INTERNAL} {
+-    void png_write_start_row(png_structp png_ptr)
++declare 149 generic {!PNG_pHYs_SUPPORTED} {
++    png_uint_32 png_get_pHYs(png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
+ }
+-declare 235 generic {!PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED} {
+-    void png_build_gamma_table(png_structp png_ptr)
++declare 150 generic {!PNG_pHYs_SUPPORTED} {
++    void png_set_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)
+ }
+-declare 236 generic {!PNG_INTERNAL} {
+-    void png_combine_row(png_structp png_ptr, png_bytep row, int mask)
++declare 151 {
++    png_uint_32 png_get_PLTE(png_const_structp png_ptr, png_const_infop info_ptr, png_colorp *palette, int *num_palette)
+ }
+-declare 237 generic {!PNG_INTERNAL !PNG_READ_INTERLACING_SUPPORTED} {
+-    void png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, png_uint_32 transformations)
++declare 152 {
++    void png_set_PLTE(png_structp png_ptr, png_infop info_ptr, png_const_colorp palette, int num_palette)
+ }
+-declare 238 generic {!PNG_INTERNAL !PNG_WRITE_INTERLACING_SUPPORTED} {
+-    void png_do_write_interlace(png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)
++declare 153 generic {!PNG_sBIT_SUPPORTED} {
++    png_uint_32 png_get_sBIT(png_const_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
+ }
+-declare 239 generic {!PNG_INTERNAL} {
+-    void png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)
++declare 154 generic {!PNG_sBIT_SUPPORTED} {
++    void png_set_sBIT(png_structp png_ptr, png_infop info_ptr, png_const_color_8p sig_bit)
+ }
+-declare 240 generic {!PNG_INTERNAL} {
+-    void png_write_find_filter(png_structp png_ptr, png_row_infop row_info)
++declare 155 generic {!PNG_sRGB_SUPPORTED} {
++    png_uint_32 png_get_sRGB(png_const_structp png_ptr, png_const_infop info_ptr, int *file_srgb_intent)
+ }
+-declare 241 generic {!PNG_INTERNAL} {
+-    void png_write_filtered_row(png_structp png_ptr, png_bytep filtered_row)
++declare 156 generic {!PNG_sRGB_SUPPORTED} {
++    void png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int srgb_intent)
+ }
+-declare 242 generic {!PNG_INTERNAL} {
+-    void png_read_finish_row(png_structp png_ptr)
++declare 157 generic {!PNG_sRGB_SUPPORTED} {
++    void png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, int srgb_intent)
+ }
+-declare 243 generic {!PNG_INTERNAL} {
+-    void png_read_start_row(png_structp png_ptr)
++declare 158 generic {!PNG_iCCP_SUPPORTED} {
++    png_uint_32 png_get_iCCP(png_const_structp png_ptr, png_const_infop info_ptr, png_charpp name, int *compression_type, png_bytepp profile, png_uint_32 *proflen)
+ }
+-declare 244 generic {!PNG_INTERNAL} {
+-    void png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
++declare 159 generic {!PNG_iCCP_SUPPORTED} {
++    void png_set_iCCP(png_structp png_ptr, png_infop info_ptr, png_const_charp name, int compression_type, png_const_bytep profile, png_uint_32 proflen)
+ }
+-declare 245 generic {!PNG_INTERNAL !PNG_READ_FILLER_SUPPORTED} {
+-    void png_do_read_filler(png_row_infop row_info, png_bytep row, png_uint_32 filler, png_uint_32 flags)
++declare 160 generic {!PNG_sPLT_SUPPORTED} {
++    png_uint_32 png_get_sPLT(png_const_structp png_ptr, png_const_infop info_ptr, png_sPLT_tpp entries)
+ }
+-declare 246 generic {!PNG_INTERNAL !PNG_READ_SWAP_ALPHA_SUPPORTED} {
+-    void png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
++declare 161 generic {!PNG_sPLT_SUPPORTED} {
++    void png_set_sPLT(png_structp png_ptr, png_infop info_ptr, png_const_sPLT_tp entries, int nentries)
+ }
+-declare 247 generic {!PNG_INTERNAL !PNG_WRITE_SWAP_ALPHA_SUPPORTED} {
+-    void png_do_write_swap_alpha(png_row_infop row_info, png_bytep row)
++declare 162 generic {!PNG_READ_TEXT_SUPPORTED} {
++    png_uint_32 png_get_text(png_const_structp png_ptr, png_const_infop info_ptr, png_textp *text_ptr, int *num_text)
+ }
+-declare 248 generic {!PNG_INTERNAL !PNG_READ_INVERT_ALPHA_SUPPORTED} {
+-    void png_do_read_invert_alpha(png_row_infop row_info, png_bytep row)
++declare 163 generic {!PNG_TEXT_SUPPORTED} {
++    void png_set_text(png_structp png_ptr, png_infop info_ptr, png_const_textp text_ptr, int num_text)
+ }
+-declare 249 generic {!PNG_INTERNAL !PNG_WRITE_INVERT_ALPHA_SUPPORTED} {
+-    void png_do_write_invert_alpha(png_row_infop row_info, png_bytep row)
++declare 164 generic {!PNG_tIME_SUPPORTED} {
++    png_uint_32 png_get_tIME(png_const_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
+ }
+-declare 250 generic {!PNG_INTERNAL {!PNG_WRITE_FILLER_SUPPORTED !PNG_READ_STRIP_ALPHA_SUPPORTED}} {
+-    void png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags)
++declare 165 generic {!PNG_tIME_SUPPORTED} {
++    void png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_const_timep mod_time)
+ }
+-declare 251 generic {!PNG_INTERNAL {!PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED}} {
+-    void png_do_swap(png_row_infop row_info, png_bytep row)
++declare 166 generic {!PNG_tRNS_SUPPORTED} {
++    png_uint_32 png_get_tRNS(png_const_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_color)
+ }
+-declare 252 generic {!PNG_INTERNAL {!PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED}} {
+-    void png_do_packswap(png_row_infop row_info, png_bytep row)
++declare 167 generic {!PNG_tRNS_SUPPORTED} {
++    void png_set_tRNS(png_structp png_ptr, png_infop info_ptr, png_const_bytep trans, int num_trans, png_const_color_16p trans_color)
+ }
+-declare 253 generic {!PNG_INTERNAL !PNG_READ_RGB_TO_GRAY_SUPPORTED} {
+-    int png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
++declare 168 generic {!PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    png_uint_32 png_get_sCAL(png_const_structp png_ptr, png_const_infop info_ptr, int *unit, double *width, double *height)
+ }
+-declare 254 generic {!PNG_INTERNAL !PNG_READ_GRAY_TO_RGB_SUPPORTED} {
+-    void png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
++declare 169 generic {!PNG_sCAL_SUPPORTED} {
++    png_uint_32 png_get_sCAL_s(png_const_structp png_ptr, png_const_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)
+ }
+-declare 255 generic {!PNG_INTERNAL !PNG_READ_PACK_SUPPORTED} {
+-    void png_do_unpack(png_row_infop row_info, png_bytep row)
++declare 170 generic {!PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    void png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width, double height)
+ }
+-declare 256 generic {!PNG_INTERNAL !PNG_READ_SHIFT_SUPPORTED} {
+-    void png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits)
++declare 171 generic {!PNG_sCAL_SUPPORTED} {
++    void png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr, int unit, png_const_charp swidth, png_const_charp sheight)
+ }
+-declare 257 generic {!PNG_INTERNAL {!PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED}} {
+-    void png_do_invert(png_row_infop row_info, png_bytep row)
++declare 172 generic {!PNG_HANDLE_AS_UNKNOWN_SUPPORTED} {
++    void png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_const_bytep chunk_list, int num_chunks)
+ }
+-declare 258 generic {!PNG_INTERNAL !PNG_READ_16_TO_8_SUPPORTED} {
+-    void png_do_chop(png_row_infop row_info, png_bytep row)
++declare 173 generic {!PNG_HANDLE_AS_UNKNOWN_SUPPORTED} {
++    int png_handle_as_unknown(png_structp png_ptr, png_const_bytep chunk_name)
+ }
+-declare 259 generic {!PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED} {
+-    void png_do_dither(png_row_infop row_info, png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup)
++declare 174 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
++    void png_set_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_const_unknown_chunkp unknowns, int num_unknowns)
+ }
+-declare 260 generic {!PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED !PNG_CORRECT_PALETTE_SUPPORTED} {
+-    void png_correct_palette(png_structp png_ptr, png_colorp palette, int num_palette)
++declare 175 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
++    void png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location)
+ }
+-declare 261 generic {!PNG_INTERNAL {!PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED}} {
+-    void png_do_bgr(png_row_infop row_info, png_bytep row)
++declare 176 generic {!PNG_UNKNOWN_CHUNKS_SUPPORTED} {
++    int png_get_unknown_chunks(png_const_structp png_ptr, png_const_infop info_ptr, png_unknown_chunkpp entries)
+ }
+-declare 262 generic {!PNG_INTERNAL !PNG_WRITE_PACK_SUPPORTED} {
+-    void png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth)
++declare 177 {
++    void png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
+ }
+-declare 263 generic {!PNG_INTERNAL !PNG_WRITE_SHIFT_SUPPORTED} {
+-    void png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth)
++declare 178 generic {!PNG_INFO_IMAGE_SUPPORTED} {
++    void png_read_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params)
+ }
+-declare 264 generic {!PNG_INTERNAL !PNG_READ_BACKGROUND_SUPPORTED} {
+-    void png_do_background(png_row_infop row_info, png_bytep row, png_color_16p trans_values, png_color_16p background, png_color_16p background_1, png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, png_uint_16pp gamma_16_to_1, int gamma_shift)
++declare 179 generic {!PNG_INFO_IMAGE_SUPPORTED} {
++    void png_write_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params)
+ }
+-declare 265 generic {!PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED} {
+-    void png_do_gamma(png_row_infop row_info, png_bytep row, png_bytep gamma_table, png_uint_16pp gamma_16_table, int gamma_shift)
++declare 180 {
++    png_const_charp png_get_copyright(png_const_structp png_ptr)
+ }
+-declare 266 generic {!PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED} {
+-    void png_do_expand_palette(png_row_infop row_info, png_bytep row, png_colorp palette, png_bytep trans, int num_trans)
++declare 181 {
++    png_const_charp png_get_header_ver(png_const_structp png_ptr)
+ }
+-declare 267 generic {!PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED} {
+-    void png_do_expand(png_row_infop row_info, png_bytep row, png_color_16p trans_value)
++declare 182 {
++    png_const_charp png_get_header_version(png_const_structp png_ptr)
+ }
+-declare 268 generic {!PNG_INTERNAL} {
+-    void png_handle_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 183 {
++    png_const_charp png_get_libpng_ver(png_const_structp png_ptr)
+ }
+-declare 269 generic {!PNG_INTERNAL} {
+-    void png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 184 generic {!PNG_MNG_FEATURES_SUPPORTED} {
++    png_uint_32 png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features_permitted)
+ }
+-declare 270 generic {!PNG_INTERNAL} {
+-    void png_handle_IEND(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 185 generic {!PNG_ERROR_NUMBERS_SUPPORTED} {
++    void png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
+ }
+-declare 271 generic {!PNG_INTERNAL !PNG_READ_bKGD_SUPPORTED} {
+-    void png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 186 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    void png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)
+ }
+-declare 272 generic {!PNG_INTERNAL !PNG_READ_cHRM_SUPPORTED} {
+-    void png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare	187 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    png_uint_32 png_get_user_width_max(png_const_structp png_ptr)
+ }
+-declare 273 generic {!PNG_INTERNAL !PNG_READ_gAMA_SUPPORTED} {
+-    void png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 188 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    png_uint_32 png_get_user_height_max(png_const_structp png_ptr)
+ }
+-declare 274 generic {!PNG_INTERNAL !PNG_READ_hIST_SUPPORTED} {
+-    void png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 189 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    void png_set_chunk_cache_max(png_structp png_ptr, png_uint_32 user_chunk_cache_max)
+ }
+-declare 275 generic {!PNG_INTERNAL !PNG_READ_iCCP_SUPPORTED} {
+-    void png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 190 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    png_uint_32 png_get_chunk_cache_max(png_const_structp png_ptr)
+ }
+-declare 276 generic {!PNG_INTERNAL !PNG_iTXt_SUPPORTED} {
+-    void png_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 191 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    void png_set_chunk_malloc_max(png_structp png_ptr, png_alloc_size_t user_chunk_cache_max)
+ }
+-declare 277 generic {!PNG_INTERNAL !PNG_READ_oFFs_SUPPORTED} {
+-    void png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 192 generic {!PNG_SET_USER_LIMITS_SUPPORTED} {
++    png_alloc_size_t png_get_chunk_malloc_max(png_const_structp png_ptr)
+ }
+-declare 278 generic {!PNG_INTERNAL !PNG_READ_pCAL_SUPPORTED} {
+-    void png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 193 generic {!PNG_INCH_CONVERSIONS_SUPPORTED} {
++    png_uint_32 png_get_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 279 generic {!PNG_INTERNAL !PNG_READ_pHYs_SUPPORTED} {
+-    void png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 194 generic {!PNG_INCH_CONVERSIONS_SUPPORTED} {
++    png_uint_32 png_get_x_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 280 generic {!PNG_INTERNAL !PNG_READ_sBIT_SUPPORTED} {
+-    void png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 195 generic {!PNG_INCH_CONVERSIONS_SUPPORTED} {
++    png_uint_32 png_get_y_pixels_per_inch(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 281 generic {!PNG_INTERNAL !PNG_READ_sCAL_SUPPORTED} {
+-    void png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 196 generic {!PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    float png_get_x_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 282 generic {!PNG_INTERNAL !PNG_READ_sPLT_SUPPORTED} {
+-    void png_handle_sPLT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 197 generic {!PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    float png_get_y_offset_inches(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 283 generic {!PNG_INTERNAL !PNG_READ_sRGB_SUPPORTED} {
+-    void png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 198 generic {!PNG_pHYs_SUPPORTED} {
++    png_uint_32 png_get_pHYs_dpi(png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
+ }
+-declare 284 generic {!PNG_INTERNAL !PNG_READ_tEXt_SUPPORTED} {
+-    void png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 199 generic {!PNG_IO_STATE_SUPPORTED} {
++    png_uint_32 png_get_io_state(png_structp png_ptr)
+ }
+-declare 285 generic {!PNG_INTERNAL !PNG_READ_tIME_SUPPORTED} {
+-    void png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 200 generic {!PNG_IO_STATE_SUPPORTED} {
++    png_const_bytep png_get_io_chunk_name(png_structp png_ptr)
+ }
+-declare 286 generic {!PNG_INTERNAL !PNG_READ_tRNS_SUPPORTED} {
+-    void png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 201 generic {!PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS} {
++    png_uint_32 png_get_uint_32(png_const_bytep buf)
+ }
+-declare 287 generic {!PNG_INTERNAL !PNG_READ_zTXt_SUPPORTED} {
+-    void png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare	202 generic {!PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS} {
++    png_uint_16 png_get_uint_16(png_const_bytep buf)
+ }
+-declare 288 generic {!PNG_INTERNAL !PNG_HANDLE_AS_UNKNOWN_SUPPORTED} {
+-    int png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name)
++declare	203 generic {!PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS} {
++    png_int_32 png_get_int_32(png_const_bytep buf)
+ }
+-declare 289 generic {!PNG_INTERNAL} {
+-    void png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 204 {
++    png_uint_32 png_get_uint_31(png_structp png_ptr, png_const_bytep buf)
+ }
+-declare 290 generic {!PNG_INTERNAL} {
+-    void png_check_chunk_name(png_structp png_ptr, png_bytep chunk_name)
++declare 205 generic {!PNG_WRITE_INT_FUNCTIONS_SUPPORTED} {
++    void png_save_uint_32(png_bytep buf, png_uint_32 i)
+ }
+-declare 291 generic {!PNG_INTERNAL} {
+-    void png_do_read_transformations(png_structp png_ptr)
++declare 206 generic {!PNG_SAVE_INT_32_SUPPORTED} {
++    void png_save_int_32(png_bytep buf, png_int_32 i)
+ }
+-declare 292 generic {!PNG_INTERNAL} {
+-    void png_do_write_transformations(png_structp png_ptr)
++declare 207 generic {!PNG_WRITE_INT_FUNCTIONS_SUPPORTED} {
++    void png_save_uint_16(png_bytep buf, unsigned int i)
+ }
+-declare 293 generic {!PNG_INTERNAL} {
+-    void png_init_read_transformations(png_structp png_ptr)
++declare 208 generic {!PNG_READ_GAMMA_SUPPORTED} {
++    void png_set_gamma_fixed(png_structp png_ptr, png_fixed_point screen_gamma, png_fixed_point override_file_gamma)
+ }
+-declare 294 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
++declare 209 generic {!PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    void png_set_filter_heuristics_fixed(png_structp png_ptr, int heuristic_method, int num_weights, png_const_fixed_point_p filter_weights, png_const_fixed_point_p filter_costs)
+ }
+-declare 295 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_read_sig(png_structp png_ptr, png_infop info_ptr)
++declare 210 generic {!PNG_EASY_ACCESS_SUPPORTED} {
++    png_fixed_point png_get_pixel_aspect_ratio_fixed(png_const_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 296 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_check_crc(png_structp png_ptr)
++declare 211 generic {!PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    png_fixed_point png_get_x_offset_inches_fixed(png_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 297 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_crc_skip(png_structp png_ptr, png_uint_32 length)
++declare	212 generic {!PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    png_fixed_point png_get_y_offset_inches_fixed(png_structp png_ptr, png_const_infop info_ptr)
+ }
+-declare 298 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_crc_finish(png_structp png_ptr)
++declare 213 generic {!PNG_sCAL_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    void png_set_sCAL_fixed(png_structp png_ptr, png_infop info_ptr, int unit, png_fixed_point width, png_fixed_point height)
+ }
+-declare 299 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
++declare 214 generic {!PNG_sCAL_SUPPORTED !PNG_FLOATING_ARITHMETIC_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    png_uint_32 png_get_sCAL_fixed(png_structp png_ptr, png_const_infop info_ptr, int *unit, png_fixed_point *width, png_fixed_point *height)
+ }
+-declare 300 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_save_buffer(png_structp png_ptr)
++declare 215 generic {!PNG_READ_BACKGROUND_SUPPORTED} {
++    void png_set_background_fixed(png_structp png_ptr, png_const_color_16p background_color, int background_gamma_code, int need_expand, png_fixed_point background_gamma)
+ }
+-declare 301 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_restore_buffer(png_structp png_ptr, png_bytep buffer, png_size_t buffer_length)
++declare 216 generic {!PNG_IO_STATE_SUPPORTED} {
++    png_uint_32 png_get_io_chunk_type(png_const_structp png_ptr)
+ }
+-declare 302 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_read_IDAT(png_structp png_ptr)
++declare 217 generic {!PNG_USER_TRANSFORM_INFO_SUPPORTED} {
++    png_uint_32 png_get_current_row_number(png_const_structp png_ptr)
+ }
+-declare 303 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_process_IDAT_data(png_structp png_ptr, png_bytep buffer, png_size_t buffer_length)
++declare 218 generic {!PNG_USER_TRANSFORM_INFO_SUPPORTED} {
++    png_byte png_get_current_pass_number(png_const_structp png_ptr)
+ }
+-declare 304 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_process_row(png_structp png_ptr)
++declare 219 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
++    png_size_t png_process_data_pause(png_structp png_ptr, int save)
+ }
+-declare 305 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 220 generic {!PNG_PROGRESSIVE_READ_SUPPORTED} {
++    png_uint_32 png_process_data_skip(png_structp png_ptr)
+ }
+-declare 306 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_have_info(png_structp png_ptr, png_infop info_ptr)
++declare 221 generic {!PNG_READ_EXPAND_16_SUPPORTED} {
++    void png_set_expand_16(png_structp png_ptr)
+ }
+-declare 307 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_have_end(png_structp png_ptr, png_infop info_ptr)
++declare 222 generic {!PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED} {
++    void png_set_text_compression_level(png_structp png_ptr, int level)
+ }
+-declare 308 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_have_row(png_structp png_ptr, png_bytep row)
++declare 223 generic {!PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED} {
++    void png_set_text_compression_mem_level(png_structp png_ptr, int mem_level)
+ }
+-declare 309 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_push_read_end(png_structp png_ptr, png_infop info_ptr)
++declare 224 generic {!PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED} {
++    void png_set_text_compression_strategy(png_structp png_ptr, int strategy)
+ }
+-declare 310 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_process_some_data(png_structp png_ptr, png_infop info_ptr)
++declare 225 generic {!PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED} {
++    void png_set_text_compression_window_bits(png_structp png_ptr, int window_bits)
+ }
+-declare 311 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED} {
+-    void png_read_push_finish_row(png_structp png_ptr)
++declare	226 generic {!PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED} {
++    void png_set_text_compression_method(png_structp pnt_ptr, int method)
+ }
+-declare 312 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED} {
+-    void png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 227 generic {!PNG_READ_ALPHA_MODE_SUPPORTED} {
++    void png_set_alpha_mode(png_structp png_ptr, int mode, double output_gamma)
+ }
+-declare 313 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED} {
+-    void png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
++declare	228 generic {!PNG_READ_ALPHA_MODE_SUPPORTED} {
++    void png_set_alpha_mode_fixed(png_structp png_ptr, int mode, png_fixed_point output_gamma)
+ }
+-declare 314 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED} {
+-    void png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 229 generic {!PNG_READ_SCALE_16_TO_8_SUPPORTED} {
++    void png_set_scale_16(png_structp png_ptr)
+ }
+-declare 315 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED} {
+-    void png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
++declare 230 generic {!PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    png_uint_32 png_get_cHRM_XYZ(png_structp png_ptr, png_const_infop info_ptr, double *red_X, double *red_Y, double *red_Z, double *green_X, double *green_Y, double *green_Z, double *blue_X, double *blue_Y, double *blue_Z)
+ }
+-declare 316 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED} {
+-    void png_push_handle_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 231 generic {!PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED} {
++    png_uint_32 png_get_cHRM_XYZ_fixed(png_structp png_ptr, png_const_infop info_ptr, png_fixed_point *int_red_X, png_fixed_point *int_red_Y, png_fixed_point *int_red_Z, png_fixed_point *int_green_X, png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, png_fixed_point *int_blue_Z)
+ }
+-declare 317 generic {!PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED} {
+-    void png_push_read_iTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
++declare 232 generic {!PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED} {
++    void png_set_cHRM_XYZ(png_structp png_ptr, png_infop info_ptr, double red_X, double red_Y, double red_Z, double green_X, double green_Y, double green_Z, double blue_X, double blue_Y, double blue_Z)
+ }
+-declare 318 {
+-    void png_info_init_3(png_infopp info_ptr, png_size_t png_info_struct_size)
++declare 233 generic {!PNG_cHRM_SUPPORTED} {
++    void png_set_cHRM_XYZ_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_red_X, png_fixed_point int_red_Y, png_fixed_point int_red_Z, png_fixed_point int_green_X, png_fixed_point int_green_Y, png_fixed_point int_green_Z, png_fixed_point int_blue_X, png_fixed_point int_blue_Y, png_fixed_point int_blue_Z)
+ }
+ 
+ #########################################################################
+diff -up tkimg1.4/libpng/pngtclStubInit.c.png15 tkimg1.4/libpng/pngtclStubInit.c
+--- tkimg1.4/libpng/pngtclStubInit.c.png15	2011-12-07 16:14:29.172412229 -0500
++++ tkimg1.4/libpng/pngtclStubInit.c	2011-12-07 16:26:47.035161634 -0500
+@@ -15,192 +15,216 @@
+ const PngtclStubs pngtclStubs = {
+     TCL_STUB_MAGIC,
+     0,
+-    png_access_version_number, /* 0 */
+-    png_set_sig_bytes, /* 1 */
+-    png_sig_cmp, /* 2 */
+-    0, /* 3 */
++    0, /* 0 */
++    png_access_version_number, /* 1 */
++    png_set_sig_bytes, /* 2 */
++    png_sig_cmp, /* 3 */
+     png_create_read_struct, /* 4 */
+     png_create_write_struct, /* 5 */
+     png_get_compression_buffer_size, /* 6 */
+     png_set_compression_buffer_size, /* 7 */
+-    png_reset_zstream, /* 8 */
++    png_set_longjmp_fn, /* 8 */
++    png_longjmp, /* 9 */
++    png_reset_zstream, /* 10 */
+ #if !defined(PNG_USER_MEM_SUPPORTED)
+-    0, /* 9 */
++    0, /* 11 */
+ #else  /* !PNG_USER_MEM_SUPPORTED */
+-    png_create_read_struct_2, /* 9 */
++    png_create_read_struct_2, /* 11 */
+ #endif /* !PNG_USER_MEM_SUPPORTED */
+ #if !defined(PNG_USER_MEM_SUPPORTED)
+-    0, /* 10 */
++    0, /* 12 */
+ #else  /* !PNG_USER_MEM_SUPPORTED */
+-    png_create_write_struct_2, /* 10 */
++    png_create_write_struct_2, /* 12 */
+ #endif /* !PNG_USER_MEM_SUPPORTED */
+-    png_write_chunk, /* 11 */
+-    png_write_chunk_start, /* 12 */
+-    png_write_chunk_data, /* 13 */
+-    png_write_chunk_end, /* 14 */
+-    png_create_info_struct, /* 15 */
+-    0, /* 16 */
+-    png_write_info_before_PLTE, /* 17 */
+-    png_write_info, /* 18 */
+-    png_read_info, /* 19 */
++    png_write_sig, /* 13 */
++    png_write_chunk, /* 14 */
++    png_write_chunk_start, /* 15 */
++    png_write_chunk_data, /* 16 */
++    png_write_chunk_end, /* 17 */
++    png_create_info_struct, /* 18 */
++    png_info_init_3, /* 19 */
++    png_write_info_before_PLTE, /* 20 */
++    png_write_info, /* 21 */
++    png_read_info, /* 22 */
+ #if !defined(PNG_TIME_RFC1123_SUPPORTED)
+-    0, /* 20 */
++    0, /* 23 */
+ #else  /* !PNG_TIME_RFC1123_SUPPORTED */
+-    png_convert_to_rfc1123, /* 20 */
++    png_convert_to_rfc1123, /* 23 */
+ #endif /* !PNG_TIME_RFC1123_SUPPORTED */
+ #if defined(_WIN32_WCE) || !defined(PNG_WRITE_tIME_SUPPORTED)
+-    0, /* 21 */
++    0, /* 24 */
+ #else  /* _WIN32_WCE !PNG_WRITE_tIME_SUPPORTED */
+-    png_convert_from_struct_tm, /* 21 */
++    png_convert_from_struct_tm, /* 24 */
+ #endif /* _WIN32_WCE !PNG_WRITE_tIME_SUPPORTED */
+ #if defined(_WIN32_WCE) || !defined(PNG_WRITE_tIME_SUPPORTED)
+-    0, /* 22 */
++    0, /* 25 */
+ #else  /* _WIN32_WCE !PNG_WRITE_tIME_SUPPORTED */
+-    png_convert_from_time_t, /* 22 */
++    png_convert_from_time_t, /* 25 */
+ #endif /* _WIN32_WCE !PNG_WRITE_tIME_SUPPORTED */
+ #if !defined(PNG_READ_EXPAND_SUPPORTED)
+-    0, /* 23 */
++    0, /* 26 */
+ #else  /* !PNG_READ_EXPAND_SUPPORTED */
+-    png_set_expand, /* 23 */
++    png_set_expand, /* 26 */
+ #endif /* !PNG_READ_EXPAND_SUPPORTED */
+-    0, /* 24 */
+ #if !defined(PNG_READ_EXPAND_SUPPORTED)
+-    0, /* 25 */
++    0, /* 27 */
+ #else  /* !PNG_READ_EXPAND_SUPPORTED */
+-    png_set_palette_to_rgb, /* 25 */
++    png_set_expand_gray_1_2_4_to_8, /* 27 */
+ #endif /* !PNG_READ_EXPAND_SUPPORTED */
+ #if !defined(PNG_READ_EXPAND_SUPPORTED)
+-    0, /* 26 */
++    0, /* 28 */
+ #else  /* !PNG_READ_EXPAND_SUPPORTED */
+-    png_set_tRNS_to_alpha, /* 26 */
++    png_set_palette_to_rgb, /* 28 */
++#endif /* !PNG_READ_EXPAND_SUPPORTED */
++#if !defined(PNG_READ_EXPAND_SUPPORTED)
++    0, /* 29 */
++#else  /* !PNG_READ_EXPAND_SUPPORTED */
++    png_set_tRNS_to_alpha, /* 29 */
+ #endif /* !PNG_READ_EXPAND_SUPPORTED */
+ #if !defined(PNG_READ_BGR_SUPPORTED) && !defined(PNG_WRITE_BGR_SUPPORTED)
+-    0, /* 27 */
++    0, /* 30 */
+ #else  /* !PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED */
+-    png_set_bgr, /* 27 */
++    png_set_bgr, /* 30 */
+ #endif /* !PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED */
+ #if !defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+-    0, /* 28 */
++    0, /* 31 */
+ #else  /* !PNG_READ_GRAY_TO_RGB_SUPPORTED */
+-    png_set_gray_to_rgb, /* 28 */
++    png_set_gray_to_rgb, /* 31 */
+ #endif /* !PNG_READ_GRAY_TO_RGB_SUPPORTED */
+ #if !defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 29 */
++    0, /* 32 */
+ #else  /* !PNG_READ_RGB_TO_GRAY_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_rgb_to_gray, /* 29 */
++    png_set_rgb_to_gray, /* 32 */
+ #endif /* !PNG_READ_RGB_TO_GRAY_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+ #if !defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+-    0, /* 30 */
++    0, /* 33 */
+ #else  /* !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+-    png_set_rgb_to_gray_fixed, /* 30 */
++    png_set_rgb_to_gray_fixed, /* 33 */
+ #endif /* !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+ #if !defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+-    0, /* 31 */
++    0, /* 34 */
+ #else  /* !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+-    png_get_rgb_to_gray_status, /* 31 */
++    png_get_rgb_to_gray_status, /* 34 */
+ #endif /* !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+-    png_build_grayscale_palette, /* 32 */
+-#if !defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+-    0, /* 33 */
+-#else  /* !PNG_READ_STRIP_ALPHA_SUPPORTED */
+-    png_set_strip_alpha, /* 33 */
+-#endif /* !PNG_READ_STRIP_ALPHA_SUPPORTED */
++#if !defined(PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED)
++    0, /* 35 */
++#else  /* !PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED */
++    png_build_grayscale_palette, /* 35 */
++#endif /* !PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED */
++#if !defined(PNG_READ_ALPHA_MODE_SUPPORTED)
++    0, /* 36 */
++#else  /* !PNG_READ_ALPHA_MODE_SUPPORTED */
++    png_set_strip_alpha, /* 36 */
++#endif /* !PNG_READ_ALPHA_MODE_SUPPORTED */
+ #if !defined(PNG_READ_SWAP_ALPHA_SUPPORTED) && !defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+-    0, /* 34 */
++    0, /* 37 */
+ #else  /* !PNG_READ_SWAP_ALPHA_SUPPORTED !PNG_WRITE_SWAP_ALPHA_SUPPORTED */
+-    png_set_swap_alpha, /* 34 */
++    png_set_swap_alpha, /* 37 */
+ #endif /* !PNG_READ_SWAP_ALPHA_SUPPORTED !PNG_WRITE_SWAP_ALPHA_SUPPORTED */
+ #if !defined(PNG_READ_INVERT_ALPHA_SUPPORTED) && !defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
+-    0, /* 35 */
++    0, /* 38 */
+ #else  /* !PNG_READ_INVERT_ALPHA_SUPPORTED !PNG_WRITE_INVERT_ALPHA_SUPPORTED */
+-    png_set_invert_alpha, /* 35 */
++    png_set_invert_alpha, /* 38 */
+ #endif /* !PNG_READ_INVERT_ALPHA_SUPPORTED !PNG_WRITE_INVERT_ALPHA_SUPPORTED */
+ #if !defined(PNG_READ_FILLER_SUPPORTED) && !defined(PNG_WRITE_FILLER_SUPPORTED)
+-    0, /* 36 */
++    0, /* 39 */
++#else  /* !PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED */
++    png_set_filler, /* 39 */
++#endif /* !PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED */
++#if !defined(PNG_READ_FILLER_SUPPORTED) && !defined(PNG_WRITE_FILLER_SUPPORTED)
++    0, /* 40 */
+ #else  /* !PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED */
+-    png_set_filler, /* 36 */
++    png_set_add_alpha, /* 40 */
+ #endif /* !PNG_READ_FILLER_SUPPORTED !PNG_WRITE_FILLER_SUPPORTED */
+ #if !defined(PNG_READ_SWAP_SUPPORTED) && !defined(PNG_WRITE_SWAP_SUPPORTED)
+-    0, /* 37 */
++    0, /* 41 */
+ #else  /* !PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED */
+-    png_set_swap, /* 37 */
++    png_set_swap, /* 41 */
+ #endif /* !PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED */
+ #if !defined(PNG_READ_PACK_SUPPORTED) && !defined(PNG_WRITE_PACK_SUPPORTED)
+-    0, /* 38 */
++    0, /* 42 */
+ #else  /* !PNG_READ_PACK_SUPPORTED !PNG_WRITE_PACK_SUPPORTED */
+-    png_set_packing, /* 38 */
++    png_set_packing, /* 42 */
+ #endif /* !PNG_READ_PACK_SUPPORTED !PNG_WRITE_PACK_SUPPORTED */
+ #if !defined(PNG_READ_PACKSWAP_SUPPORTED) && !defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+-    0, /* 39 */
++    0, /* 43 */
+ #else  /* !PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED */
+-    png_set_packswap, /* 39 */
++    png_set_packswap, /* 43 */
+ #endif /* !PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED */
+ #if !defined(PNG_READ_SHIFT_SUPPORTED) && !defined(PNG_WRITE_SHIFT_SUPPORTED)
+-    0, /* 40 */
++    0, /* 44 */
+ #else  /* !PNG_READ_SHIFT_SUPPORTED !PNG_WRITE_SHIFT_SUPPORTED */
+-    png_set_shift, /* 40 */
++    png_set_shift, /* 44 */
+ #endif /* !PNG_READ_SHIFT_SUPPORTED !PNG_WRITE_SHIFT_SUPPORTED */
+ #if !defined(PNG_READ_INTERLACING_SUPPORTED) && !defined(PNG_WRITE_INTERLACING_SUPPORTED)
+-    0, /* 41 */
++    0, /* 45 */
+ #else  /* !PNG_READ_INTERLACING_SUPPORTED !PNG_WRITE_INTERLACING_SUPPORTED */
+-    png_set_interlace_handling, /* 41 */
++    png_set_interlace_handling, /* 45 */
+ #endif /* !PNG_READ_INTERLACING_SUPPORTED !PNG_WRITE_INTERLACING_SUPPORTED */
+ #if !defined(PNG_READ_INVERT_SUPPORTED) && !defined(PNG_WRITE_INVERT_SUPPORTED)
+-    0, /* 42 */
++    0, /* 46 */
+ #else  /* !PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED */
+-    png_set_invert_mono, /* 42 */
++    png_set_invert_mono, /* 46 */
+ #endif /* !PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED */
+-#if !defined(PNG_READ_BACKGROUND_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 43 */
+-#else  /* !PNG_READ_BACKGROUND_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_background, /* 43 */
+-#endif /* !PNG_READ_BACKGROUND_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_READ_16_TO_8_SUPPORTED)
+-    0, /* 44 */
+-#else  /* !PNG_READ_16_TO_8_SUPPORTED */
+-    png_set_strip_16, /* 44 */
+-#endif /* !PNG_READ_16_TO_8_SUPPORTED */
+-#if !defined(PNG_READ_DITHER_SUPPORTED)
+-    0, /* 45 */
+-#else  /* !PNG_READ_DITHER_SUPPORTED */
+-    0, /* 45 */
+-#endif /* !PNG_READ_DITHER_SUPPORTED */
++#if !defined(PNG_READ_BACKGROUND_SUPPORTED)
++    0, /* 47 */
++#else  /* !PNG_READ_BACKGROUND_SUPPORTED */
++    png_set_background, /* 47 */
++#endif /* !PNG_READ_BACKGROUND_SUPPORTED */
++#if !defined(PNG_READ_STRIP_16_TO_8_SUPPORTED)
++    0, /* 48 */
++#else  /* !PNG_READ_STRIP_16_TO_8_SUPPORTED */
++    png_set_strip_16, /* 48 */
++#endif /* !PNG_READ_STRIP_16_TO_8_SUPPORTED */
++#if !defined(PNG_READ_QUANTIZE_SUPPORTED)
++    0, /* 49 */
++#else  /* !PNG_READ_QUANTIZE_SUPPORTED */
++    png_set_quantize, /* 49 */
++#endif /* !PNG_READ_QUANTIZE_SUPPORTED */
+ #if !defined(PNG_READ_GAMMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 46 */
++    0, /* 50 */
+ #else  /* !PNG_READ_GAMMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_gamma, /* 46 */
++    png_set_gamma, /* 50 */
+ #endif /* !PNG_READ_GAMMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_READ_EMPTY_PLTE_SUPPORTED) && !defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
+-    0, /* 47 */
+-#else  /* !PNG_READ_EMPTY_PLTE_SUPPORTED !PNG_WRITE_EMPTY_PLTE_SUPPORTED */
+-    png_permit_empty_plte, /* 47 */
+-#endif /* !PNG_READ_EMPTY_PLTE_SUPPORTED !PNG_WRITE_EMPTY_PLTE_SUPPORTED */
+ #if !defined(PNG_WRITE_FLUSH_SUPPORTED)
+-    0, /* 48 */
++    0, /* 51 */
+ #else  /* !PNG_WRITE_FLUSH_SUPPORTED */
+-    png_set_flush, /* 48 */
++    png_set_flush, /* 51 */
+ #endif /* !PNG_WRITE_FLUSH_SUPPORTED */
+ #if !defined(PNG_WRITE_FLUSH_SUPPORTED)
+-    0, /* 49 */
++    0, /* 52 */
+ #else  /* !PNG_WRITE_FLUSH_SUPPORTED */
+-    png_write_flush, /* 49 */
++    png_write_flush, /* 52 */
+ #endif /* !PNG_WRITE_FLUSH_SUPPORTED */
+-    png_start_read_image, /* 50 */
+-    png_read_update_info, /* 51 */
+-    png_read_rows, /* 52 */
+-    png_read_row, /* 53 */
+-    png_read_image, /* 54 */
+-    png_write_row, /* 55 */
+-    png_write_rows, /* 56 */
+-    png_write_image, /* 57 */
+-    png_write_end, /* 58 */
+-    png_read_end, /* 59 */
+-    png_destroy_info_struct, /* 60 */
+-    png_destroy_read_struct, /* 61 */
++    png_start_read_image, /* 53 */
++    png_read_update_info, /* 54 */
++#if !defined(PNG_SEQUENTIAL_READ_SUPPORTED)
++    0, /* 55 */
++#else  /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_read_rows, /* 55 */
++#endif /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++#if !defined(PNG_SEQUENTIAL_READ_SUPPORTED)
++    0, /* 56 */
++#else  /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_read_row, /* 56 */
++#endif /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++#if !defined(PNG_SEQUENTIAL_READ_SUPPORTED)
++    0, /* 57 */
++#else  /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_read_image, /* 57 */
++#endif /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_write_row, /* 58 */
++    png_write_rows, /* 59 */
++    png_write_image, /* 60 */
++    png_write_end, /* 61 */
++#if !defined(PNG_SEQUENTIAL_READ_SUPPORTED)
+     0, /* 62 */
+-    png_destroy_write_struct, /* 63 */
+-    0, /* 64 */
+-    0, /* 65 */
++#else  /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_read_end, /* 62 */
++#endif /* !PNG_SEQUENTIAL_READ_SUPPORTED */
++    png_destroy_info_struct, /* 63 */
++    png_destroy_read_struct, /* 64 */
++    png_destroy_write_struct, /* 65 */
+     png_set_crc_action, /* 66 */
+     png_set_filter, /* 67 */
+ #if !defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+@@ -208,16 +232,36 @@ const PngtclStubs pngtclStubs = {
+ #else  /* !PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+     png_set_filter_heuristics, /* 68 */
+ #endif /* !PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_WRITE_SUPPORTED)
++    0, /* 69 */
++#else  /* !PNG_WRITE_SUPPORTED */
+     png_set_compression_level, /* 69 */
++#endif /* !PNG_WRITE_SUPPORTED */
++#if !defined(PNG_WRITE_SUPPORTED)
++    0, /* 70 */
++#else  /* !PNG_WRITE_SUPPORTED */
+     png_set_compression_mem_level, /* 70 */
++#endif /* !PNG_WRITE_SUPPORTED */
++#if !defined(PNG_WRITE_SUPPORTED)
++    0, /* 71 */
++#else  /* !PNG_WRITE_SUPPORTED */
+     png_set_compression_strategy, /* 71 */
++#endif /* !PNG_WRITE_SUPPORTED */
++#if !defined(PNG_WRITE_SUPPORTED)
++    0, /* 72 */
++#else  /* !PNG_WRITE_SUPPORTED */
+     png_set_compression_window_bits, /* 72 */
++#endif /* !PNG_WRITE_SUPPORTED */
++#if !defined(PNG_WRITE_SUPPORTED)
++    0, /* 73 */
++#else  /* !PNG_WRITE_SUPPORTED */
+     png_set_compression_method, /* 73 */
+-#if defined(PNG_NO_STDIO)
++#endif /* !PNG_WRITE_SUPPORTED */
++#if !defined(PNG_STDIO_SUPPORTED)
+     0, /* 74 */
+-#else  /* PNG_NO_STDIO */
++#else  /* !PNG_STDIO_SUPPORTED */
+     png_init_io, /* 74 */
+-#endif /* PNG_NO_STDIO */
++#endif /* !PNG_STDIO_SUPPORTED */
+     png_set_error_fn, /* 75 */
+     png_get_error_ptr, /* 76 */
+     png_set_write_fn, /* 77 */
+@@ -235,36 +279,36 @@ const PngtclStubs pngtclStubs = {
+ #else  /* !PNG_USER_MEM_SUPPORTED */
+     png_get_mem_ptr, /* 83 */
+ #endif /* !PNG_USER_MEM_SUPPORTED */
+-#if !defined(PNG_READ_USER_TRANSFORM_SUPPORTED) && !defined(PNG_LEGACY_SUPPORTED)
++#if !defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
+     0, /* 84 */
+-#else  /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
++#else  /* !PNG_READ_USER_TRANSFORM_SUPPORTED */
+     png_set_read_user_transform_fn, /* 84 */
+-#endif /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
+-#if !defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) && !defined(PNG_LEGACY_SUPPORTED)
++#endif /* !PNG_READ_USER_TRANSFORM_SUPPORTED */
++#if !defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
+     0, /* 85 */
+-#else  /* !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
++#else  /* !PNG_WRITE_USER_TRANSFORM_SUPPORTED */
+     png_set_write_user_transform_fn, /* 85 */
+-#endif /* !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
+-#if !defined(PNG_READ_USER_TRANSFORM_SUPPORTED) && !defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) && !defined(PNG_LEGACY_SUPPORTED)
++#endif /* !PNG_WRITE_USER_TRANSFORM_SUPPORTED */
++#if !defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
+     0, /* 86 */
+-#else  /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
++#else  /* !PNG_USER_TRANSFORM_PTR_SUPPORTED */
+     png_set_user_transform_info, /* 86 */
+-#endif /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
+-#if !defined(PNG_READ_USER_TRANSFORM_SUPPORTED) && !defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) && !defined(PNG_LEGACY_SUPPORTED)
++#endif /* !PNG_USER_TRANSFORM_PTR_SUPPORTED */
++#if !defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
+     0, /* 87 */
+-#else  /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
++#else  /* !PNG_USER_TRANSFORM_PTR_SUPPORTED */
+     png_get_user_transform_ptr, /* 87 */
+-#endif /* !PNG_READ_USER_TRANSFORM_SUPPORTED !PNG_WRITE_USER_TRANSFORM_SUPPORTED !PNG_LEGACY_SUPPORTED */
+-#if !defined(PNG_READ_USER_CHUNKS_SUPPORTED)
++#endif /* !PNG_USER_TRANSFORM_PTR_SUPPORTED */
++#if !defined(PNG_USER_CHUNKS_SUPPORTED)
+     0, /* 88 */
+-#else  /* !PNG_READ_USER_CHUNKS_SUPPORTED */
++#else  /* !PNG_USER_CHUNKS_SUPPORTED */
+     png_set_read_user_chunk_fn, /* 88 */
+-#endif /* !PNG_READ_USER_CHUNKS_SUPPORTED */
+-#if !defined(PNG_READ_USER_CHUNKS_SUPPORTED)
++#endif /* !PNG_USER_CHUNKS_SUPPORTED */
++#if !defined(PNG_USER_CHUNKS_SUPPORTED)
+     0, /* 89 */
+-#else  /* !PNG_READ_USER_CHUNKS_SUPPORTED */
++#else  /* !PNG_USER_CHUNKS_SUPPORTED */
+     png_get_user_chunk_ptr, /* 89 */
+-#endif /* !PNG_READ_USER_CHUNKS_SUPPORTED */
++#endif /* !PNG_USER_CHUNKS_SUPPORTED */
+ #if !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+     0, /* 90 */
+ #else  /* !PNG_PROGRESSIVE_READ_SUPPORTED */
+@@ -280,1024 +324,631 @@ const PngtclStubs pngtclStubs = {
+ #else  /* !PNG_PROGRESSIVE_READ_SUPPORTED */
+     png_process_data, /* 92 */
+ #endif /* !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
++#if !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_READ_INTERLACING_SUPPORTED)
+     0, /* 93 */
+-#else  /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++#else  /* !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_READ_INTERLACING_SUPPORTED */
+     png_progressive_combine_row, /* 93 */
+-#endif /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++#endif /* !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_READ_INTERLACING_SUPPORTED */
+     png_malloc, /* 94 */
+-    png_free, /* 95 */
+-    png_free_data, /* 96 */
+-#if !defined(PNG_FREE_ME_SUPPORTED)
+-    0, /* 97 */
+-#else  /* !PNG_FREE_ME_SUPPORTED */
+-    png_data_freer, /* 97 */
+-#endif /* !PNG_FREE_ME_SUPPORTED */
++    png_calloc, /* 95 */
++    png_malloc_warn, /* 96 */
++    png_free, /* 97 */
++    png_free_data, /* 98 */
++    png_data_freer, /* 99 */
+ #if !defined(PNG_USER_MEM_SUPPORTED)
+-    0, /* 98 */
++    0, /* 100 */
+ #else  /* !PNG_USER_MEM_SUPPORTED */
+-    png_malloc_default, /* 98 */
++    png_malloc_default, /* 100 */
+ #endif /* !PNG_USER_MEM_SUPPORTED */
+ #if !defined(PNG_USER_MEM_SUPPORTED)
+-    0, /* 99 */
++    0, /* 101 */
+ #else  /* !PNG_USER_MEM_SUPPORTED */
+-    png_free_default, /* 99 */
++    png_free_default, /* 101 */
+ #endif /* !PNG_USER_MEM_SUPPORTED */
+-    0, /* 100 */
+-    0, /* 101 */
+-#if !defined(USE_FAR_KEYWORD)
++#if !defined(PNG_ERROR_TEXT_SUPPORTED)
+     0, /* 102 */
+-#else  /* !USE_FAR_KEYWORD */
+-    png_far_to_near, /* 102 */
+-#endif /* !USE_FAR_KEYWORD */
+-    png_error, /* 103 */
+-    png_chunk_error, /* 104 */
++#else  /* !PNG_ERROR_TEXT_SUPPORTED */
++    png_error, /* 102 */
++#endif /* !PNG_ERROR_TEXT_SUPPORTED */
++#if !defined(PNG_ERROR_TEXT_SUPPORTED)
++    0, /* 103 */
++#else  /* !PNG_ERROR_TEXT_SUPPORTED */
++    png_chunk_error, /* 103 */
++#endif /* !PNG_ERROR_TEXT_SUPPORTED */
++#if defined(PNG_ERROR_TEXT_SUPPORTED)
++    0, /* 104 */
++#else  /* PNG_ERROR_TEXT_SUPPORTED */
++    png_err, /* 104 */
++#endif /* PNG_ERROR_TEXT_SUPPORTED */
++#if !defined(PNG_WARNINGS_SUPPORTED)
++    0, /* 105 */
++#else  /* !PNG_WARNINGS_SUPPORTED */
+     png_warning, /* 105 */
++#endif /* !PNG_WARNINGS_SUPPORTED */
++#if !defined(PNG_WARNINGS_SUPPORTED)
++    0, /* 106 */
++#else  /* !PNG_WARNINGS_SUPPORTED */
+     png_chunk_warning, /* 106 */
+-    png_get_valid, /* 107 */
+-    png_get_rowbytes, /* 108 */
+-#if !defined(PNG_INFO_IMAGE_SUPPORTED)
++#endif /* !PNG_WARNINGS_SUPPORTED */
++#if !defined(PNG_BENIGN_ERRORS_SUPPORTED)
++    0, /* 107 */
++#else  /* !PNG_BENIGN_ERRORS_SUPPORTED */
++    png_benign_error, /* 107 */
++#endif /* !PNG_BENIGN_ERRORS_SUPPORTED */
++#if !defined(PNG_BENIGN_ERRORS_SUPPORTED)
++    0, /* 108 */
++#else  /* !PNG_BENIGN_ERRORS_SUPPORTED */
++    png_chunk_benign_error, /* 108 */
++#endif /* !PNG_BENIGN_ERRORS_SUPPORTED */
++#if !defined(PNG_BENIGN_ERRORS_SUPPORTED)
+     0, /* 109 */
++#else  /* !PNG_BENIGN_ERRORS_SUPPORTED */
++    png_set_benign_errors, /* 109 */
++#endif /* !PNG_BENIGN_ERRORS_SUPPORTED */
++    png_get_valid, /* 110 */
++    png_get_rowbytes, /* 111 */
++#if !defined(PNG_INFO_IMAGE_SUPPORTED)
++    0, /* 112 */
+ #else  /* !PNG_INFO_IMAGE_SUPPORTED */
+-    png_get_rows, /* 109 */
++    png_get_rows, /* 112 */
+ #endif /* !PNG_INFO_IMAGE_SUPPORTED */
+ #if !defined(PNG_INFO_IMAGE_SUPPORTED)
+-    0, /* 110 */
++    0, /* 113 */
+ #else  /* !PNG_INFO_IMAGE_SUPPORTED */
+-    png_set_rows, /* 110 */
++    png_set_rows, /* 113 */
+ #endif /* !PNG_INFO_IMAGE_SUPPORTED */
+-    png_get_channels, /* 111 */
++    png_get_channels, /* 114 */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 112 */
++    0, /* 115 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_image_width, /* 112 */
++    png_get_image_width, /* 115 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 113 */
++    0, /* 116 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_image_height, /* 113 */
++    png_get_image_height, /* 116 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 114 */
++    0, /* 117 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_bit_depth, /* 114 */
++    png_get_bit_depth, /* 117 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 115 */
++    0, /* 118 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_color_type, /* 115 */
++    png_get_color_type, /* 118 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 116 */
++    0, /* 119 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_filter_type, /* 116 */
++    png_get_filter_type, /* 119 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 117 */
++    0, /* 120 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_interlace_type, /* 117 */
++    png_get_interlace_type, /* 120 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 118 */
++    0, /* 121 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_compression_type, /* 118 */
++    png_get_compression_type, /* 121 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 119 */
++    0, /* 122 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_pixels_per_meter, /* 119 */
++    png_get_pixels_per_meter, /* 122 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 120 */
++    0, /* 123 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_x_pixels_per_meter, /* 120 */
++    png_get_x_pixels_per_meter, /* 123 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 121 */
++    0, /* 124 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_y_pixels_per_meter, /* 121 */
++    png_get_y_pixels_per_meter, /* 124 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 122 */
++    0, /* 125 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_get_pixel_aspect_ratio, /* 122 */
++    png_get_pixel_aspect_ratio, /* 125 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 123 */
++    0, /* 126 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_x_offset_pixels, /* 123 */
++    png_get_x_offset_pixels, /* 126 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 124 */
++    0, /* 127 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_y_offset_pixels, /* 124 */
++    png_get_y_offset_pixels, /* 127 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 125 */
++    0, /* 128 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_x_offset_microns, /* 125 */
++    png_get_x_offset_microns, /* 128 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+ #if !defined(PNG_EASY_ACCESS_SUPPORTED)
+-    0, /* 126 */
++    0, /* 129 */
+ #else  /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_y_offset_microns, /* 126 */
++    png_get_y_offset_microns, /* 129 */
+ #endif /* !PNG_EASY_ACCESS_SUPPORTED */
+-    png_get_signature, /* 127 */
+-#if !defined(PNG_READ_bKGD_SUPPORTED)
+-    0, /* 128 */
+-#else  /* !PNG_READ_bKGD_SUPPORTED */
+-    png_get_bKGD, /* 128 */
+-#endif /* !PNG_READ_bKGD_SUPPORTED */
++    png_get_signature, /* 130 */
+ #if !defined(PNG_bKGD_SUPPORTED)
+-    0, /* 129 */
++    0, /* 131 */
++#else  /* !PNG_bKGD_SUPPORTED */
++    png_get_bKGD, /* 131 */
++#endif /* !PNG_bKGD_SUPPORTED */
++#if !defined(PNG_bKGD_SUPPORTED)
++    0, /* 132 */
+ #else  /* !PNG_bKGD_SUPPORTED */
+-    png_set_bKGD, /* 129 */
++    png_set_bKGD, /* 132 */
+ #endif /* !PNG_bKGD_SUPPORTED */
+-#if !defined(PNG_READ_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 130 */
+-#else  /* !PNG_READ_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_get_cHRM, /* 130 */
+-#endif /* !PNG_READ_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++    0, /* 133 */
++#else  /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_get_cHRM, /* 133 */
++#endif /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+ #if !defined(PNG_READ_cHRM_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+-    0, /* 131 */
++    0, /* 134 */
+ #else  /* !PNG_READ_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_get_cHRM_fixed, /* 131 */
++    png_get_cHRM_fixed, /* 134 */
+ #endif /* !PNG_READ_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+ #if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 132 */
++    0, /* 135 */
+ #else  /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_cHRM, /* 132 */
++    png_set_cHRM, /* 135 */
+ #endif /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+-    0, /* 133 */
+-#else  /* !PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_set_cHRM_fixed, /* 133 */
+-#endif /* !PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-#if !defined(PNG_READ_gAMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 134 */
+-#else  /* !PNG_READ_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_get_gAMA, /* 134 */
+-#endif /* !PNG_READ_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_READ_gAMA_SUPPORTED)
+-    0, /* 135 */
+-#else  /* !PNG_READ_gAMA_SUPPORTED */
+-    png_get_gAMA_fixed, /* 135 */
+-#endif /* !PNG_READ_gAMA_SUPPORTED */
+-#if !defined(PNG_gAMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++#if !defined(PNG_cHRM_SUPPORTED)
+     0, /* 136 */
++#else  /* !PNG_cHRM_SUPPORTED */
++    png_set_cHRM_fixed, /* 136 */
++#endif /* !PNG_cHRM_SUPPORTED */
++#if !defined(PNG_gAMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++    0, /* 137 */
+ #else  /* !PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_gAMA, /* 136 */
++    png_get_gAMA, /* 137 */
+ #endif /* !PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+ #if !defined(PNG_gAMA_SUPPORTED)
+-    0, /* 137 */
++    0, /* 138 */
+ #else  /* !PNG_gAMA_SUPPORTED */
+-    png_set_gAMA_fixed, /* 137 */
++    png_get_gAMA_fixed, /* 138 */
+ #endif /* !PNG_gAMA_SUPPORTED */
+-#if !defined(PNG_READ_hIST_SUPPORTED)
+-    0, /* 138 */
+-#else  /* !PNG_READ_hIST_SUPPORTED */
+-    png_get_hIST, /* 138 */
+-#endif /* !PNG_READ_hIST_SUPPORTED */
+-#if !defined(PNG_hIST_SUPPORTED)
++#if !defined(PNG_gAMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 139 */
++#else  /* !PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_set_gAMA, /* 139 */
++#endif /* !PNG_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_gAMA_SUPPORTED)
++    0, /* 140 */
++#else  /* !PNG_gAMA_SUPPORTED */
++    png_set_gAMA_fixed, /* 140 */
++#endif /* !PNG_gAMA_SUPPORTED */
++#if !defined(PNG_hIST_SUPPORTED)
++    0, /* 141 */
+ #else  /* !PNG_hIST_SUPPORTED */
+-    png_set_hIST, /* 139 */
++    png_get_hIST, /* 141 */
+ #endif /* !PNG_hIST_SUPPORTED */
+-    png_get_IHDR, /* 140 */
+-    png_set_IHDR, /* 141 */
+-#if !defined(PNG_READ_oFFs_SUPPORTED)
++#if !defined(PNG_hIST_SUPPORTED)
+     0, /* 142 */
+-#else  /* !PNG_READ_oFFs_SUPPORTED */
+-    png_get_oFFs, /* 142 */
+-#endif /* !PNG_READ_oFFs_SUPPORTED */
++#else  /* !PNG_hIST_SUPPORTED */
++    png_set_hIST, /* 142 */
++#endif /* !PNG_hIST_SUPPORTED */
++    png_get_IHDR, /* 143 */
++    png_set_IHDR, /* 144 */
++#if !defined(PNG_oFFs_SUPPORTED)
++    0, /* 145 */
++#else  /* !PNG_oFFs_SUPPORTED */
++    png_get_oFFs, /* 145 */
++#endif /* !PNG_oFFs_SUPPORTED */
+ #if !defined(PNG_oFFs_SUPPORTED)
+-    0, /* 143 */
++    0, /* 146 */
+ #else  /* !PNG_oFFs_SUPPORTED */
+-    png_set_oFFs, /* 143 */
++    png_set_oFFs, /* 146 */
+ #endif /* !PNG_oFFs_SUPPORTED */
+-#if !defined(PNG_READ_pCAL_SUPPORTED)
+-    0, /* 144 */
+-#else  /* !PNG_READ_pCAL_SUPPORTED */
+-    png_get_pCAL, /* 144 */
+-#endif /* !PNG_READ_pCAL_SUPPORTED */
+ #if !defined(PNG_pCAL_SUPPORTED)
+-    0, /* 145 */
++    0, /* 147 */
+ #else  /* !PNG_pCAL_SUPPORTED */
+-    png_set_pCAL, /* 145 */
++    png_get_pCAL, /* 147 */
++#endif /* !PNG_pCAL_SUPPORTED */
++#if !defined(PNG_pCAL_SUPPORTED)
++    0, /* 148 */
++#else  /* !PNG_pCAL_SUPPORTED */
++    png_set_pCAL, /* 148 */
+ #endif /* !PNG_pCAL_SUPPORTED */
+-#if !defined(PNG_READ_pHYs_SUPPORTED)
+-    0, /* 146 */
+-#else  /* !PNG_READ_pHYs_SUPPORTED */
+-    png_get_pHYs, /* 146 */
+-#endif /* !PNG_READ_pHYs_SUPPORTED */
+ #if !defined(PNG_pHYs_SUPPORTED)
+-    0, /* 147 */
++    0, /* 149 */
+ #else  /* !PNG_pHYs_SUPPORTED */
+-    png_set_pHYs, /* 147 */
++    png_get_pHYs, /* 149 */
+ #endif /* !PNG_pHYs_SUPPORTED */
+-    png_get_PLTE, /* 148 */
+-    png_set_PLTE, /* 149 */
+-#if !defined(PNG_READ_sBIT_SUPPORTED)
++#if !defined(PNG_pHYs_SUPPORTED)
+     0, /* 150 */
+-#else  /* !PNG_READ_sBIT_SUPPORTED */
+-    png_get_sBIT, /* 150 */
+-#endif /* !PNG_READ_sBIT_SUPPORTED */
++#else  /* !PNG_pHYs_SUPPORTED */
++    png_set_pHYs, /* 150 */
++#endif /* !PNG_pHYs_SUPPORTED */
++    png_get_PLTE, /* 151 */
++    png_set_PLTE, /* 152 */
++#if !defined(PNG_sBIT_SUPPORTED)
++    0, /* 153 */
++#else  /* !PNG_sBIT_SUPPORTED */
++    png_get_sBIT, /* 153 */
++#endif /* !PNG_sBIT_SUPPORTED */
+ #if !defined(PNG_sBIT_SUPPORTED)
+-    0, /* 151 */
++    0, /* 154 */
+ #else  /* !PNG_sBIT_SUPPORTED */
+-    png_set_sBIT, /* 151 */
++    png_set_sBIT, /* 154 */
+ #endif /* !PNG_sBIT_SUPPORTED */
+-#if !defined(PNG_READ_sRGB_SUPPORTED)
+-    0, /* 152 */
+-#else  /* !PNG_READ_sRGB_SUPPORTED */
+-    png_get_sRGB, /* 152 */
+-#endif /* !PNG_READ_sRGB_SUPPORTED */
+ #if !defined(PNG_sRGB_SUPPORTED)
+-    0, /* 153 */
++    0, /* 155 */
+ #else  /* !PNG_sRGB_SUPPORTED */
+-    png_set_sRGB, /* 153 */
++    png_get_sRGB, /* 155 */
+ #endif /* !PNG_sRGB_SUPPORTED */
+ #if !defined(PNG_sRGB_SUPPORTED)
+-    0, /* 154 */
++    0, /* 156 */
+ #else  /* !PNG_sRGB_SUPPORTED */
+-    png_set_sRGB_gAMA_and_cHRM, /* 154 */
++    png_set_sRGB, /* 156 */
++#endif /* !PNG_sRGB_SUPPORTED */
++#if !defined(PNG_sRGB_SUPPORTED)
++    0, /* 157 */
++#else  /* !PNG_sRGB_SUPPORTED */
++    png_set_sRGB_gAMA_and_cHRM, /* 157 */
+ #endif /* !PNG_sRGB_SUPPORTED */
+-#if !defined(PNG_READ_iCCP_SUPPORTED)
+-    0, /* 155 */
+-#else  /* !PNG_READ_iCCP_SUPPORTED */
+-    png_get_iCCP, /* 155 */
+-#endif /* !PNG_READ_iCCP_SUPPORTED */
+ #if !defined(PNG_iCCP_SUPPORTED)
+-    0, /* 156 */
++    0, /* 158 */
+ #else  /* !PNG_iCCP_SUPPORTED */
+-    png_set_iCCP, /* 156 */
++    png_get_iCCP, /* 158 */
++#endif /* !PNG_iCCP_SUPPORTED */
++#if !defined(PNG_iCCP_SUPPORTED)
++    0, /* 159 */
++#else  /* !PNG_iCCP_SUPPORTED */
++    png_set_iCCP, /* 159 */
+ #endif /* !PNG_iCCP_SUPPORTED */
+-#if !defined(PNG_READ_sPLT_SUPPORTED)
+-    0, /* 157 */
+-#else  /* !PNG_READ_sPLT_SUPPORTED */
+-    png_get_sPLT, /* 157 */
+-#endif /* !PNG_READ_sPLT_SUPPORTED */
+ #if !defined(PNG_sPLT_SUPPORTED)
+-    0, /* 158 */
++    0, /* 160 */
+ #else  /* !PNG_sPLT_SUPPORTED */
+-    png_set_sPLT, /* 158 */
++    png_get_sPLT, /* 160 */
++#endif /* !PNG_sPLT_SUPPORTED */
++#if !defined(PNG_sPLT_SUPPORTED)
++    0, /* 161 */
++#else  /* !PNG_sPLT_SUPPORTED */
++    png_set_sPLT, /* 161 */
+ #endif /* !PNG_sPLT_SUPPORTED */
+ #if !defined(PNG_READ_TEXT_SUPPORTED)
+-    0, /* 159 */
++    0, /* 162 */
+ #else  /* !PNG_READ_TEXT_SUPPORTED */
+-    png_get_text, /* 159 */
++    png_get_text, /* 162 */
+ #endif /* !PNG_READ_TEXT_SUPPORTED */
+ #if !defined(PNG_TEXT_SUPPORTED)
+-    0, /* 160 */
++    0, /* 163 */
+ #else  /* !PNG_TEXT_SUPPORTED */
+-    png_set_text, /* 160 */
++    png_set_text, /* 163 */
+ #endif /* !PNG_TEXT_SUPPORTED */
+-#if !defined(PNG_READ_tIME_SUPPORTED)
+-    0, /* 161 */
+-#else  /* !PNG_READ_tIME_SUPPORTED */
+-    png_get_tIME, /* 161 */
+-#endif /* !PNG_READ_tIME_SUPPORTED */
+ #if !defined(PNG_tIME_SUPPORTED)
+-    0, /* 162 */
++    0, /* 164 */
+ #else  /* !PNG_tIME_SUPPORTED */
+-    png_set_tIME, /* 162 */
++    png_get_tIME, /* 164 */
++#endif /* !PNG_tIME_SUPPORTED */
++#if !defined(PNG_tIME_SUPPORTED)
++    0, /* 165 */
++#else  /* !PNG_tIME_SUPPORTED */
++    png_set_tIME, /* 165 */
+ #endif /* !PNG_tIME_SUPPORTED */
+-#if !defined(PNG_READ_tRNS_SUPPORTED)
+-    0, /* 163 */
+-#else  /* !PNG_READ_tRNS_SUPPORTED */
+-    png_get_tRNS, /* 163 */
+-#endif /* !PNG_READ_tRNS_SUPPORTED */
+ #if !defined(PNG_tRNS_SUPPORTED)
+-    0, /* 164 */
++    0, /* 166 */
+ #else  /* !PNG_tRNS_SUPPORTED */
+-    png_set_tRNS, /* 164 */
++    png_get_tRNS, /* 166 */
+ #endif /* !PNG_tRNS_SUPPORTED */
+-#if !defined(PNG_READ_sCAL_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+-    0, /* 165 */
+-#else  /* !PNG_READ_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_get_sCAL, /* 165 */
+-#endif /* !PNG_READ_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_READ_sCAL_SUPPORTED) || defined(PNG_FLOATING_POINT_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+-    0, /* 166 */
+-#else  /* !PNG_READ_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_get_sCAL_s, /* 166 */
+-#endif /* !PNG_READ_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-#if !defined(PNG_sCAL_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++#if !defined(PNG_tRNS_SUPPORTED)
+     0, /* 167 */
++#else  /* !PNG_tRNS_SUPPORTED */
++    png_set_tRNS, /* 167 */
++#endif /* !PNG_tRNS_SUPPORTED */
++#if !defined(PNG_sCAL_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++    0, /* 168 */
+ #else  /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_set_sCAL, /* 167 */
++    png_get_sCAL, /* 168 */
+ #endif /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_sCAL_SUPPORTED) || defined(PNG_FLOATING_POINT_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+-    0, /* 168 */
+-#else  /* !PNG_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_set_sCAL_s, /* 168 */
+-#endif /* !PNG_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-#if !defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
++#if !defined(PNG_sCAL_SUPPORTED)
+     0, /* 169 */
+-#else  /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-    png_set_keep_unknown_chunks, /* 169 */
+-#endif /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-#if !defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
++#else  /* !PNG_sCAL_SUPPORTED */
++    png_get_sCAL_s, /* 169 */
++#endif /* !PNG_sCAL_SUPPORTED */
++#if !defined(PNG_sCAL_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 170 */
++#else  /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_set_sCAL, /* 170 */
++#endif /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_sCAL_SUPPORTED)
++    0, /* 171 */
++#else  /* !PNG_sCAL_SUPPORTED */
++    png_set_sCAL_s, /* 171 */
++#endif /* !PNG_sCAL_SUPPORTED */
++#if !defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
++    0, /* 172 */
++#else  /* !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
++    png_set_keep_unknown_chunks, /* 172 */
++#endif /* !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
++#if !defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
++    0, /* 173 */
++#else  /* !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
++    png_handle_as_unknown, /* 173 */
++#endif /* !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
++#if !defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
++    0, /* 174 */
+ #else  /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-    png_set_unknown_chunks, /* 170 */
++    png_set_unknown_chunks, /* 174 */
+ #endif /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+ #if !defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+-    0, /* 171 */
++    0, /* 175 */
+ #else  /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-    png_set_unknown_chunk_location, /* 171 */
++    png_set_unknown_chunk_location, /* 175 */
+ #endif /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+ #if !defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
+-    0, /* 172 */
++    0, /* 176 */
+ #else  /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-    png_get_unknown_chunks, /* 172 */
++    png_get_unknown_chunks, /* 176 */
+ #endif /* !PNG_UNKNOWN_CHUNKS_SUPPORTED */
+-    png_set_invalid, /* 173 */
++    png_set_invalid, /* 177 */
+ #if !defined(PNG_INFO_IMAGE_SUPPORTED)
+-    0, /* 174 */
++    0, /* 178 */
+ #else  /* !PNG_INFO_IMAGE_SUPPORTED */
+-    png_read_png, /* 174 */
++    png_read_png, /* 178 */
+ #endif /* !PNG_INFO_IMAGE_SUPPORTED */
+ #if !defined(PNG_INFO_IMAGE_SUPPORTED)
+-    0, /* 175 */
++    0, /* 179 */
+ #else  /* !PNG_INFO_IMAGE_SUPPORTED */
+-    png_write_png, /* 175 */
++    png_write_png, /* 179 */
+ #endif /* !PNG_INFO_IMAGE_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || defined(PNG_USE_GLOBAL_ARRAYS) || defined(PNG_NO_EXTERN) && !defined(PNG_ALWAYS_EXTERN)
+-    0, /* 176 */
+-#else  /* !PNG_INTERNAL PNG_USE_GLOBAL_ARRAYS PNG_NO_EXTERN !PNG_ALWAYS_EXTERN */
+-    png_sig_bytes, /* 176 */
+-#endif /* !PNG_INTERNAL PNG_USE_GLOBAL_ARRAYS PNG_NO_EXTERN !PNG_ALWAYS_EXTERN */
+-    png_get_copyright, /* 177 */
+-    png_get_header_ver, /* 178 */
+-    png_get_header_version, /* 179 */
+-    png_get_libpng_ver, /* 180 */
+-    0, /* 181 */
+-    0, /* 182 */
+-    0, /* 183 */
+-#if !defined(PNG_INTERNAL)
++    png_get_copyright, /* 180 */
++    png_get_header_ver, /* 181 */
++    png_get_header_version, /* 182 */
++    png_get_libpng_ver, /* 183 */
++#if !defined(PNG_MNG_FEATURES_SUPPORTED)
+     0, /* 184 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_init, /* 184 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_MNG_FEATURES_SUPPORTED */
++    png_permit_mng_features, /* 184 */
++#endif /* !PNG_MNG_FEATURES_SUPPORTED */
++#if !defined(PNG_ERROR_NUMBERS_SUPPORTED)
+     0, /* 185 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_init_2, /* 185 */
+-#endif /* !PNG_INTERNAL */
++#else  /* !PNG_ERROR_NUMBERS_SUPPORTED */
++    png_set_strip_error_numbers, /* 185 */
++#endif /* !PNG_ERROR_NUMBERS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 186 */
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_set_user_limits, /* 186 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 187 */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_get_user_width_max, /* 187 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 188 */
+-#else  /* !PNG_INTERNAL */
+-    png_create_struct, /* 188 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_get_user_height_max, /* 188 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 189 */
+-#else  /* !PNG_INTERNAL */
+-    png_destroy_struct, /* 189 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_set_chunk_cache_max, /* 189 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 190 */
+-#else  /* !PNG_INTERNAL */
+-    png_create_struct_2, /* 190 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_get_chunk_cache_max, /* 190 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 191 */
+-#else  /* !PNG_INTERNAL */
+-    png_destroy_struct_2, /* 191 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_set_chunk_malloc_max, /* 191 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_SET_USER_LIMITS_SUPPORTED)
+     0, /* 192 */
+-#else  /* !PNG_INTERNAL */
+-    png_info_destroy, /* 192 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SET_USER_LIMITS_SUPPORTED */
++    png_get_chunk_malloc_max, /* 192 */
++#endif /* !PNG_SET_USER_LIMITS_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+     0, /* 193 */
+-#else  /* !PNG_INTERNAL */
+-    png_zalloc, /* 193 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++    png_get_pixels_per_inch, /* 193 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+     0, /* 194 */
+-#else  /* !PNG_INTERNAL */
+-    png_zfree, /* 194 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++    png_get_x_pixels_per_inch, /* 194 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED)
+     0, /* 195 */
+-#else  /* !PNG_INTERNAL */
+-    png_reset_crc, /* 195 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++    png_get_y_pixels_per_inch, /* 195 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 196 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_data, /* 196 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_get_x_offset_inches, /* 196 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 197 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_data, /* 197 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_get_y_offset_inches, /* 197 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_pHYs_SUPPORTED)
+     0, /* 198 */
+-#else  /* !PNG_INTERNAL */
+-    png_crc_read, /* 198 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_zTXt_SUPPORTED) && !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_READ_iCCP_SUPPORTED) && !defined(PNG_READ_sPLT_SUPPORTED)
++#else  /* !PNG_pHYs_SUPPORTED */
++    png_get_pHYs_dpi, /* 198 */
++#endif /* !PNG_pHYs_SUPPORTED */
++#if !defined(PNG_IO_STATE_SUPPORTED)
+     0, /* 199 */
+-#else  /* !PNG_INTERNAL !PNG_READ_zTXt_SUPPORTED !PNG_READ_iTXt_SUPPORTED !PNG_READ_iCCP_SUPPORTED !PNG_READ_sPLT_SUPPORTED */
+-    png_decompress_chunk, /* 199 */
+-#endif /* !PNG_INTERNAL !PNG_READ_zTXt_SUPPORTED !PNG_READ_iTXt_SUPPORTED !PNG_READ_iCCP_SUPPORTED !PNG_READ_sPLT_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_IO_STATE_SUPPORTED */
++    png_get_io_state, /* 199 */
++#endif /* !PNG_IO_STATE_SUPPORTED */
++#if !defined(PNG_IO_STATE_SUPPORTED)
+     0, /* 200 */
+-#else  /* !PNG_INTERNAL */
+-    png_crc_finish, /* 200 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_IO_STATE_SUPPORTED */
++    png_get_io_chunk_name, /* 200 */
++#endif /* !PNG_IO_STATE_SUPPORTED */
++#if !defined(PNG_READ_INT_FUNCTIONS_SUPPORTED) || defined(PNG_USE_READ_MACROS)
+     0, /* 201 */
+-#else  /* !PNG_INTERNAL */
+-    png_crc_error, /* 201 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++    png_get_uint_32, /* 201 */
++#endif /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++#if !defined(PNG_READ_INT_FUNCTIONS_SUPPORTED) || defined(PNG_USE_READ_MACROS)
+     0, /* 202 */
+-#else  /* !PNG_INTERNAL */
+-    png_calculate_crc, /* 202 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_FLUSH_SUPPORTED)
++#else  /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++    png_get_uint_16, /* 202 */
++#endif /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++#if !defined(PNG_READ_INT_FUNCTIONS_SUPPORTED) || defined(PNG_USE_READ_MACROS)
+     0, /* 203 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_FLUSH_SUPPORTED */
+-    png_flush, /* 203 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_FLUSH_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 204 */
+-#else  /* !PNG_INTERNAL */
+-    png_save_uint_32, /* 204 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_pCAL_SUPPORTED)
++#else  /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++    png_get_int_32, /* 203 */
++#endif /* !PNG_READ_INT_FUNCTIONS_SUPPORTED PNG_USE_READ_MACROS */
++    png_get_uint_31, /* 204 */
++#if !defined(PNG_WRITE_INT_FUNCTIONS_SUPPORTED)
+     0, /* 205 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED */
+-    png_save_int_32, /* 205 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_WRITE_INT_FUNCTIONS_SUPPORTED */
++    png_save_uint_32, /* 205 */
++#endif /* !PNG_WRITE_INT_FUNCTIONS_SUPPORTED */
++#if !defined(PNG_SAVE_INT_32_SUPPORTED)
+     0, /* 206 */
+-#else  /* !PNG_INTERNAL */
+-    png_save_uint_16, /* 206 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_SAVE_INT_32_SUPPORTED */
++    png_save_int_32, /* 206 */
++#endif /* !PNG_SAVE_INT_32_SUPPORTED */
++#if !defined(PNG_WRITE_INT_FUNCTIONS_SUPPORTED)
+     0, /* 207 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_sig, /* 207 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_WRITE_INT_FUNCTIONS_SUPPORTED */
++    png_save_uint_16, /* 207 */
++#endif /* !PNG_WRITE_INT_FUNCTIONS_SUPPORTED */
++#if !defined(PNG_READ_GAMMA_SUPPORTED)
+     0, /* 208 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_IHDR, /* 208 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_READ_GAMMA_SUPPORTED */
++    png_set_gamma_fixed, /* 208 */
++#endif /* !PNG_READ_GAMMA_SUPPORTED */
++#if !defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 209 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_PLTE, /* 209 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_set_filter_heuristics_fixed, /* 209 */
++#endif /* !PNG_WRITE_WEIGHTED_FILTER_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_EASY_ACCESS_SUPPORTED)
+     0, /* 210 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_IDAT, /* 210 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_EASY_ACCESS_SUPPORTED */
++    png_get_pixel_aspect_ratio_fixed, /* 210 */
++#endif /* !PNG_EASY_ACCESS_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 211 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_IEND, /* 211 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_gAMA_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_get_x_offset_inches_fixed, /* 211 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_INCH_CONVERSIONS_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 212 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_write_gAMA, /* 212 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_gAMA_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
++#else  /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_get_y_offset_inches_fixed, /* 212 */
++#endif /* !PNG_INCH_CONVERSIONS_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_sCAL_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 213 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_write_gAMA_fixed, /* 213 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_gAMA_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_sBIT_SUPPORTED)
++#else  /* !PNG_sCAL_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_set_sCAL_fixed, /* 213 */
++#endif /* !PNG_sCAL_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_sCAL_SUPPORTED) || !defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 214 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_sBIT_SUPPORTED */
+-    png_write_sBIT, /* 214 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_sBIT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
++#else  /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_ARITHMETIC_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_get_sCAL_fixed, /* 214 */
++#endif /* !PNG_sCAL_SUPPORTED !PNG_FLOATING_ARITHMETIC_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_READ_BACKGROUND_SUPPORTED)
+     0, /* 215 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-    png_write_cHRM, /* 215 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_cHRM_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
++#else  /* !PNG_READ_BACKGROUND_SUPPORTED */
++    png_set_background_fixed, /* 215 */
++#endif /* !PNG_READ_BACKGROUND_SUPPORTED */
++#if !defined(PNG_IO_STATE_SUPPORTED)
+     0, /* 216 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-    png_write_cHRM_fixed, /* 216 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_sRGB_SUPPORTED)
++#else  /* !PNG_IO_STATE_SUPPORTED */
++    png_get_io_chunk_type, /* 216 */
++#endif /* !PNG_IO_STATE_SUPPORTED */
++#if !defined(PNG_USER_TRANSFORM_INFO_SUPPORTED)
+     0, /* 217 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_sRGB_SUPPORTED */
+-    png_write_sRGB, /* 217 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_sRGB_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_iCCP_SUPPORTED)
++#else  /* !PNG_USER_TRANSFORM_INFO_SUPPORTED */
++    png_get_current_row_number, /* 217 */
++#endif /* !PNG_USER_TRANSFORM_INFO_SUPPORTED */
++#if !defined(PNG_USER_TRANSFORM_INFO_SUPPORTED)
+     0, /* 218 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_iCCP_SUPPORTED */
+-    png_write_iCCP, /* 218 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_iCCP_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_sPLT_SUPPORTED)
++#else  /* !PNG_USER_TRANSFORM_INFO_SUPPORTED */
++    png_get_current_pass_number, /* 218 */
++#endif /* !PNG_USER_TRANSFORM_INFO_SUPPORTED */
++#if !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+     0, /* 219 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_sPLT_SUPPORTED */
+-    png_write_sPLT, /* 219 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_sPLT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_tRNS_SUPPORTED)
++#else  /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++    png_process_data_pause, /* 219 */
++#endif /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++#if !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+     0, /* 220 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_tRNS_SUPPORTED */
+-    png_write_tRNS, /* 220 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_tRNS_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_bKGD_SUPPORTED)
++#else  /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++    png_process_data_skip, /* 220 */
++#endif /* !PNG_PROGRESSIVE_READ_SUPPORTED */
++#if !defined(PNG_READ_EXPAND_16_SUPPORTED)
+     0, /* 221 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_bKGD_SUPPORTED */
+-    png_write_bKGD, /* 221 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_bKGD_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_hIST_SUPPORTED)
++#else  /* !PNG_READ_EXPAND_16_SUPPORTED */
++    png_set_expand_16, /* 221 */
++#endif /* !PNG_READ_EXPAND_16_SUPPORTED */
++#if !defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+     0, /* 222 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_hIST_SUPPORTED */
+-    png_write_hIST, /* 222 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_hIST_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_TEXT_SUPPORTED) && !defined(PNG_WRITE_pCAL_SUPPORTED) && !defined(PNG_WRITE_iCCP_SUPPORTED) && !defined(PNG_WRITE_sPLT_SUPPORTED)
++#else  /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++    png_set_text_compression_level, /* 222 */
++#endif /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++#if !defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+     0, /* 223 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_TEXT_SUPPORTED !PNG_WRITE_pCAL_SUPPORTED !PNG_WRITE_iCCP_SUPPORTED !PNG_WRITE_sPLT_SUPPORTED */
+-    png_check_keyword, /* 223 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_TEXT_SUPPORTED !PNG_WRITE_pCAL_SUPPORTED !PNG_WRITE_iCCP_SUPPORTED !PNG_WRITE_sPLT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_tEXt_SUPPORTED)
++#else  /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++    png_set_text_compression_mem_level, /* 223 */
++#endif /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++#if !defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+     0, /* 224 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_tEXt_SUPPORTED */
+-    png_write_tEXt, /* 224 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_tEXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_zTXt_SUPPORTED)
++#else  /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++    png_set_text_compression_strategy, /* 224 */
++#endif /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++#if !defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+     0, /* 225 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_zTXt_SUPPORTED */
+-    png_write_zTXt, /* 225 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_zTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_iTXt_SUPPORTED)
++#else  /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++    png_set_text_compression_window_bits, /* 225 */
++#endif /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++#if !defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED)
+     0, /* 226 */
+-#else  /* !PNG_INTERNAL !PNG_iTXt_SUPPORTED */
+-    png_write_iTXt, /* 226 */
+-#endif /* !PNG_INTERNAL !PNG_iTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_oFFs_SUPPORTED)
++#else  /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++    png_set_text_compression_method, /* 226 */
++#endif /* !PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
++#if !defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+     0, /* 227 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_oFFs_SUPPORTED */
+-    png_write_oFFs, /* 227 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_oFFs_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_pCAL_SUPPORTED)
++#else  /* !PNG_READ_ALPHA_MODE_SUPPORTED */
++    png_set_alpha_mode, /* 227 */
++#endif /* !PNG_READ_ALPHA_MODE_SUPPORTED */
++#if !defined(PNG_READ_ALPHA_MODE_SUPPORTED)
+     0, /* 228 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED */
+-    png_write_pCAL, /* 228 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_pCAL_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_pHYs_SUPPORTED)
++#else  /* !PNG_READ_ALPHA_MODE_SUPPORTED */
++    png_set_alpha_mode_fixed, /* 228 */
++#endif /* !PNG_READ_ALPHA_MODE_SUPPORTED */
++#if !defined(PNG_READ_SCALE_16_TO_8_SUPPORTED)
+     0, /* 229 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_pHYs_SUPPORTED */
+-    png_write_pHYs, /* 229 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_pHYs_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_tIME_SUPPORTED)
++#else  /* !PNG_READ_SCALE_16_TO_8_SUPPORTED */
++    png_set_scale_16, /* 229 */
++#endif /* !PNG_READ_SCALE_16_TO_8_SUPPORTED */
++#if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 230 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_tIME_SUPPORTED */
+-    png_write_tIME, /* 230 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_tIME_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_sCAL_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED) || defined(PNG_NO_STDIO)
++#else  /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_get_cHRM_XYZ, /* 230 */
++#endif /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FIXED_POINT_SUPPORTED)
+     0, /* 231 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED PNG_NO_STDIO */
+-    png_write_sCAL, /* 231 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_sCAL_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED PNG_NO_STDIO */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_FIXED_POINT_SUPPORTED) || defined(PNG_WRITE_sCAL_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
++#else  /* !PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++    png_get_cHRM_XYZ_fixed, /* 231 */
++#endif /* !PNG_cHRM_SUPPORTED !PNG_FIXED_POINT_SUPPORTED */
++#if !defined(PNG_cHRM_SUPPORTED) || !defined(PNG_FLOATING_POINT_SUPPORTED)
+     0, /* 232 */
+-#else  /* !PNG_INTERNAL !PNG_FIXED_POINT_SUPPORTED PNG_WRITE_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_NO_STDIO */
+-    png_write_sCAL_s, /* 232 */
+-#endif /* !PNG_INTERNAL !PNG_FIXED_POINT_SUPPORTED PNG_WRITE_sCAL_SUPPORTED PNG_FLOATING_POINT_SUPPORTED !PNG_NO_STDIO */
+-#if !defined(PNG_INTERNAL)
++#else  /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++    png_set_cHRM_XYZ, /* 232 */
++#endif /* !PNG_cHRM_SUPPORTED !PNG_FLOATING_POINT_SUPPORTED */
++#if !defined(PNG_cHRM_SUPPORTED)
+     0, /* 233 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_finish_row, /* 233 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 234 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_start_row, /* 234 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_GAMMA_SUPPORTED)
+-    0, /* 235 */
+-#else  /* !PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED */
+-    png_build_gamma_table, /* 235 */
+-#endif /* !PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 236 */
+-#else  /* !PNG_INTERNAL */
+-    png_combine_row, /* 236 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_INTERLACING_SUPPORTED)
+-    0, /* 237 */
+-#else  /* !PNG_INTERNAL !PNG_READ_INTERLACING_SUPPORTED */
+-    png_do_read_interlace, /* 237 */
+-#endif /* !PNG_INTERNAL !PNG_READ_INTERLACING_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_INTERLACING_SUPPORTED)
+-    0, /* 238 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_INTERLACING_SUPPORTED */
+-    png_do_write_interlace, /* 238 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_INTERLACING_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 239 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_filter_row, /* 239 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 240 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_find_filter, /* 240 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 241 */
+-#else  /* !PNG_INTERNAL */
+-    png_write_filtered_row, /* 241 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 242 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_finish_row, /* 242 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 243 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_start_row, /* 243 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 244 */
+-#else  /* !PNG_INTERNAL */
+-    png_read_transform_info, /* 244 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_FILLER_SUPPORTED)
+-    0, /* 245 */
+-#else  /* !PNG_INTERNAL !PNG_READ_FILLER_SUPPORTED */
+-    png_do_read_filler, /* 245 */
+-#endif /* !PNG_INTERNAL !PNG_READ_FILLER_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
+-    0, /* 246 */
+-#else  /* !PNG_INTERNAL !PNG_READ_SWAP_ALPHA_SUPPORTED */
+-    png_do_read_swap_alpha, /* 246 */
+-#endif /* !PNG_INTERNAL !PNG_READ_SWAP_ALPHA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
+-    0, /* 247 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_SWAP_ALPHA_SUPPORTED */
+-    png_do_write_swap_alpha, /* 247 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_SWAP_ALPHA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
+-    0, /* 248 */
+-#else  /* !PNG_INTERNAL !PNG_READ_INVERT_ALPHA_SUPPORTED */
+-    png_do_read_invert_alpha, /* 248 */
+-#endif /* !PNG_INTERNAL !PNG_READ_INVERT_ALPHA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
+-    0, /* 249 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_INVERT_ALPHA_SUPPORTED */
+-    png_do_write_invert_alpha, /* 249 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_INVERT_ALPHA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_FILLER_SUPPORTED) && !defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
+-    0, /* 250 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_FILLER_SUPPORTED !PNG_READ_STRIP_ALPHA_SUPPORTED */
+-    png_do_strip_filler, /* 250 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_FILLER_SUPPORTED !PNG_READ_STRIP_ALPHA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_SWAP_SUPPORTED) && !defined(PNG_WRITE_SWAP_SUPPORTED)
+-    0, /* 251 */
+-#else  /* !PNG_INTERNAL !PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED */
+-    png_do_swap, /* 251 */
+-#endif /* !PNG_INTERNAL !PNG_READ_SWAP_SUPPORTED !PNG_WRITE_SWAP_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_PACKSWAP_SUPPORTED) && !defined(PNG_WRITE_PACKSWAP_SUPPORTED)
+-    0, /* 252 */
+-#else  /* !PNG_INTERNAL !PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED */
+-    png_do_packswap, /* 252 */
+-#endif /* !PNG_INTERNAL !PNG_READ_PACKSWAP_SUPPORTED !PNG_WRITE_PACKSWAP_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
+-    0, /* 253 */
+-#else  /* !PNG_INTERNAL !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+-    png_do_rgb_to_gray, /* 253 */
+-#endif /* !PNG_INTERNAL !PNG_READ_RGB_TO_GRAY_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
+-    0, /* 254 */
+-#else  /* !PNG_INTERNAL !PNG_READ_GRAY_TO_RGB_SUPPORTED */
+-    png_do_gray_to_rgb, /* 254 */
+-#endif /* !PNG_INTERNAL !PNG_READ_GRAY_TO_RGB_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_PACK_SUPPORTED)
+-    0, /* 255 */
+-#else  /* !PNG_INTERNAL !PNG_READ_PACK_SUPPORTED */
+-    png_do_unpack, /* 255 */
+-#endif /* !PNG_INTERNAL !PNG_READ_PACK_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_SHIFT_SUPPORTED)
+-    0, /* 256 */
+-#else  /* !PNG_INTERNAL !PNG_READ_SHIFT_SUPPORTED */
+-    png_do_unshift, /* 256 */
+-#endif /* !PNG_INTERNAL !PNG_READ_SHIFT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_INVERT_SUPPORTED) && !defined(PNG_WRITE_INVERT_SUPPORTED)
+-    0, /* 257 */
+-#else  /* !PNG_INTERNAL !PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED */
+-    png_do_invert, /* 257 */
+-#endif /* !PNG_INTERNAL !PNG_READ_INVERT_SUPPORTED !PNG_WRITE_INVERT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_16_TO_8_SUPPORTED)
+-    0, /* 258 */
+-#else  /* !PNG_INTERNAL !PNG_READ_16_TO_8_SUPPORTED */
+-    png_do_chop, /* 258 */
+-#endif /* !PNG_INTERNAL !PNG_READ_16_TO_8_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_DITHER_SUPPORTED)
+-    0, /* 259 */
+-#else  /* !PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED */
+-    png_do_dither, /* 259 */
+-#endif /* !PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_DITHER_SUPPORTED) || !defined(PNG_CORRECT_PALETTE_SUPPORTED)
+-    0, /* 260 */
+-#else  /* !PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED !PNG_CORRECT_PALETTE_SUPPORTED */
+-    png_correct_palette, /* 260 */
+-#endif /* !PNG_INTERNAL !PNG_READ_DITHER_SUPPORTED !PNG_CORRECT_PALETTE_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_BGR_SUPPORTED) && !defined(PNG_WRITE_BGR_SUPPORTED)
+-    0, /* 261 */
+-#else  /* !PNG_INTERNAL !PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED */
+-    png_do_bgr, /* 261 */
+-#endif /* !PNG_INTERNAL !PNG_READ_BGR_SUPPORTED !PNG_WRITE_BGR_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_PACK_SUPPORTED)
+-    0, /* 262 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_PACK_SUPPORTED */
+-    png_do_pack, /* 262 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_PACK_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_WRITE_SHIFT_SUPPORTED)
+-    0, /* 263 */
+-#else  /* !PNG_INTERNAL !PNG_WRITE_SHIFT_SUPPORTED */
+-    png_do_shift, /* 263 */
+-#endif /* !PNG_INTERNAL !PNG_WRITE_SHIFT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_BACKGROUND_SUPPORTED)
+-    0, /* 264 */
+-#else  /* !PNG_INTERNAL !PNG_READ_BACKGROUND_SUPPORTED */
+-    png_do_background, /* 264 */
+-#endif /* !PNG_INTERNAL !PNG_READ_BACKGROUND_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_GAMMA_SUPPORTED)
+-    0, /* 265 */
+-#else  /* !PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED */
+-    png_do_gamma, /* 265 */
+-#endif /* !PNG_INTERNAL !PNG_READ_GAMMA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_EXPAND_SUPPORTED)
+-    0, /* 266 */
+-#else  /* !PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED */
+-    png_do_expand_palette, /* 266 */
+-#endif /* !PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_EXPAND_SUPPORTED)
+-    0, /* 267 */
+-#else  /* !PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED */
+-    png_do_expand, /* 267 */
+-#endif /* !PNG_INTERNAL !PNG_READ_EXPAND_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 268 */
+-#else  /* !PNG_INTERNAL */
+-    png_handle_IHDR, /* 268 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 269 */
+-#else  /* !PNG_INTERNAL */
+-    png_handle_PLTE, /* 269 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 270 */
+-#else  /* !PNG_INTERNAL */
+-    png_handle_IEND, /* 270 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_bKGD_SUPPORTED)
+-    0, /* 271 */
+-#else  /* !PNG_INTERNAL !PNG_READ_bKGD_SUPPORTED */
+-    png_handle_bKGD, /* 271 */
+-#endif /* !PNG_INTERNAL !PNG_READ_bKGD_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_cHRM_SUPPORTED)
+-    0, /* 272 */
+-#else  /* !PNG_INTERNAL !PNG_READ_cHRM_SUPPORTED */
+-    png_handle_cHRM, /* 272 */
+-#endif /* !PNG_INTERNAL !PNG_READ_cHRM_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_gAMA_SUPPORTED)
+-    0, /* 273 */
+-#else  /* !PNG_INTERNAL !PNG_READ_gAMA_SUPPORTED */
+-    png_handle_gAMA, /* 273 */
+-#endif /* !PNG_INTERNAL !PNG_READ_gAMA_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_hIST_SUPPORTED)
+-    0, /* 274 */
+-#else  /* !PNG_INTERNAL !PNG_READ_hIST_SUPPORTED */
+-    png_handle_hIST, /* 274 */
+-#endif /* !PNG_INTERNAL !PNG_READ_hIST_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_iCCP_SUPPORTED)
+-    0, /* 275 */
+-#else  /* !PNG_INTERNAL !PNG_READ_iCCP_SUPPORTED */
+-    png_handle_iCCP, /* 275 */
+-#endif /* !PNG_INTERNAL !PNG_READ_iCCP_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_iTXt_SUPPORTED)
+-    0, /* 276 */
+-#else  /* !PNG_INTERNAL !PNG_iTXt_SUPPORTED */
+-    png_handle_iTXt, /* 276 */
+-#endif /* !PNG_INTERNAL !PNG_iTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_oFFs_SUPPORTED)
+-    0, /* 277 */
+-#else  /* !PNG_INTERNAL !PNG_READ_oFFs_SUPPORTED */
+-    png_handle_oFFs, /* 277 */
+-#endif /* !PNG_INTERNAL !PNG_READ_oFFs_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_pCAL_SUPPORTED)
+-    0, /* 278 */
+-#else  /* !PNG_INTERNAL !PNG_READ_pCAL_SUPPORTED */
+-    png_handle_pCAL, /* 278 */
+-#endif /* !PNG_INTERNAL !PNG_READ_pCAL_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_pHYs_SUPPORTED)
+-    0, /* 279 */
+-#else  /* !PNG_INTERNAL !PNG_READ_pHYs_SUPPORTED */
+-    png_handle_pHYs, /* 279 */
+-#endif /* !PNG_INTERNAL !PNG_READ_pHYs_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_sBIT_SUPPORTED)
+-    0, /* 280 */
+-#else  /* !PNG_INTERNAL !PNG_READ_sBIT_SUPPORTED */
+-    png_handle_sBIT, /* 280 */
+-#endif /* !PNG_INTERNAL !PNG_READ_sBIT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_sCAL_SUPPORTED)
+-    0, /* 281 */
+-#else  /* !PNG_INTERNAL !PNG_READ_sCAL_SUPPORTED */
+-    png_handle_sCAL, /* 281 */
+-#endif /* !PNG_INTERNAL !PNG_READ_sCAL_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_sPLT_SUPPORTED)
+-    0, /* 282 */
+-#else  /* !PNG_INTERNAL !PNG_READ_sPLT_SUPPORTED */
+-    png_handle_sPLT, /* 282 */
+-#endif /* !PNG_INTERNAL !PNG_READ_sPLT_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_sRGB_SUPPORTED)
+-    0, /* 283 */
+-#else  /* !PNG_INTERNAL !PNG_READ_sRGB_SUPPORTED */
+-    png_handle_sRGB, /* 283 */
+-#endif /* !PNG_INTERNAL !PNG_READ_sRGB_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_tEXt_SUPPORTED)
+-    0, /* 284 */
+-#else  /* !PNG_INTERNAL !PNG_READ_tEXt_SUPPORTED */
+-    png_handle_tEXt, /* 284 */
+-#endif /* !PNG_INTERNAL !PNG_READ_tEXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_tIME_SUPPORTED)
+-    0, /* 285 */
+-#else  /* !PNG_INTERNAL !PNG_READ_tIME_SUPPORTED */
+-    png_handle_tIME, /* 285 */
+-#endif /* !PNG_INTERNAL !PNG_READ_tIME_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_tRNS_SUPPORTED)
+-    0, /* 286 */
+-#else  /* !PNG_INTERNAL !PNG_READ_tRNS_SUPPORTED */
+-    png_handle_tRNS, /* 286 */
+-#endif /* !PNG_INTERNAL !PNG_READ_tRNS_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_READ_zTXt_SUPPORTED)
+-    0, /* 287 */
+-#else  /* !PNG_INTERNAL !PNG_READ_zTXt_SUPPORTED */
+-    png_handle_zTXt, /* 287 */
+-#endif /* !PNG_INTERNAL !PNG_READ_zTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
+-    0, /* 288 */
+-#else  /* !PNG_INTERNAL !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
+-    png_handle_as_unknown, /* 288 */
+-#endif /* !PNG_INTERNAL !PNG_HANDLE_AS_UNKNOWN_SUPPORTED */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 289 */
+-#else  /* !PNG_INTERNAL */
+-    png_handle_unknown, /* 289 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 290 */
+-#else  /* !PNG_INTERNAL */
+-    png_check_chunk_name, /* 290 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 291 */
+-#else  /* !PNG_INTERNAL */
+-    png_do_read_transformations, /* 291 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 292 */
+-#else  /* !PNG_INTERNAL */
+-    png_do_write_transformations, /* 292 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL)
+-    0, /* 293 */
+-#else  /* !PNG_INTERNAL */
+-    png_init_read_transformations, /* 293 */
+-#endif /* !PNG_INTERNAL */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 294 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_read_chunk, /* 294 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 295 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_read_sig, /* 295 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 296 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_check_crc, /* 296 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 297 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_crc_skip, /* 297 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 298 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_crc_finish, /* 298 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 299 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_fill_buffer, /* 299 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 300 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_save_buffer, /* 300 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 301 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_restore_buffer, /* 301 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 302 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_read_IDAT, /* 302 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 303 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_process_IDAT_data, /* 303 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 304 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_process_row, /* 304 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 305 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_handle_unknown, /* 305 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 306 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_have_info, /* 306 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 307 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_have_end, /* 307 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 308 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_have_row, /* 308 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 309 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_push_read_end, /* 309 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 310 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_process_some_data, /* 310 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED)
+-    0, /* 311 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-    png_read_push_finish_row, /* 311 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_tEXt_SUPPORTED)
+-    0, /* 312 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED */
+-    png_push_handle_tEXt, /* 312 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_tEXt_SUPPORTED)
+-    0, /* 313 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED */
+-    png_push_read_tEXt, /* 313 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_tEXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_zTXt_SUPPORTED)
+-    0, /* 314 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED */
+-    png_push_handle_zTXt, /* 314 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_zTXt_SUPPORTED)
+-    0, /* 315 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED */
+-    png_push_read_zTXt, /* 315 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_zTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_iTXt_SUPPORTED)
+-    0, /* 316 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED */
+-    png_push_handle_iTXt, /* 316 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED */
+-#if !defined(PNG_INTERNAL) || !defined(PNG_PROGRESSIVE_READ_SUPPORTED) || !defined(PNG_iTXt_SUPPORTED)
+-    0, /* 317 */
+-#else  /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED */
+-    png_push_read_iTXt, /* 317 */
+-#endif /* !PNG_INTERNAL !PNG_PROGRESSIVE_READ_SUPPORTED !PNG_iTXt_SUPPORTED */
+-    png_info_init_3, /* 318 */
++#else  /* !PNG_cHRM_SUPPORTED */
++    png_set_cHRM_XYZ_fixed, /* 233 */
++#endif /* !PNG_cHRM_SUPPORTED */
+ };
+ 
+ /* !END!: Do not edit above this line. */
diff --git a/tkimg.spec b/tkimg.spec
index f8bc716..77ac77b 100644
--- a/tkimg.spec
+++ b/tkimg.spec
@@ -3,7 +3,7 @@
 
 Name:		tkimg
 Version:	1.4
-Release:	5%{?dist}
+Release:	6%{?dist}
 Summary:	Image support library for Tk
 Group:		Development/Libraries
 License:	BSD
@@ -13,12 +13,13 @@ Patch0:		tkimg-zlib.patch
 Patch1:		tkimg-jpg.patch
 Patch2:		tkimg-libpng.patch
 Patch3:		tkimg-libtiff.patch
+Patch4:		tkimg-libpng15.patch
 
 # A request to allow building with system libraries has been submitted
 # https://sourceforge.net/tracker/index.php?func=detail&aid=2292032&group_id=52039&atid=465495
 BuildRequires:	tcl-devel tk-devel tcllib
 BuildRequires:	zlib-devel libjpeg-devel
-BuildRequires:	libpng-devel
+BuildRequires:	libpng-devel >= 1.5
 BuildRequires:	libtiff-devel
 
 Requires: tcl(abi) = 8.5
@@ -51,6 +52,7 @@ rm -rf compat/libjpeg
 rm -rf compat/libpng
 %patch3 -p1 -b .libtiff
 rm -rf compat/libtiff
+%patch4 -p1 -b .png15
 
 %build
 %configure --with-tcl=%{tcl_sitearch} --with-tk=%{_libdir} --libdir=%{tcl_sitearch} --disable-threads --enable-64bit
@@ -92,6 +94,9 @@ done
 %{tcl_sitearch}/Img1.4/*.a
 
 %changelog
+* Wed Dec 07 2011 Tom Callaway <spot at fedoraproject.org> 1.4-6
+- enable support for libpng 1.5
+
 * Tue Dec 06 2011 Adam Jackson <ajax at redhat.com> - 1.4-5
 - Rebuild for new libpng
 


More information about the scm-commits mailing list